Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамРазработка пользовательских…

1С:Предприятие 8.2 /
Разработчикам /
Разработка пользовательских интерфейсов

Оглавление

Формирование печатных форм

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

1.1. Для формирования печатной формыпользователю должно быть достаточно прав:

1.2. Если в печатную форму дополнительно выводятся данные каких-либо других объектов, связанных с основными, то права на них не должны оказывать влияния на возможность формирования печатной формы, а также на состав выводимой на печать информации. Поэтому код формирования печатной формы следует выполнять в таком случае в привилегированном режиме.

Например, для формирования печатной формы «Счет-фактура (в валюте)» используются данные документа, на основе которого формируется счет-фактура , и данные регистра сведений «Курсы валют». Пользователь может сформировать печатную форму, если у него есть права на чтение документа и на выполнение команды печати. Но при этом не имеет значения, есть ли у него права на регистр сведений «Курсы валют».

См. также: Использование привилегированного режима

2. Если функция печати предполагает множественную печать нескольких объектов, то по соображениям производительности (снижение нагрузки на СУБД) необходимо выполнять выборку данных в одном запросе, результаты которого затем обходятся в цикле.

См. также: Многократное выполнение однотипных запросов

Исключение из этого правила могут составлять случаи, когда выборка данных для нескольких объектов в одном запросе

3.1. Печатная и экранная формы объектов (справочников, документов и др.), в которых выводятся табличные части, должны соответствовать друг другу по составу и порядку строк табличных частей. В частности, при выводе на печать не следует каким-либо образом дополнительно группировать строки табличных частей.

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

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

4.1. В табличных частях печатных форм следует всегда выводить колонку со значением реквизита «Номер строки». В этом случае пользователи всегда смогут легко сопоставить строки табличных частей в печатных и экранных формах.

4.2. В тех случаях, когда на экранной форме не отображается реквизит «Номер строки», строки в печатной форме нумеруются в порядке их вывода.

4.3. Заголовок колонки с номером строки зависит от прикладной специфики печатной формы и может различаться в разных печатных формах. Например, в ТОРГ-12 колонка имеет строго регламентированное название «Номер по порядку», а в нерегламентированных печатных формах – может называться «№».

5. Строки табличных частей следует выводить в печатных формах отсортированными по полю «Номер строки», поскольку порядок вывода может быть разным на различных СУБД.

Исключение могут составлять печатные формы, прикладная специфика которых требует сортировки по другому реквизиту. Например, в задании кладовщику на отбор товаров из складских ячеек, строки задания отсортированы по порядку обхода ячеек склада (при этом значение реквизита «Номер строки» также выводится в соответствующей колонке).

См. также: Упорядочивание результатов запроса

6.1. При выводе данных в печатные формы, необходимо обеспечить, чтобы они были выведены полностью и не обрезались.

Методическая рекомендация (полезный совет)

6.2. В случае если печатные формы формируются с помощью табличных макетов, то при выводе строк табличных частей рекомендуется устанавливать свойство АвтоВысотаСтроки (объекта ОбластьЯчеекТабличногоДокумента)в значение Истина. Это позволяет избежать обрезания длинных текстовых строк, когда ширины колонок таблиц недостаточно.

7. При подготовке табличного документа на сервере не следует устанавливать размер полей заведомо меньше физических ограничений полей у принтера. В частности, недопустимо устанавливать нулевые поля.

В общем случае, размер полей табличного документа рекомендуется не менять (оставлять по умолчанию), кроме тех случаев, когда они явно регламентированы или стандартизированы. Например, согласно ГОСТ Р 6.30-2003 "Унифицированные системы документации. Унифицированная система организационно-распорядительной документации. Требования к оформлению документов" в документе должны быть заданы поля: 20 мм левое, 10 мм правое, 20 мм верхнее, 20 мм нижнее.

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

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

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

8. Если в конфигурации предусмотрена возможность того, что макет печатной формы может быть отредактирован пользователем в режиме предприятия (например, средствами подсистемы «Печать» Библиотеки стандартных подсистем), то необходимо рассчитывать на то, что любые параметры в нем могут быть изменены или удалены. Поэтому для повышения устойчивости кода формирования печатной формы следует избегать явного присвоения значений параметров в областях печати. Вместо этого следует использовать глобальный метод ЗаполнитьЗначенияСвойств или метод Заполнить коллекции ПараметрыМакетаТекстовогоДокумента.

Неправильно:

ОбластьПечати.Параметры.Организация = ДанныеПечати.Организация;

// будет ошибка при отсутсвии в макете параметра Организация
ОбластьПечати.Параметры.Контрагент = ДанныеПечати.Контрагент;


Правильно:

ЗаполнитьЗначенияСвойств(ОбластьПечати.Параметры, ДанныеПечати);

или

ОбластьПечати.Параметры.Заполнить(ДанныеПечати);

Примечание: в переменной ДанныеПечати в примерах может быть Структура, Соответствие, ВыборкаИзРезультатаЗапроса или любая другая коллекция со значениями параметров.

См. также


Нас находят: 1, 1с печатные формы на английском, Функция для формирование печатной формы, формирования печатных форм, формирования печатных документов, формирование табличного макета печатной формы 1с, формирование пустых строк в печатной форме 1с, формирование печатной формы табличный документ обучающие материалы, удалить строку при выводе печатной форме в 1с, ТабДокумент Размер Страницы(A5); 1с


Подписка на новости RSS

Мы на Facebook