Схема компоновки данных

Оптимизированный запрос СКД

1С бухгалтерия

Как известно, при использовании СКД программа оптимизирует текст запроса и часто это приводит к неожиданным результатам.
Окончательный (оптимизированный) текст запроса можно посмотреть с помощью такого кода:

Представление документа в СКД

1С бухгалтерия

В поле "Выражение по которому вычисляется представление поля" пишем:

ВЫБОР 
	КОГДА Заказ ЕСТЬ NULL ТОГДА ""
	ИНАЧЕ "Заказ " + ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Заказ.Номер) + " от " + Формат(Заказ.Дата, "ДФ='дд.ММ.гггг'")
КОНЕЦ	

Запросы

1С бухгалтерия

Иногда тип значения поля заранее не известен и выражение вида:

МАКСИМУМ(ВЫБОР
	КОГДА ВТ_Свойства.Имя = "Свойство1"
		ТОГДА ХА_ЗаказДополнительныеРеквизиты.Значение
	ИНАЧЕ "" 
	КОНЕЦ)

в случае с числовым полем в качестве максимума вернет не максимальное число. После ИНАЧЕ для вычисления максимума по числовому полю обязательно нужно писать 0.

Конец дня в виртуальных таблицах

1С бухгалтерия

Виртуальная таблица Остатки() даёт остатки на границу НЕ ВКЛЮЧАЯ.
Таблица ОстаткиИОбороты и Обороты выдаёт данные по границу ВКЛЮЧАЯ

Вариант обхода:

РегистрНакопления.ТоварыНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, "День"), "Секунда", 1),)

Выбор уникальных записей во временных таблицах

1С бухгалтерия

Столкнулся с не очевидным поведением запросов СКД при группировках во временных таблицах.
Необходимо было выбрать уникальные записи во временную таблицу для того, чтобы в дальнейшем посчитать средние значения.

Особенности СКД

1С бухгалтерия

Создаем в запросе таблицу:
- Контрагент
- Договор
- Партия
- Приход
- Расход
- ВЫБОР КОГДА Приход <> 0 И Расход <> 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК Оборот

При разных группировках в последнем поле (Оборот) итоги будут отличаться, т.к. последнее поле будет рассчитываться для каждой группировки в отдельности. Если эту таблицу сначала поместить во временную таблицу и там сгруппировать, а потом уже выводить в отчет, то результат будет один и тот же.
Решение:

Заметки по СКД

1С бухгалтерия

Ошибка при использовании экспортных процедур при программном выводе отчета на СКД.
По умолчанию при инициализации процессора компоновки возможность испольлзования внешних функций отключена, поэтому принудительно ставим Истина.