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

14.07.21

Задачи пользователя - Адаптация типовых решений

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

Скачать файлы

Наименование Файл Версия Размер
Программное формирование отчетов в БП 3.0, на примере оборотно-сальдовой ведомости по счету:
.epf 9,39Kb
68
.epf 9,39Kb 68 Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Отчет Обротно-сальдовая ведомость ОСВ программное формирование

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    122301    673    389    

716

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4454    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    2957    4    0    

19

Генератор схемы компоновки данных (СКД), написание кода схемы программно

Инструментарий разработчика СКД Платформа 1С v8.3 Конфигурации 1cv8 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

По выбранной схеме компоновки данных генерирует программный код, который генерирует СКД, аналогичную исходной схеме. Есть дополнительные инструменты для просмотра дерева схемы, сравнение исходной схемы и полученной по коду, а также сравнение изменений в сгенерированном коде для исходной схемы и для измененной.

3 стартмани

05.02.2024    4051    25    obmailok    17    

63

СКД на JavaScript в 1С

СКД WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    8169    20    John_d    25    

123
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. gerasimovaol@rambler.ru 94 26.03.22 11:58 Сейчас в теме
Добрый день! Подскажите как вставить отбор по конкретному контрагенту?
2. alul 11.12.23 16:58 Сейчас в теме
Если б еще был программный вызов набора возможных параметров отчета и отборов,
да еще всё это было с использованием БСП... решение было б бесценно - то бищь золотое)))
Оставьте свое сообщение