#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 мм снизу.

Требование связано с тем, что на сервере приложений нельзя получить физические ограничения полей клиентского принтера. Если установить нулевые поля, часть текста за пределами минимально допустимых полей принтера может не распечататься.

Пример некорректного кода

// Зададим параметры печатной формы по умолчанию
ТабДокумент.ПолеСверху = 0;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 0;
См. также
Проверки

#acc:384

Источник

https://its.1c.ru/db/v8std#content:548