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

Вывод отчета в коллекцию значений

В системе компоновки данных существует возможность выводить отчет не только в табличный документ, но и в коллекции значений (таблица значений, дерево значений).Для вывода отчета в коллекцию предназначен объект ПроцессорВыводаРезультатаКомпоновкиВКоллекциюЗначений. Пример вывода отчета в дерево значений: ДеревоЗначений.Строки.Очистить();   КомпоновщикМакета = Новый…

Программный вывод отчета

Несмотря на то, изучающие СКД встречаются с этим на первый или второй день, это должно быть в разделе FAQ. Простой пример программного вывода отчета на компоновке, использующий настройки по умолчанию. //Получаем схему из макета СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Из схемы возьмем…

Пример использования внешнего набора данных

Для использования в схеме компоновки данных внешнего набора данных сначала необходимо создать набор данных объект, и указать имя объекта, содержащего данные: Далее необходимо программно выполнить формирование отчета, заполнив внешний набор данных: ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТЗ", ТЗ);   СхемаКомпоновкиДанных =…

В отчет не попадают данные за последний день…

Пользователь выбрал период формирования отчета с 1июля по 31. Почему при формировании отчета в него не попадают данные за 31 число? На самом деле, это одна из самых распространенных ошибок при разработке отчетов. В 1С 8.х дата содержит время с…

Изменить слово “Итого” в общих итогах

Иногда возникает желание изменить само слово Итого в общих итогах. Сделаем это следующим образом: //Формирование табличного документа {{ //Получаем схему СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Из схемы возьмем настройки по умолчанию Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки…

Как добавить отбор программно

НовыйЭлементОтбора = ВнешнийОтчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидЗаявки"); НовыйЭлементОтбора.Использование = Истина; НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; НовыйЭлементОтбора.ПравоеЗначение = Перечисления.ВидЗаявкиДляПроверки.ЗаявкаПеревозчика;НовыйЭлементОтбора = ВнешнийОтчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидЗаявки"); НовыйЭлементОтбора.Использование = Истина; НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; НовыйЭлементОтбора.ПравоеЗначение = Перечисления.ВидЗаявкиДляПроверки.ЗаявкаПеревозчика;

Вывод полей в нужной колонке

Часто возникают вопросы «как в СКД сделать свои итоги», «как определенные поля выводить только в нужном месте».  Начнем рассказ. Наша цель  – посчитать среднюю цену продажи и вывести ее в нужном месте. Запрос: "ВЫБРАТЬ ПродажиОбороты.Подразделение, ПродажиОбороты.Номенклатура, ПродажиОбороты.КоличествоОборот, ПродажиОбороты.СтоимостьОборот, 0 КАК…

Как изменить отбор программно

Эта тема тоже достаточна распространена. Нюанс программного изменения отбора заключается в том, что коллекция: КомпоновщикНастроек.Настройки.Отбор.ЭлементыКомпоновщикНастроек.Настройки.Отбор.Элементы в отличие от аналогичной коллекции параметров, не имеет метода Найти(). Можно конечно изменять отбор “в лоб”, т.е. по индексу, но это не есть хорошо. Самый…