Пример разработан на основе обротно-сальдовой ведомости в конфигурации «Бухгалтерия предприятия, редакция 3.0».
Для программного формирования отчета разработанного на СКД нам понадобятся следующие объекты;
- Отчет
ОСВ = Отчеты.ОборотноСальдоваяВедомостьПоСчету.Создать();
- Схема компоновки данных
СхемаКомпоновки =ОСВ.ПолучитьМакет("СхемаКомпоновкиДанных");
- Компоновщик настроек
Для формирования оборотно-сальдовой ведомости необходимо получить параметры получения отчета. Их возвращает функция "ПолучитьПараметрыИсполненияОтчета(ПараметрыОтчета, МенеджерОтчета)" расположенная в модуле отчета. Для завершения настройки компоновщика настроек необходимо его передать в процедуру "ПередКомпоновкойМакета(ПараметрыОтчета, ПараметрыОтчета.СхемаКомпоновкиДанных, КомпоновщикНастроек)" расположенную в модуле менеджера отчета.
ПараметрыИсполненияОтчета = ПолучитьПараметрыИсполненияОтчета(ПараметрыОтчета, МенеджерОтчета);
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.ЗагрузитьНастройки(ПараметрыОтчета.НастройкиКомпоновкиДанных);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПараметрыОтчета.СхемаКомпоновкиДанных));
МенеджерОтчета.ПередКомпоновкойМакета(ПараметрыОтчета, ПараметрыОтчета.СхемаКомпоновкиДанных, КомпоновщикНастроек);
КомпоновщикНастроек.Восстановить();
- Компоновщик макета компоновки данных
Далее полученные настройки компоновщика используем для компоновки макета.
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(ПараметрыОтчета.СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки());
- Процессор компоновки данных
На основе полученного макета компоновки данных компонуем и выводим данные отчета.
ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиОСКД.Инициализировать(Макет);
- Процессор вывода данных
ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВыводаОСКД.УстановитьДокумент(Результат);
ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);
Реквизит1.Вывести(Результат);
Настройки отчета используемые для формирования отчета представляют собой структуру включающие следующие значения типа "ЗначениеКлюч"
ПараметрыОтчета.Вставить("ВключатьОбособленныеПодразделения", Ложь);
ПараметрыОтчета.Вставить("ВыводитьЗаголовок" , Истина);
ПараметрыОтчета.Вставить("ВыводитьПодвал" , Ложь);
ПараметрыОтчета.Вставить("ВыделятьОтрицательные" , Истина);
ПараметрыОтчета.Вставить("Группировка" , Группировка1);
ПараметрыОтчета.Вставить("ДанныеРасшифровки" , "");
ПараметрыОтчета.Вставить("ДополнительныеПоля" , Новый ТаблицаЗначений);
ПараметрыОтчета.Вставить("ИдентификаторОтчета" , "ОборотноСальдоваяВедомостьПоСчету");
ПараметрыОтчета.Вставить("КонецПериода" , КонецКвартала(ДобавитьМесяц(ТекущаяДата(),-1)));
ПараметрыОтчета.Вставить("МакетОформления" , "ОформлениеОтчетовЗеленый");
ПараметрыОтчета.Вставить("НаборПоказателей" , НаборПоказателей);
ПараметрыОтчета.Вставить("НастройкиКомпоновкиДанных" , СхемаКомпоновки.НастройкиПоУмолчанию);
ПараметрыОтчета.Вставить("НачалоПериода" , НачалоКвартала(ДобавитьМесяц(ТекущаяДата(),-1)));
ПараметрыОтчета.Вставить("Организация" , БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация",ПараметрыСеанса.ТекущийПользователь));
ПараметрыОтчета.Вставить("ОтветственноеЛицо" , Перечисления.ОтветственныеЛицаОрганизаций.ОтветственныйЗаБухгалтерскиеРегистры);
ПараметрыОтчета.Вставить("Периодичность" , 0);
ПараметрыОтчета.Вставить("ПоСубсчетам" , Ложь);
ПараметрыОтчета.Вставить("ПоказательБУ" , Истина);
ПараметрыОтчета.Вставить("ПоказательВР" , Ложь);
ПараметрыОтчета.Вставить("ПоказательВалютнаяСумма" , Ложь);
ПараметрыОтчета.Вставить("ПоказательКоличество" , Ложь);
ПараметрыОтчета.Вставить("ПоказательКонтроль" , Ложь);
ПараметрыОтчета.Вставить("ПоказательНУ" , Ложь);
ПараметрыОтчета.Вставить("ПоказательПР" , Ложь);
ПараметрыОтчета.Вставить("ПоказательСверкаНУ" , Ложь);
ПараметрыОтчета.Вставить("РазвернутоеСальдо" , Истина);
ПараметрыОтчета.Вставить("РазмещениеДополнительныхПолей" , 0);
ПараметрыОтчета.Вставить("РежимРасшифровки" , Ложь);
ПараметрыОтчета.Вставить("СхемаКомпоновкиДанных" , СхемаКомпоновки);
ПараметрыОтчета.Вставить("Счет" , Счет);
ПараметрыОтчета.Вставить("УменьшенныйАвтоотступ" , Ложь);
Рабочий код примера размещен в прикрепленной обработке. На форме обработки размещен реквизит "табличный документ" и команда заполнения которая выводит в реквизит оборотно-сальдовую ведомость согласно установленным параметрам. Результат обработки в дальнейшем можно использовать в своих целях.
Обработка тестировалась на конфигурации Бухгалтерия предприятия, редакция 3.0 (3.0.94.17), версия платформы 8.3.17.1851.