Не плохой курс по СКД, состоит из 110 видео-уроков (5 часов 29 минут).
http://www.spec8.ru/kurs-po-skd-besplatno
Разное
Стоит следующая задача. Есть два отчета “Отчет по отправителям” и “Отчет по получателям” нужно эти отчеты выводить в одну форму. Как вывести отчет в форму. Или хотя бы подскажите куда копать?
Нюансы при работе из СКД на программном уровне.
Всем доброго времени суток. Итак в данной статье я хочу поделится неким дополнительным навыком по работе из СКД. Статей и видео много и это довольно достаточно помогло по применению методики, которую опишу ниже, может и кому пригодится.
Начну из самой задачи.
Необходима была обработка по выгрузке документов и справочников, с определенными условиями, которые пользователь по необходимости сможет задавать на форме. Также результатируящая таблица, должна иметь возможность определять флагами, что будет выгружено в файл экспорта. ( в моем случае это текстовый документ с строгой структурой).
Одна из самых сложных проблем в СКД -создание ресурсов вида “нарастающие” итоги.
1.Типичным решением этой проблемы является левое соединение таблицы с самой собой. В группировки включается период исходной таблицы по которому строится итог с накоплением. В условие соединения входит выражение вида Исх.ПериодДень >= Соед.ПериодДень. Собственно итоговое поле в запросе вычисляется агрегатной функцией СУММА(Соед.Ресурс) в присоединенной таблице по полю ресурса.
Этот подход хорош для специализиированных отчетов в которых зараннее известно какое поле периода будет использовано в группировке.
В универсальных отчетах (например по регистру накоплений с настройкой Авто в периоде виртуальной таблицы) , в которых заранее неизвестно, группировку по какому периоду будет выполнять пользователь – этот подход становится малоприемлем. Кроме того – этот подход приводит к дополнительным накладным расходам на выполнение более сложного запроса.
Одна из самых сложных проблем в СКД -создание ресурсов вида “нарастающие” итоги. 1.Типичным решением этой проблемы является левое соединение таблицы с самой собой. В группировки включается период исходной таблицы по которому строится итог с накоплением. В условие соединения входит выражение вида Исх.ПериодДень >= Соед.ПериодДень. Собственно итоговое поле в запросе вычисляется агрегатной функцией СУММА(Соед.Ресурс) в присоединенной таблице по полю ресурса. Этот подход хорош для специализиированных отчетов в которых зараннее известно какое поле периода будет использовано в группировке. В универсальных отчетах (например по регистру накоплений с настройкой Авто в периоде виртуальной таблицы) , в которых заранее неизвестно, группировку по какому периоду будет выполнять пользователь – этот подход становится малоприемлем. Кроме того – этот подход приводит к дополнительным накладным расходам на выполнение более сложного запроса....Бесплатный видео курс по системе компоновки данных от ребят из spec8.ru
http://www.spec8.ru/kurs-po-skd-besplatno
Все просто. В СКД можно использовать функции глобальных и неглобальных общих модулей в вычисляемых полях при условии что функция объявлена как экспортная.
Есть только маленькая тонкость при программном формировании отчета СКД.
Обычно, при инициализации процессора компоновки данных делают так:
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
При таком формировании отчета вызова функций не произойдет. Что бы эту возможность включить нужно сделать так
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,,Истина);