Каталог решений - Программное формирование отчетов в БП 3.0 на примере оборотно-сальдовой ведомости по счету

Программное формирование отчетов в БП 3.0 на примере оборотно-сальдовой ведомости по счету

Программное формирование отчетов в БП 3.0 на примере оборотно-сальдовой ведомости по счету

В наличии

Порой возникает задача получить программно результат отчета на основе СКД в виде табличного документа. В данной статье будет описан один из вариантов реализации данной задачи.

Категория:

Описание

Пример разработан на основе обротно-сальдовой ведомости в конфигурации «Бухгалтерия предприятия, редакция 3.0».

Для программного формирования отчета разработанного на СКД нам понадобятся следующие объекты;

  1. Отчет
ОСВ = Отчеты.ОборотноСальдоваяВедомостьПоСчету.Создать();
  1. Схема компоновки данных
СхемаКомпоновки =ОСВ.ПолучитьМакет("СхемаКомпоновкиДанных");
  1. Компоновщик настроек

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

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

   Далее полученные настройки компоновщика используем для компоновки макета.

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(ПараметрыОтчета.СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки());
  1. Процессор компоновки данных

На основе полученного макета компоновки данных компонуем и выводим данные отчета.

ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиОСКД.Инициализировать(Макет);
  1. Процессор вывода данных
ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВыводаОСКД.УстановитьДокумент(Результат);
ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);

Реквизит1.Вывести(Результат);

Настройки отчета используемые для формирования отчета представляют собой структуру включающие следующие значения типа "ЗначениеКлюч"

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

Рабочий код примера размещен в прикрепленной обработке. На форме обработки размещен реквизит "табличный документ" и команда заполнения которая выводит в реквизит оборотно-сальдовую ведомость согласно установленным параметрам. Результат обработки в дальнейшем можно использовать в своих целях. 

Обработка тестировалась на конфигурации Бухгалтерия предприятия, редакция 3.0 (3.0.94.17), версия платформы 8.3.17.1851.

has been added to your cart:
Оформление заказа