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