#std548¶
Формирование печатных форм¶
Некоторые справочники, документы и другие объекты конфигурации предоставляют команды вывода на печать. Ниже приведены требования к реализации таких команд.
1.¶
Для формирования печатной формы пользователю должно быть достаточно прав:
- на чтение данных, по которым формируется печатная форма;
- на выполнение команды, запускающей формирование печатной формы.
Например, наличие прав на документ ЗаказПокупателя
не означает автоматический доступ ко всем печатным формам:
доступ к печатным формам может ограничиваться правами на команды.
2.¶
В функции печати рекомендуется поддерживать множественную печать для нескольких объектов. Для снижения нагрузки на СУБД выборку данных выполняйте одним запросом, а затем обходите результат в цикле.
См. также: #std436: Многократное выполнение однотипных запросов.
3.¶
Следующие рекомендации применимы к нерегламентированным печатным формам.
3.1.¶
Печатная и экранная формы объектов, в которых выводятся табличные части, должны совпадать по составу и порядку строк табличных частей.
При выводе на печать не выполняйте дополнительную группировку строк, которой нет в экранной форме.
3.2.¶
Если строки в экранной форме уже сгруппированы, при выводе на печать применяйте ту же группировку.
Например, если в экранной форме цены номенклатуры сгруппированы по типам цен, в печатной форме применяйте ту же логику группировки.
3.3.¶
В табличных частях печатных форм всегда выводите колонку
со значением реквизита Номер строки.
Это позволяет пользователю сопоставить строки
в печатной и экранной формах.
3.4.¶
Если в экранной форме реквизит Номер строки не отображается,
строки в печатной форме нумеруйте по порядку вывода.
3.5.¶
Заголовок колонки с номером строки зависит от прикладной специфики и может различаться в разных печатных формах.
Например, в ТОРГ-12 используется строго регламентированное название
Номер по порядку,
а в нерегламентированных формах можно использовать №.
4.¶
Порядок строк табличных частей в печатной форме должен быть одинаковым на разных СУБД. Для этого выводите строки в отсортированном виде: по номеру строки или другому полю.
Рекомендуется индексировать поля, по которым выполняется сортировка.
Например, в задании кладовщику на отбор товаров из ячеек склада
строки задания сортируются по порядку обхода ячеек,
при этом Номер строки также выводится в отдельной колонке.
См. также: #std412: Упорядочивание результатов запроса.
5.1.¶
При выводе данных в печатные формы обеспечьте, чтобы они выводились полностью и не обрезались.
5.2.¶
Если печатные формы строятся табличными макетами,
при выводе строк табличных частей
рекомендуется устанавливать свойство
АвтоВысотаСтроки объекта ОбластьЯчеекТабличногоДокумента в Истина.
Это помогает избежать обрезания длинных строк, когда ширины колонок недостаточно.
6.¶
При подготовке табличного документа на сервере не устанавливайте поля заведомо меньше физических ограничений принтера. В частности, недопустимо устанавливать нулевые поля.
Обычно поля табличного документа лучше оставлять по умолчанию, кроме явно регламентированных случаев.
Например, по ГОСТ Р 6.30-2003
рекомендуются поля: 20 мм слева, 10 мм справа, 20 мм сверху, 20 мм снизу.
Требование связано с тем, что на сервере приложений нельзя получить физические ограничения полей клиентского принтера. Если установить нулевые поля, часть текста за пределами минимально допустимых полей принтера может не распечататься.
Пример некорректного кода
См. также¶
- #std645: Названия печатных форм учетных документов и команд по их выводу на печать
- #std789: Разработка печатных форм с учетом возможного внесения изменений в макет пользователем