При доработке типовых отчетов в конфигурациях 1С (например, «Бухгалтерия предприятия 3.0», «1С:ERP», «Управление торговлей») разработчики часто сталкиваются с ситуацией: в схему компоновки данных (СКД) добавлено новое вычисляемое поле, выбрано в настройках, но при формировании отчета в режиме «1С:Предприятие» колонка не появляется либо вовсе отсутствует в списке доступных полей. Разберем по шагам, почему это происходит и как правильно решить данную задачу.
Рассмотрим основную причину такого поведения. Большинство типовых отчетов на базе Библиотеки стандартных подсистем (БСП), таких как «Задолженность покупателей по срокам долга», строятся не типовым механизмом СКД напрямую, а программно. В модуле менеджера или модуле объекта отчета выполняется сложная логика компоновки:
Выбор у группировок или колонок таблицы.Если в коде модуля менеджера структура отчета генерируется жестко алгоритмом, любые изменения, внесенные вручную в схему компоновки в конфигураторе, просто перетираются при выполнении программного кода генерации результата. Для вывода нового поля необходимо найти процедуру формирования (например, обработчик компоновки макета или переопределение настроек) и явно добавить поле в программный выбор структуры отчета.
Проанализируем вторую распространенную ситуацию. Платформа 1С сохраняет персонализированные настройки отчетов для каждого пользователя в информационной базе. Когда разработчик меняет схему компоновки данных в конфигураторе, сохраненные пользовательские настройки не обновляются автоматически.
В результате пользователь продолжает открывать старый сохраненный вариант, в котором нового поля еще нет в составе выбранных полей или дополнительных колонок. Чтобы применить изменения схемы:
Выясним особенности работы СКД с нересурсными полями. Если новое поле добавлено как вычисляемое, но не указано на вкладке Ресурсы, платформа не может рассчитать его итоги по группировкам верхнего уровня. В таком случае действуют следующие правила:
Ресурсы и задать выражение агрегации, например Максимум(СрокОплаты) или Сумма(ДнейПросрочено).Разберем, как правильно реализовать доработку отчета, не снимая основную конфигурацию с поддержки.
Вариант А. Использование механизма расширений (рекомендуемый подход)
Добавим типовой отчет в расширение конфигурации. В расширении можно:
&Вместо, &После или &Перед, дополнив программную инициализацию колонок новыми полями.Вариант Б. Создание внешнего отчета
Посмотрим на особенности сохранения типового отчета в виде внешнего файла (.erf). Просто сохранить отчет из дерева конфигурации во внешний файл часто недостаточно, так как вызовы из общих модулей типовой конфигурации обращаются к метаданным через ОтчетМенеджер.<ИмяОтчета>.
Для корректного функционирования внешнего отчета необходимо:
СведенияОВнешнейОбработке() в соответствии со стандартами БСП для интеграции с подсистемой «Дополнительные отчеты и обработки».