Предположим клиент хочет видеть в отчете табличную часть документа и отдельной колонкой сумму всего документа. Тут проблемы нету: соединяем две таблицы и вперед. Проблема возникает когда надо получить итоги в отчете. Стандартная функция СУММА – будет возвращать сумму всех записей по колонке, соответственно сумма документа будет умножена на количество строк в табличной части. Для того чтобы избежать этого можно воспользоваться новыми агрегатными функциями, их было добавлено достаточно много, но нам понадобится функции ТаблицаЗначений, Массив и Сумма. Итак:
ТаблицаЗначений – формирует таблицу значений (сюрприз, сюрприз из колонок которые содержатся в итоговой таблицы после того как отработал процессор компоновки.
МАССИВ – формирует массив записей от группировок или берет 1-ую колонку таблицы значений
Что-то вроде FAQ
Не понятно с какого момента, но теперь в СКД можно обращаться не только к функциям общих модулей, но и к экспортным функциям модулей менеджера. Т.е. пишем в модуле менеджера любого объекта экспортную функцию, а затем в СКД обращаемся к ней стандартно, например Справочники.Картинки.Тест().
Плюс работают и стандартные функции, вроде Справочники.Картинки.НайтиПоКоду().
Плюс работают методы глобального контекста, например РольДоступна.
Возможно все и так об этом знают, но на всякий случай решил написать. Лично я с вызовом экспортных функций модулей менеджеров как-то не сталкивался, и удивился что это работает. а последние 2 фишки уже давно использую.
В конструкторе запросов, когда он вызывается из формы настройки источника данных, для схемы компоновки данных. Есть закладка “характеристики”, использование которой не вполне ясно описано в документации. В этой статье я постараюсь объяснить, как и для чего используются характеристики в СКД.
В свете ближайшего выхода 8.2.14, попытаюсь описать некоторые новые функции системы компоновки данных.
Доброго времени.
Хочу поделится своим опытом в данной теме. И спросить совет у специалистов.
Что бы вывести свой макет до или после скд проблемы нет, делается это на ура следующим кодом.
Результат = ЭлементыФормы.Результат;
Результат.Очистить();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных, ОтчетОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
//Определение Процессора компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
//Определение Процессора вывода
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
//Вывод таблицы
ПроцессорВывода.Вывести(процессорКомпоновки);
//Получение доп макета для шапки и подвала
Макет = ОтчетОбъект.ПолучитьМакет(“Подписи”);
//Вывод своего макета
Область = Макет.ПолучитьОбласть(“Надписи”);
ЭлементыФормы.Результат.Вывести(Область);
Может кто-нибудь подсказать, я в отчете вывожу список реализаций.
И мне нужно сделать так, чтоб их можно было сворачивать, типа как “Итоги”.