Почему в печатных формах 1С отсутствует командная панель и как ее вернуть?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке собственных печатных форм в среде 1С:Предприятие часто возникает ситуация, когда один документ отображается с полноценной командной панелью, позволяющей настраивать печать, сохранять файл или отправлять его по почте, а другой — как «голый» табличный документ без каких-либо инструментов управления. Давайте разберемся, почему так происходит и как привести интерфейс всех форм к единому стандарту.

Разбираем причины различий в отображении

Основная причина заключается в способе вывода ТабличногоДокумента на экран. В 1С существует два принципиально разных подхода:

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

Если вы видите, что в одном случае панель есть, а в другом нет, значит, в первом варианте используется типовая общая форма печати БСП, а во втором — вывод осуществляется напрямую через платформенные методы.

Как реализовать правильный вывод печатных форм

Чтобы ваша печатная форма выглядела профессионально и предоставляла пользователю все возможности стандартных инструментов 1С, необходимо интегрировать процедуру печати в механизм УправлениеПечатью. Рассмотрим основные шаги реализации.

Для корректной работы БСП формирование печатных форм должно выполняться с использованием коллекции печатных форм. Это позволяет системе корректно обрабатывать несколько макетов, если это необходимо.

Разберем пример того, как происходит подготовка данных в коде:


// Пример формирования структуры коллекции для БСП
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ИдентификаторыОбъектов);
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ИмяМакета");
ПечатнаяФорма.ТабличныйДокумент = СформироватьПечатнуюФорму(ОбъектСсылка);

После того как данные сформированы, вместо использования метода Показать(), необходимо передать управление методу, который открывает общую форму печати. В типовых конфигурациях это делается через метод УправлениеПечатьюКлиент.ОткрытьФормуПечатныхФорм().

Преимущества использования механизмов БСП

Перевод всех печатных форм на рельсы БСП дает ряд существенных преимуществ:

  1. Единообразие интерфейса: Пользователи привыкают к определенному расположению кнопок печати и настройки макета, что снижает время на обучение.
  2. Расширенный функционал: Автоматически появляются кнопки для отправки документа по электронной почте, сохранения в форматы PDF, Excel, Word, а также инструменты для поиска по тексту в табличном документе.
  3. Поддержка и масштабируемость: Использование стандартного подхода позволяет легко добавлять новые печатные формы, используя существующую инфраструктуру системы.

Если вы столкнулись с отсутствием панели в своей разработке, первым делом проверьте, как именно вызывается окно просмотра. Если в коде вы обнаружите ТабДок.Показать(), значит, именно здесь кроется причина. Замените прямой вызов на использование общего менеджера печати.

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

Надеемся, что это руководство поможет вам стандартизировать печатные формы в вашей конфигурации и сделать работу пользователей более комфортной.

← На главную