Как изменить структуру и настроить автозаполнение регламентированного отчета в БГУ 2.0

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет Финансы и профессиональные услуги
← На главную

При работе в конфигурации 1С:Бухгалтерия государственного учреждения (БГУ 2.0) программисты и квалифицированные бухгалтеры часто сталкиваются с необходимостью изменить структуру регламентированного отчета (например, форм 128, 737 или 127). Типовые инструменты конфигуратора не позволяют просто «дорисовать» колонку в макете, так как отчетность в БГУ строится на механизме комплектов. Рассмотрим подробно, как правильно редактировать такие отчеты и настраивать их автоматическое заполнение.

Особенности архитектуры отчетности в БГУ 2.0

Для начала проанализируем, почему нельзя просто изменить отчет через конфигуратор или в пользовательском режиме БГУ. Структура регламентированной отчетности в БГУ является «загружаемой». Это означает, что все виды отчетов, их строки, колонки и аналитические разрезы определяются внешним Комплектом отчетности (файл с расширением .repx).

Разберем основные принципы этой архитектуры:

  1. Внешнее редактирование: Основным инструментом для создания и изменения структуры отчетов является конфигурация 1С:Свод отчетов ПРОФ. Именно там создаются Виды отчетов, настраиваются их бланки и печатные формы.
  2. Импорт комплектов: После внесения изменений в «Своде отчетов» формируется комплект, который загружается в БГУ через справочник Комплекты отчетности.
  3. Правила заполнения: В самой БГУ настраиваются только Правила заполнения, которые определяют, из каких регистров и по каким алгоритмам данные попадут в уже готовую структуру отчета.

Этап 1: Изменение структуры отчета в «1С:Свод отчетов»

Посмотрим, что необходимо сделать, если вам нужно добавить новую колонку (графу) или аналитику в отчет. Выполнять эти действия нужно в базе «Свода отчетов»:

  1. Откроем справочник Виды отчетов и найдем нужную форму (например, 0503128).
  2. Перейдем в настройку структуры и добавим новый элемент в справочник Колонки отчетов. Укажем его наименование и код.
  3. Важный момент по типам данных: Если вам требуется «составной тип» (как в примере: либо Доп. классификация, либо КЭК), помните, что механизм отчетности жестко привязан к типам. Если аналитика в Своде определена как конкретный справочник, записать туда значение другого справочника не удастся. Рассмотрим обходной путь: установите тип аналитики Строка или используйте более универсальный тип, если это позволяет конфигурация «Свода».
  4. После правки структуры необходимо зайти в Макет отображения (бланк) и добавить новую колонку визуально, привязав ячейки макета к созданному показателю.
  5. Сформируем новый файл комплекта отчетности и сохраним его.

Этап 2: Загрузка обновленного комплекта в БГУ

Теперь перейдем в БГУ 2.0 и выполним следующие действия:

  1. Перейдем в раздел Отчетность — 1С-Отчетность — Настройки.
  2. Зайдем в справочник Комплекты отчетности.
  3. Нажмем кнопку Загрузить и выберем файл, подготовленный на предыдущем этапе. Система обновит метаданные отчетов, и в справочнике Виды отчетов появится ваша новая колонка.

Этап 3: Настройка автоматического заполнения (Правила заполнения)

Выясним, как заставить программу автоматически заполнять новую колонку данными, особенно если логика подразумевает выбор между двумя значениями (Доп. классификация или КЭК). Для этого нам понадобится справочник Правила заполнения.

Разберем создание правила по шагам:

  1. В БГУ найдем Правило заполнения для нужного отчета или создадим новое.
  2. Внутри правила откроем Настройку источников данных. Источник — это, как правило, запрос к регистру бухгалтерии или использование схемы компоновки данных (СКД).
  3. Для реализации логики «если заполнено А, то А, иначе Б» используем оператор ВЫБОР в тексте запроса.

Рассмотрим пример настройки запроса в СКД для заполнения показателя:


ВЫБРАТЬ
    ХозрасчетныйОстатки.СуммаОстатокДт КАК Сумма,
    ВЫБОР
        КОГДА ХозрасчетныйОстатки.Субконто3 ССЫЛКА Справочник.ДопКлассификация 
              И ХозрасчетныйОстатки.Субконто3 <> ЗНАЧЕНИЕ(Справочник.ДопКлассификация.ПустаяСсылка)
            ТОГДА ХозрасчетныйОстатки.Субконто3
        ИНАЧЕ ХозрасчетныйОстатки.Субконто2 // Предположим, здесь КЭК
    КОНЕЦ КАК АналитикаДляОтчета
ИЗ
    РегистрБухгалтерии.ЕПСБУ.Остатки(&Период, Счет = &Счет128, , ) КАК ХозрасчетныйОстатки

Важно: Чтобы этот код сработал, целевой показатель в структуре отчета должен иметь тип, совместимый с обоими возвращаемыми значениями. Если это невозможно, в запросе следует приводить значения к типу Строка (через ПРЕДСТАВЛЕНИЕ), но тогда вы потеряете возможность расшифровки до объекта.

Этап 4: Использование внешних обработок заполнения

Проанализируем ситуацию, когда стандартный конструктор правил не позволяет реализовать очень сложную логику. В БГУ предусмотрена возможность подключения внешней обработки заполнения.

В справочнике Правила заполнения можно указать способ формирования — Внешняя обработка. В этом случае вы создаете в конфигураторе обработку, содержащую экспортную процедуру ЗаполнитьОтчет. В коде этой обработки можно программно обращаться к любым данным базы данных:


Процедура ЗаполнитьОтчет(ПараметрыЗаполнения) Экспорт
    // Получаем структуру отчета
    ДанныеОтчета = ПараметрыЗаполнения.ДанныеОтчета;
    
    // Обходим строки и заполняем нужную колонку по сложной логике
    Для Каждого СтрокаОтчета Из ДанныеОтчета Цикл
        Если ЗначениеЗаполнено(СтрокаОтчета.ДопКлассификация) Тогда
            СтрокаОтчета.ГрафаАналитика = СтрокаОтчета.ДопКлассификация;
        Иначе
            СтрокаОтчета.ГрафаАналитика = СтрокаОтчета.КЭК;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Почему изменения в «Макетах отображения» могут не работать?

Часто пользователи пытаются редактировать вкладку Используемые макеты отображения отчетов напрямую в БГУ и не видят результата. Разберем причины:

Подведем итог: для успешного изменения регламентированного отчета в БГУ 2.0 необходимо действовать в связке со «Сводом отчетов», корректно обновлять комплекты и использовать механизм ВЫБОР в запросах правил заполнения для реализации логики подмены типов данных.

← На главную