При разработке или модификации отчетов в типовых конфигурациях 1С (например, в ЗУП 2.5), часто возникает ситуация, когда в верхней части отчета, помимо желаемого заголовка, автоматически появляются «Дополнительные поля». Эти данные не всегда нужны пользователю, однако стандартные настройки схемы компоновки данных СКД не всегда позволяют их отключить. Давайте разберемся, почему это происходит и как устранить данную проблему.
Если вы создали отчет на основе существующего типового шаблона, вы столкнулись с особенностью архитектуры типовых конфигураций. В таких системах вывод заголовка и служебной информации (отборов, показателей, дополнительных полей) часто делегируется не самому движку СКД, а программному коду в общих модулях.
Когда отчет формируется, система вызывает методы, которые программно собирают информацию из КомпоновщикНастроек и принудительно выводят её в табличный документ. Рассмотрим фрагмент логики, который может за это отвечать:
Показатели = ПолучитьПоказатели(КомпоновщикНастроек);
ДополнительныеПоля = ПолучитьДополнительныеПоля(КомпоновщикНастроек);
СтрокаОтбор = Строка(КомпоновщикНастроек.Настройки.Отбор);
ОписаниеНастроекОтчета = ОписаниеПериода + СформироватьСтрокуПолей(ТипСтрок, Строки) + СформироватьСтрокуПолей(ТипКолонок, Колонки) + СформироватьСтрокуПолей("Дополнительные поля", ДополнительныеПоля) + СформироватьСтрокуПолей("Показатели", Показатели) + ?(ПустаяСтрока(СтрокаОтбор) , "", "Отбор: " + СтрокаОтбор);
Как мы видим, программный код жестко сцеплен с формированием строки, содержащей «Дополнительные поля». Именно поэтому изменение настроек внутри самого СКД может не приносить ожидаемого результата — логика «зашита» в модулях.
Чтобы убрать нежелательный текст из шапки отчета, воспользуемся следующими стратегиями:
ЗУП 2.5 часто используется общий модуль, например ТиповыеОтчетыХС (или аналогичные, отвечающие за ВыводЗаголовкаТиповогоОтчета). Вам необходимо найти процедуру, отвечающую за вывод заголовка, и изучить условия формирования строки с полями. Вы можете закомментировать вызов функции СформироватьСтрокуПолей для «Дополнительных полей» или добавить проверку, которая будет скрывать их для вашего конкретного отчета.Разберем шаги по настройке:
СКД создайте группировку, которая будет отвечать за ваш кастомный заголовок.СКД будет пытаться вывести их содержимое, что добавит лишние данные в отчет.СКД. Убедитесь, что параметры вывода, такие как Выводить заголовок, Выводить параметры данных и Выводить отбор, установлены в значение Не выводить. Это позволит системе «забыть» о необходимости отображать стандартную «шапку» отчета.Работая с типовыми отчетами, помните, что «дьявол кроется в деталях». Если отчет находится на поддержке, постарайтесь не изменять типовые общие модули напрямую. Лучше создать копию отчета как внешний файл или использовать механизмы расширений, если платформа позволяет. Если же изменения неизбежны, обязательно документируйте внесенные правки в коде.
Если при настройке собственной группировки для заголовка возникает ошибка, первым делом проверьте, не конфликтует ли ваше именование с существующими в типовом модуле настройками. Убедитесь, что для группировки не назначены обязательные поля, которые СКД требует вывести в обязательном порядке. Удаление всех выбранных полей в настройках группировки — это самый надежный способ «очистить» область вывода от ненужной информации.
Применяя данные подходы, вы сможете добиться чистого и профессионального вида отчета, соответствующего вашим задачам, без «мусора» из дополнительных полей и показателей.