При работе в конфигурации 1С:Бухгалтерия государственного учреждения (БГУ 2.0) программисты и квалифицированные бухгалтеры часто сталкиваются с необходимостью изменить структуру регламентированного отчета (например, форм 128, 737 или 127). Типовые инструменты конфигуратора не позволяют просто «дорисовать» колонку в макете, так как отчетность в БГУ строится на механизме комплектов. Рассмотрим подробно, как правильно редактировать такие отчеты и настраивать их автоматическое заполнение.
Для начала проанализируем, почему нельзя просто изменить отчет через конфигуратор или в пользовательском режиме БГУ. Структура регламентированной отчетности в БГУ является «загружаемой». Это означает, что все виды отчетов, их строки, колонки и аналитические разрезы определяются внешним Комплектом отчетности (файл с расширением .repx).
Разберем основные принципы этой архитектуры:
Виды отчетов, настраиваются их бланки и печатные формы.Комплекты отчетности.Правила заполнения, которые определяют, из каких регистров и по каким алгоритмам данные попадут в уже готовую структуру отчета.Посмотрим, что необходимо сделать, если вам нужно добавить новую колонку (графу) или аналитику в отчет. Выполнять эти действия нужно в базе «Свода отчетов»:
Виды отчетов и найдем нужную форму (например, 0503128).Колонки отчетов. Укажем его наименование и код.Строка или используйте более универсальный тип, если это позволяет конфигурация «Свода».Макет отображения (бланк) и добавить новую колонку визуально, привязав ячейки макета к созданному показателю.Теперь перейдем в БГУ 2.0 и выполним следующие действия:
Комплекты отчетности.Загрузить и выберем файл, подготовленный на предыдущем этапе. Система обновит метаданные отчетов, и в справочнике Виды отчетов появится ваша новая колонка.Выясним, как заставить программу автоматически заполнять новую колонку данными, особенно если логика подразумевает выбор между двумя значениями (Доп. классификация или КЭК). Для этого нам понадобится справочник Правила заполнения.
Разберем создание правила по шагам:
Правило заполнения для нужного отчета или создадим новое.ВЫБОР в тексте запроса.Рассмотрим пример настройки запроса в СКД для заполнения показателя:
ВЫБРАТЬ
ХозрасчетныйОстатки.СуммаОстатокДт КАК Сумма,
ВЫБОР
КОГДА ХозрасчетныйОстатки.Субконто3 ССЫЛКА Справочник.ДопКлассификация
И ХозрасчетныйОстатки.Субконто3 <> ЗНАЧЕНИЕ(Справочник.ДопКлассификация.ПустаяСсылка)
ТОГДА ХозрасчетныйОстатки.Субконто3
ИНАЧЕ ХозрасчетныйОстатки.Субконто2 // Предположим, здесь КЭК
КОНЕЦ КАК АналитикаДляОтчета
ИЗ
РегистрБухгалтерии.ЕПСБУ.Остатки(&Период, Счет = &Счет128, , ) КАК ХозрасчетныйОстатки
Важно: Чтобы этот код сработал, целевой показатель в структуре отчета должен иметь тип, совместимый с обоими возвращаемыми значениями. Если это невозможно, в запросе следует приводить значения к типу Строка (через ПРЕДСТАВЛЕНИЕ), но тогда вы потеряете возможность расшифровки до объекта.
Проанализируем ситуацию, когда стандартный конструктор правил не позволяет реализовать очень сложную логику. В БГУ предусмотрена возможность подключения внешней обработки заполнения.
В справочнике Правила заполнения можно указать способ формирования — Внешняя обработка. В этом случае вы создаете в конфигураторе обработку, содержащую экспортную процедуру ЗаполнитьОтчет. В коде этой обработки можно программно обращаться к любым данным базы данных:
Процедура ЗаполнитьОтчет(ПараметрыЗаполнения) Экспорт
// Получаем структуру отчета
ДанныеОтчета = ПараметрыЗаполнения.ДанныеОтчета;
// Обходим строки и заполняем нужную колонку по сложной логике
Для Каждого СтрокаОтчета Из ДанныеОтчета Цикл
Если ЗначениеЗаполнено(СтрокаОтчета.ДопКлассификация) Тогда
СтрокаОтчета.ГрафаАналитика = СтрокаОтчета.ДопКлассификация;
Иначе
СтрокаОтчета.ГрафаАналитика = СтрокаОтчета.КЭК;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Часто пользователи пытаются редактировать вкладку Используемые макеты отображения отчетов напрямую в БГУ и не видят результата. Разберем причины:
Еще — Обновить настройки..repx файле макет (бланк) жестко привязан к версии, ваши ручные правки в БГУ могут перекрываться данными из комплекта при каждом обновлении. Поэтому правильный путь — всегда начинать правку с «Свода отчетов».Подведем итог: для успешного изменения регламентированного отчета в БГУ 2.0 необходимо действовать в связке со «Сводом отчетов», корректно обновлять комплекты и использовать механизм ВЫБОР в запросах правил заполнения для реализации логики подмены типов данных.