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