diff --git a/public/bsp-pechat/1.png b/public/bsp-pechat/1.png new file mode 100644 index 0000000..850949d Binary files /dev/null and b/public/bsp-pechat/1.png differ diff --git a/public/bsp-pechat/2.png b/public/bsp-pechat/2.png new file mode 100644 index 0000000..b988641 Binary files /dev/null and b/public/bsp-pechat/2.png differ diff --git a/public/bsp-pechat/3.png b/public/bsp-pechat/3.png new file mode 100644 index 0000000..75d51a9 Binary files /dev/null and b/public/bsp-pechat/3.png differ diff --git a/public/bsp-pechat/4.png b/public/bsp-pechat/4.png new file mode 100644 index 0000000..837e24e Binary files /dev/null and b/public/bsp-pechat/4.png differ diff --git a/public/bsp-pechat/5.png b/public/bsp-pechat/5.png new file mode 100644 index 0000000..f50a739 Binary files /dev/null and b/public/bsp-pechat/5.png differ diff --git a/public/bsp-pechat/6.png b/public/bsp-pechat/6.png new file mode 100644 index 0000000..24f1225 Binary files /dev/null and b/public/bsp-pechat/6.png differ diff --git a/public/bsp-pechat/7.png b/public/bsp-pechat/7.png new file mode 100644 index 0000000..742ae83 Binary files /dev/null and b/public/bsp-pechat/7.png differ diff --git a/public/bsp-pechat/8.png b/public/bsp-pechat/8.png new file mode 100644 index 0000000..fcb6726 Binary files /dev/null and b/public/bsp-pechat/8.png differ diff --git a/public/bsp-pechat/9.png b/public/bsp-pechat/9.png new file mode 100644 index 0000000..fddb4b5 Binary files /dev/null and b/public/bsp-pechat/9.png differ diff --git a/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/3.1.10/Печать/Подключение к подсистеме Печать.md b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/3.1.10/Печать/Подключение к подсистеме Печать.md new file mode 100644 index 0000000..175fa2e --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/3.1.10/Печать/Подключение к подсистеме Печать.md @@ -0,0 +1,930 @@ +--- +title: Подключение к подсистеме Печать +slug: общие-бсп-стандартные-подсистемы-3-1-10-печать/подключение-к-подсистеме-печать +--- + +## Настройка объектов метаданных + +В процедуре `ПриОпределенииНастроекПечати` общего модуля `УправлениеПечатьюПереопределяемый` перечисляем менеджеры объектов, которые нужно подключить: + +```bsl + +// Переопределяет настройки подсистемы. +// +// Параметры: +// Настройки - Структура: +// * ИспользоватьПодписиИПечати - Булево - при установке значения Ложь отключается возможность установки подписей +// и печатей в печатных формах. +// * СкрыватьПодписиИПечатиДляРедактирования - Булево - удалять рисунки подписей и печатей табличных документов при +// снятии флажка "Подписи и печати" в форме "Печать документов", для того, +// чтобы они не мешали редактировать текст, находящийся под ними. +// * ПроверкаПроведенияПередПечатью - Булево - признак необходимости проверки проведенности +// документов перед печатью, является значением по умолчанию для команды печати +// см. УправлениеПечатью.СоздатьКоллекциюКомандПечати. +// Для непроведенных документов команда печати не выполняется. +// Если параметр не указан, то проверка проведенности не выполняется. +// * ОбъектыПечати - Массив - менеджеры объектов с процедурой ПриОпределенииНастроекПечати. +// +Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт + + ... + Настройки.ОбъектыПечати.Добавить(Справочники._ДемоКонтрагенты); + Настройки.ОбъектыПечати.Добавить(Справочники._ДемоОрганизации); + ... + Настройки.ОбъектыПечати.Добавить(Документы._ДемоСчетНаОплатуПокупателю); + Настройки.ОбъектыПечати.Добавить(Документы._ДемоРасходныйКассовыйОрдер); + ... + +КонецПроцедуры + +``` + +## Настройка модуля менеджера + +В модуле менеджера объектов, подключаемых к подсистеме добавляются методы `ПриОпределенииНастроекПечати` и `ДобавитьКомандыПечати`: + +```bsl + +// СтандартныеПодсистемы.Печать + +// Переопределяет настройки печати для объекта. +// +// Параметры: +// Настройки - см. УправлениеПечатью.НастройкиПечатиОбъекта. +// +Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт + Настройки.ПриДобавленииКомандПечати = Истина; +КонецПроцедуры + +// Определяет список команд печати. +// +// Параметры: +// КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати +// +Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт + + // в зависимости от варианта печати - автоматического "нового" или традиционного. См. ниже + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.Печать + +``` + +## Подключение форм к подсистеме `Подключаемые команды` + +Чтоыб были выведены подключаемые команды печати необходимо подключить формы к подсистеме `Подключаемые команды` + + +## Автоматическое формирование печатной формы + +### Макет табличного документа + +
+ВАРИАНТ 1. Без конфигуратора + +Данный способ позволяет создать печатную форму исключительно в пользовательском режиме. +Команды печати в таком случае создавать не нужно + +В пользовательском режиме открываем `Администрирование` -> `Печатные формы, отчеты и обработки` -> `Макеты печатных форм` + +![Изображение](/bsp-pechat/1.png) + +В конструкторе макета создаем необходимый вид печатной формы + +![Изображение](/bsp-pechat/2.png) + +> ВАЖНО! Параметры указываются в [квадратных скобках], функции также. Например, чтобы для поля `Дата` применить функцию `Формат`, в ячейку нужно записать строку вида `[Формат([Дата], "ДФ=дд.ММ.гггг")]`. + +> Также не нужно никак выделять строки табличных частей - просто выводим параметры ТЧ в ячейки, система сама определит, что такие строки нужно повторять + +![Изображение](/bsp-pechat/6.png) + +С помощью команд редактора можно запустить предпросмотр или изменить образец: + +![Изображение](/bsp-pechat/3.png) + +Включаем видимость печатной формы + +![Изображение](/bsp-pechat/4.png) + +Все, после записи макета команда печати будет доступна в формах объекта + +
+ +
+ВАРИАНТ 2. Встраивание в конфигуратор + +- Создаем макет печатной формы также, как и в **варианте 1**, только **не включаем видимость**. Созданный макет нужно сохранить в формате `MXL`, открыть в конфигураторе и скопировать **все** содержимое в созданный макет + +![Изображение](/bsp-pechat/5.png) + + +- В `модуле менеджера` реализуем процедуру `ДобавитьКомандыПечати`: + +```bsl + +Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт + + Команда = КомандыПечати.Добавить(); + + Команда.МенеджерПечати = "УправлениеПечатью"; // ВАЖНО! Менеджер - сама подсистема + Команда.Идентификатор = "Документ.МойДокумент.ПФ_MXL_ПечатнаяФормаМоегоДокумента"; // Полный путь к макету + Команда.Представление = НСтр("ru = 'Печатная форма моего документа'"); + +КонецПроцедуры + +``` + +После обновления конфигурации команда печати должна появиться в формах целевого объекта, а также в списке `Макеты печатных форм` + +
+ +
+Изменение списка доступных полей + +Для того, чтобы расширить или уменьшить список доступных полей в конструкторе печатных форм нужно реализовать схему компоновки данных `ДанныеПечати` на уровне объекта + +![Изображение](/bsp-pechat/2.png) + +Схема компоновки данных должна именоваться именно `Данные печати`, в запросе иметь поле `Ссылка` целевого объекта. **В схеме можно использовать все возможности СКД** (ВычисляемыеПоля, соединения и пр.) + +![Изображение](/bsp-pechat/7.png) + +ПРИ НЕОБХОДИМОСТИ дополняются методы `ПриОпределенииИсточниковДанныхПечати` `ПриПодготовкеДанныхПечати` общего модуля `УправлениеПечатьюПереопределяемый`. Метод `ПриОпределенииИсточниковДанныхПечати` **описывает новые поля** схемы, а `ПриПодготовкеДанныхПечати` **реализует их заполнение** + +**(Не пробовал, нужно потестить)** + +```bsl + +// Определяет используемый макет данных печати для объектов метаданных и отдельных полей. +// По умолчанию используется макет ДанныеПечати у ссылочных объектов. Если макет отсутствует в метаданных, он будет +// сгенерирован автоматически на основе выборки всех реквизитов объекта. В данной процедуре можно переопределить +// состав полей, доступных для печати как для всего объекта, так и для отдельного поля объекта. +// +// Параметры: +// Объект - Строка - полное имя объекта метаданных либо имя поля из макета "ДанныеПечати" объекта метаданных +// в формате "ПолноеИмяОбъектаМетаданных.ИмяПоля". +// ИсточникиДанныхПечати - СписокЗначений: +// * Значение - СхемаКомпоновкиДанных - схема данных печати. Определяет состав подчиненных полей объекта или поля, +// используется при получении данных печати. +// При получении данных печати отбор значений производится по полю Ссылка. +// Поэтому в составе полей схемы компоновки данных обязательно должно +// присутствовать поле Ссылка, даже если оно фактически не ссылочного типа, +// а, например, Строка. +// +// * Представление - Строка - идентификатор схемы, используется в процедуре ПриПодготовкеДанныхПечати. +// Если в качестве идентификатора схемы используется полное имя объекта метаданных, то +// при подготовке данных печати будет вызываться процедура ПриПодготовкеДанныхПечати +// модуля менеджера объекта. Иначе будет вызвана аналогичная процедура этого модуля. +// +// * Пометка -Булево - Истина, если в качестве дополнительного ключевого поля выступает владелец источника данных. +// +Процедура ПриОпределенииИсточниковДанныхПечати(Объект, ИсточникиДанныхПечати) Экспорт + + // _Демо начало примера + + // СтандартныеПодсистемы.СклонениеПредставленийОбъектов + Если Объект = "Справочник._ДемоФизическиеЛица.Наименование" Тогда + СклонениеПредставленийОбъектов.ПодключитьИсточникДанныхПечатиСклоненияСтрок(ИсточникиДанныхПечати); + КонецЕсли; + // Конец СтандартныеПодсистемы.СклонениеПредставленийОбъектов + + Если Объект = "Документ._ДемоСчетНаОплатуПокупателю" Тогда + + СписокПолей = УправлениеПечатью.ДеревоПолейДанныхПечати(); + + Поле = СписокПолей.Строки.Добавить(); + Поле.Идентификатор = "Ссылка"; + Поле.Представление = НСтр("ru = 'Ссылка'"); + Поле.ТипЗначения = Новый ОписаниеТипов(); + + Поле = СписокПолей.Строки.Добавить(); + Поле.Идентификатор = "QRКод"; + Поле.Представление = НСтр("ru='QR-код'"); + Поле.Картинка = БиблиотекаКартинок.ТипКартинка; + Поле.Порядок = 1; + + СхемаДанныеШтрихкодов = УправлениеПечатью.СхемаКомпоновкиДанныхПечати(СписокПолей); + ИсточникиДанныхПечати.Добавить(СхемаДанныеШтрихкодов, "QRКодСчетаНаОплату"); + + КонецЕсли; + + Если Объект = "Справочник._ДемоФизическиеЛица.Наименование" Тогда + СписокПолей = УправлениеПечатью.ТаблицаПолейДанныхПечати(); + + Поле = СписокПолей.Добавить(); + Поле.Идентификатор = "Ссылка"; + Поле.Представление = НСтр("ru = 'Ссылка'"); + Поле.ТипЗначения = Новый ОписаниеТипов(); + + Поле = СписокПолей.Добавить(); + Поле.Идентификатор = "ФамилияИнициалы"; + Поле.Представление = НСтр("ru = 'Фамилия И. О.'"); + Поле.ТипЗначения = Новый ОписаниеТипов("Строка"); + + СхемаДанных = УправлениеПечатью.СхемаКомпоновкиДанныхПечати(СписокПолей); + + ИсточникиДанныхПечати.Добавить(СхемаДанных, "ДанныеПечатиФамилияИнициалы"); + + КонецЕсли; + + // _Демо конец примера + +КонецПроцедуры + + +// Подготавливает данные печати. Вызывается в случае, если используемая схема компоновки данных содержит набор +// данных Объект. +// В случае, если в качестве идентификатора схемы используется имя объекта метаданных, то вместо этой процедуры +// вызывается аналогичная процедура модуля менеджера объекта. +// +// Параметры: +// ИсточникиДанных - Массив - объекты, для которых формируются данные печати. +// ВнешниеНаборыДанных - Структура - коллекция наборов данных для передачи в процессор компоновки данных. +// ИдентификаторСхемыКомпоновкиДанных - Строка - идентификатор СКД, указанный в ПриОпределенииИсточниковДанныхПечати. +// КодЯзыка - Строка - язык, на котором требуется подготовить данные печати. +// ДополнительныеПараметры - Структура: +// * ОписанияИсточниковДанных - ТаблицаЗначений - дополнительные сведения об объектах, для которых формируются данные печати. +// * ДанныеИсточниковСгруппированыПоВладельцуИсточникаДанных - Булево - указывает на то, что в результате компоновки +// данные печати сгруппированы не по объектам печати, а по их владельцам в схеме данных печати. +// +Процедура ПриПодготовкеДанныхПечати(ИсточникиДанных, ВнешниеНаборыДанных, ИдентификаторСхемыКомпоновкиДанных, КодЯзыка, + ДополнительныеПараметры) Экспорт + + Если ИдентификаторСхемыКомпоновкиДанных = "QRКодСчетаНаОплату" Тогда + + НаборДанных = Новый ТаблицаЗначений(); + НаборДанных.Колонки.Добавить("Ссылка"); + НаборДанных.Колонки.Добавить("QRКод"); + + + ДанныеДокументов = ДанныеДокументов(ИсточникиДанных); + + QRКоды = Новый Соответствие; + Для Каждого РеквизитыПлатежа Из ДанныеДокументов Цикл + ПолучитьСообщенияПользователю(); + QRСтрока = Неопределено; + // Локализация + QRСтрока = УправлениеПечатьюРФ.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа); + // Конец Локализация + + Если ПустаяСтрока(QRСтрока) Тогда + QRКоды.Вставить(РеквизитыПлатежа.Ссылка, Новый Картинка()); + Продолжить; + КонецЕсли; + + ДанныеQRКода = ГенерацияШтрихкода.ДанныеQRКода(QRСтрока, 1, 120); + + Если НЕ ТипЗнч(ДанныеQRКода) = Тип("ДвоичныеДанные") Тогда + Шаблон = НСтр("ru = 'Не удалось сформировать QR-код для документа %1. + |Технические подробности см. в журнале регистрации.'"); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, РеквизитыПлатежа.Ссылка); + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения); + Продолжить; + КонецЕсли; + + QRКод = Новый Картинка(ДанныеQRКода); + QRКоды.Вставить(РеквизитыПлатежа.Ссылка, QRКод); + КонецЦикла; + + Для Каждого ИсточникДанных Из ИсточникиДанных Цикл + ЗначениеПолейДанных = НаборДанных.Добавить(); + ЗначениеПолейДанных.Ссылка = ИсточникДанных; + ЗначениеПолейДанных.QRКод = QRКоды[ИсточникДанных]; + КонецЦикла; + + ВнешниеНаборыДанных.Вставить("Данные", НаборДанных); + Возврат; + КонецЕсли; + + Если ИдентификаторСхемыКомпоновкиДанных = "ДанныеПечатиФамилияИнициалы" Тогда + + ДанныеПечати = Новый ТаблицаЗначений(); + ДанныеПечати.Колонки.Добавить("Ссылка"); + ДанныеПечати.Колонки.Добавить("ФамилияИнициалы"); + + Для Каждого Объект Из Объекты Цикл + СтрокаТаблицы = ДанныеПечати.Добавить(); + СтрокаТаблицы.Ссылка = Объект; + СтрокаТаблицы.ФамилияИнициалы = ФизическиеЛицаКлиентСервер.ФамилияИнициалы(Объект); + КонецЦикла; + + ВнешниеНаборыДанных.Вставить("Данные", ДанныеПечати); + Возврат; + КонецЕсли; + +КонецПроцедуры + +``` + +
+ +### Макет open office XML (DOC) + +Отличается только конструктором, все остальное, так же, как описано выше для MXL + +![Изображение](/bsp-pechat/8.png) + +## Традиционное формирование печатной формы + +### Макет табличного документа + +В `модуле менеджера` реализуем процедуру `ДобавитьКомандыПечати`: + +```bsl + +Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт + + Команда = КомандыПечати.Добавить(); + + Команда.МенеджерПечати = "Документ.МойДокумент"; // где процедура "Печать". Можно не указывать, по умолчанию модуль менеджера объекта + Команда.Идентификатор = "ПФ_MXL_ПечатнаяФормаМоегоДокумента"; // Произвольная строка, рекомендуется именовать как макет + Команда.Представление = НСтр("ru = 'Печатная форма моего документа'"); + +КонецПроцедуры + +``` + +
+Примеры команд печати + +```bsl + +// Заполняет список команд печати. +// +// Параметры: +// КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати +// +Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт + + // Счет на оплату + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Счет"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату'"); + КомандаПечати.ПроверкаПроведенияПередПечатью = Не Пользователи.РолиДоступны("_ДемоПечатьНепроведенныхДокументов"); + + // Счет на оплату без платежных реквизитов. + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Счет"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату без платежных реквизитов'"); + КомандаПечати.ПроверкаПроведенияПередПечатью = Не Пользователи.РолиДоступны("_ДемоПечатьНепроведенныхДокументов"); + + // Это будет доступно в аргументе "ПараметрыПечати" метода "Печать" + КомандаПечати.ДополнительныеПараметры.Вставить("ВыводитьПлатежныеРеквизиты", Ложь); + + // Демо-пример ограничения доступности команд печати. + Если Пользователи.РолиДоступны("_ДемоПечатьСчетаНаОплатуНаПринтер") Тогда + // Счет на оплату (на принтер). + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Счет"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату (на принтер)'"); + КомандаПечати.Картинка = БиблиотекаКартинок.ПечатьСразу; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.СразуНаПринтер = Истина; + КонецЕсли; + + Если НЕ Пользователи.ЭтоСеансВнешнегоПользователя() Тогда + // Комплект документов + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Счет,Заказ,Заказ,Обработка._ДемоПечатнаяФорма.ГарантийноеПисьмо,Счет,Счет,Заказ"; + КомандаПечати.Представление = НСтр("ru = 'Комплект документов'"); + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.ФиксированныйКомплект = Истина; + КомандаПечати.ПереопределитьПользовательскиеНастройкиКоличества = Истина; + КомандаПечати.Порядок = 75; + + // Комплект документов (на принтер). + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Счет,Заказ,Заказ,Обработка._ДемоПечатнаяФорма.ГарантийноеПисьмо,Счет,Счет,Заказ"; + КомандаПечати.Представление = НСтр("ru = 'Комплект документов (на принтер)'"); + КомандаПечати.Картинка = БиблиотекаКартинок.ПечатьСразу; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.ФиксированныйКомплект = Истина; + КомандаПечати.ПереопределитьПользовательскиеНастройкиКоличества = Истина; + КомандаПечати.СразуНаПринтер = Истина; + КомандаПечати.Порядок = 75; + + // Настраиваемый комплект документов. + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Счет,Заказ,Заказ,Обработка._ДемоПечатнаяФорма.ГарантийноеПисьмо,Счет,Счет,Заказ"; + КомандаПечати.Представление = НСтр("ru = 'Настраиваемый комплект документов'"); + КомандаПечати.СписокФорм = "ФормаДокумента,ФормаСписка"; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.ЗаголовокФормы = НСтр("ru = 'Настраиваемый комплект'"); + КомандаПечати.ДополнитьКомплектВнешнимиПечатнымиФормами = Истина; + КомандаПечати.Порядок = 75; + КонецЕсли; + + // Счет на оплату в документ Adobe PDF. + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Счет"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату в документ Adobe PDF'"); + КомандаПечати.Картинка = БиблиотекаКартинок.ФорматPDF; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.ФорматСохранения = ТипФайлаТабличногоДокумента.PDF; + + // Счет на оплату в формате Office Open XML + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "СчетНаОплату(OfficeOpenXML)"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату в Office Open XML'"); + КомандаПечати.Картинка = БиблиотекаКартинок.ФорматWord; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + + + // Счет на оплату в формате Office Open XML (на основе СКД) + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.МенеджерПечати = "УправлениеПечатью"; + КомандаПечати.Идентификатор = "Документ._ДемоСчетНаОплатуПокупателю.ПФ_DOC_СчетНаОплатуСКД_ru"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату в Office Open XML (на основе СКД)'"); + КомандаПечати.Картинка = БиблиотекаКартинок.ФорматWord; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + + // Счет на оплату в Microsoft Word. + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "СчетНаОплату(MSWord)"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату в Microsoft Word (для обратной совместимости)'"); + КомандаПечати.Картинка = БиблиотекаКартинок.ФорматWord2007; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.Обработчик = "_ДемоСтандартныеПодсистемыКлиент.ПечатьСчетовНаОплатуПокупателю"; + + // Счет на оплату в OpenOffice.org Writer. + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "СчетНаОплату(ODT)"; + КомандаПечати.Представление = НСтр("ru = 'Счет на оплату в OpenOffice.org Writer (для обратной совместимости)'"); + КомандаПечати.Картинка = БиблиотекаКартинок.ФорматOpenOfficeWriter; + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.Обработчик = "_ДемоСтандартныеПодсистемыКлиент.ПечатьСчетовНаОплатуПокупателю"; + + // Локализация + // Квитанция на оплату с QR кодом. + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "Квитанция"; + КомандаПечати.Представление = НСтр("ru = 'Квитанция (с QR кодом)'"); + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.Порядок = 85; + // Конец Локализация + + // Печатная форма с ошибкой формирования. + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "ПечатнаяФормаСОшибкой"; + КомандаПечати.Представление = НСтр("ru = 'Печатная форма с ошибкой формирования'"); + КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; + КомандаПечати.Порядок = 100; + +КонецПроцедуры + +``` + +
+ +В `модуле менеджера` реализуем процедуру `Печать`: + +```bsl + +// Формирует печатные формы. +// +// Параметры: +// МассивОбъектов - см. УправлениеПечатьюПереопределяемый.ПриПечати.МассивОбъектов +// ПараметрыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыПечати +// КоллекцияПечатныхФорм - см. УправлениеПечатьюПереопределяемый.ПриПечати.КоллекцияПечатныхФорм +// ОбъектыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ОбъектыПечати +// ПараметрыВывода - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыВывода +// +Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт + + ИдентификаторКоманды = "Заказ"; + ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, ИдентификаторКоманды); + Если ПечатнаяФорма <> Неопределено Тогда + // ПечатьСчетаЗаказа - функция, возвращающая заполненный табличный документ + ПечатнаяФорма.ТабличныйДокумент = ПечатьСчетаЗаказа(МассивОбъектов, ОбъектыПечати, "Заказ"); + ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Заказ покупателя'"); + ПечатнаяФорма.ПолныйПутьКМакету = "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_СчетЗаказ"; + КонецЕсли; + +КонецПроцедуры + +``` + +
+Пример печати (Демо) + +```bsl + +// Формирует печатные формы. +// +// Параметры: +// МассивОбъектов - см. УправлениеПечатьюПереопределяемый.ПриПечати.МассивОбъектов +// ПараметрыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыПечати +// КоллекцияПечатныхФорм - см. УправлениеПечатьюПереопределяемый.ПриПечати.КоллекцияПечатныхФорм +// ОбъектыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ОбъектыПечати +// ПараметрыВывода - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыВывода +// +Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт + + // печать счета на оплату + ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "СчетНаОплату(OfficeOpenXML)"); + Если ПечатнаяФорма <> Неопределено Тогда + + ИмяМакета = "СчетНаОплату(OfficeOpenXML)"; + МакетИДанныеОбъекта = УправлениеПечатью.МакетыИДанныеОбъектовДляПечати("Документ._ДемоСчетНаОплатуПокупателю", + ИмяМакета, МассивОбъектов); + + ОфисныеДокументы = Новый Соответствие; + + Шаблон = НСтр("ru = '[Организация]-[Контрагент] Счет №[Номер] от [Дата]'"); + ЗначенияРеквизитовДокументов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивОбъектов, + "Организация,Контрагент,Номер,Дата,Ссылка"); + Для Каждого Ссылка Из МассивОбъектов Цикл + + ЗначенияРеквизитовДокумента = ЗначенияРеквизитовДокументов[Ссылка]; + ЗначенияРеквизитовДокумента.Дата = Формат(ЗначенияРеквизитовДокумента.Дата, "ДЛФ=D"); + ЗначенияРеквизитовДокумента.Номер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ЗначенияРеквизитовДокумента.Номер); + ИмяДокумента = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(Шаблон, ЗначенияРеквизитовДокументов[Ссылка]); + + АдресХранилищаОфисныйДокумент = НапечататьСчетНаОплатуПокупателю(Ссылка, МакетИДанныеОбъекта, ИмяМакета); + + ОфисныеДокументы.Вставить(АдресХранилищаОфисныйДокумент, ИмяДокумента); + + КонецЦикла; + + ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Счет на оплату'"); + ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументы; + + КонецЕсли; + + // печать счета на оплату + ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "Счет"); + Если ПечатнаяФорма <> Неопределено Тогда + // имена файлов + ИменаФайлов = Новый Соответствие; + Шаблон = НСтр("ru = '[Организация]-[Контрагент] Счет №[Номер] от [Дата]'"); + ЗначенияРеквизитовДокументов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивОбъектов, + "Организация,Контрагент,Номер,Дата,Ссылка"); + Для Каждого Ссылка Из МассивОбъектов Цикл + ЗначенияРеквизитовДокумента = ЗначенияРеквизитовДокументов[Ссылка]; + ЗначенияРеквизитовДокумента.Дата = Формат(ЗначенияРеквизитовДокумента.Дата, "ДЛФ=D"); + ЗначенияРеквизитовДокумента.Номер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ЗначенияРеквизитовДокумента.Номер); + ИмяФайла = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(Шаблон, ЗначенияРеквизитовДокументов[Ссылка]); + ИменаФайлов.Вставить(Ссылка, ИмяФайла); + КонецЦикла; + + // описание печатной формы + ВыводитьПлатежныеРеквизиты = Истина; + Если ПараметрыПечати.Свойство("ВыводитьПлатежныеРеквизиты") Тогда + ВыводитьПлатежныеРеквизиты = ПараметрыПечати.ВыводитьПлатежныеРеквизиты; + КонецЕсли; + ПечатнаяФорма.ТабличныйДокумент = ПечатьСчетаЗаказа(МассивОбъектов, ОбъектыПечати, "Счет", + ВыводитьПлатежныеРеквизиты, ПараметрыВывода.КодЯзыка); + ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Счет на оплату'"); + ПечатнаяФорма.ПолныйПутьКМакету = "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_СчетЗаказ"; + ПечатнаяФорма.ИмяФайлаПечатнойФормы = ИменаФайлов; + ПечатнаяФорма.ДоступенВыводНаДругихЯзыках = Истина; + КонецЕсли; + + // печать заказа покупателя + ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "Заказ"); + Если ПечатнаяФорма <> Неопределено Тогда + ПечатнаяФорма.ТабличныйДокумент = ПечатьСчетаЗаказа(МассивОбъектов, ОбъектыПечати, "Заказ"); + ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Заказ покупателя'"); + ПечатнаяФорма.ПолныйПутьКМакету = "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_СчетЗаказ"; + КонецЕсли; + + // Локализация + // печать квитанции + ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "Квитанция"); + Если ПечатнаяФорма <> Неопределено Тогда + ПечатнаяФорма.ТабличныйДокумент = ПечатьКвитанции(МассивОбъектов, ОбъектыПечати); + ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Квитанция (с QR кодом)'"); + ПечатнаяФорма.ПолныйПутьКМакету = "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_Квитанция"; + КонецЕсли; + // Конец Локализация + + // Параметры отправки печатных форм по электронной почте. + ПриОпределенииПолучателей(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм); +КонецПроцедуры + +``` + +
+ + +### Макет open office XML (DOC) + +Макет - обычный офисный документ, в котором особым образом выделены области и параметры. +Макет может быть создан в Microsoft Word, OpenOffice, Google Docs и др. + +Области выделяются блоком вида +``` +{v8 Область.<ИмяОбласти>} + +{/v8 Область.<ИмяОбласти>} +``` + +Параметры выделяются маркером вида `{v8 <ИмяПараметра>}` + +Области могут быть следующих типов: + +![Изображение](/bsp-pechat/9.png) + +В `модуле менеджера`: +- Создаем команды печати +```bsl + +// Заполняет список команд печати. +// +// Параметры: +// КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати +// +Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт + + // формирование печатной формы в коде (Open Office XML) + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.МенеджерПечати = "Документ.ЗаказКлиента"; + КомандаПечати.Идентификатор = "КоммерческоеПредложение"; + КомандаПечати.Картинка = БиблиотекаКартинок.ФорматWord2007; + КомандаПечати.Представление = НСтр("ru = 'Коммерческое предложение (кодом)'"); + КомандаПечати.Порядок = 4; + +КонецПроцедуры + +``` +- Реализуем метод `Печать` + +```bsl + +// Формирует печатные формы. +// +// Параметры: +// МассивОбъектов – Массив – ссылки на объекты, которые нужно распечатать; +// ПараметрыПечати – Структура – дополнительные настройки печати; +// КоллекцияПечатныхФорм – ТаблицаЗначений – сформированные табличные документы (выходной параметр) +// ОбъектыПечати – СписокЗначений – значение – ссылка на объект; +// представление – имя области, в которой был выведен объект (выходной параметр); +// ПараметрыВывода – Структура – дополнительные параметры сформированных табличных документов (выходной параметр). +// +Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт + + ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "КоммерческоеПредложение"); + Если ПечатнаяФорма <> Неопределено Тогда + // * ОфисныеДокументы - Соответствие из КлючИЗначение - коллекция печатных форм в формате офисных документов: + // ** Ключ - Строка - адрес во временном хранилище двоичных данных печатной формы; + // ** Значение - Строка - имя файла печатной формы. + ПечатнаяФорма.ОфисныеДокументы = ПечатьКоммерческогоПредложения(МассивОбъектов); + ПечатнаяФорма.СинонимМакета = "Коммерческое предложение"; + КонецЕсли; + +КонецПроцедуры + +Функция СформироватьОфисныйДокумент(Ссылка) + + // Подготавливаем макет для формирования печатной формы OpenXML + МакетДокумента = ПолучитьМакет("ПФ_DOCX_КомерческоеПредложение"); + Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДокумента, Неопределено); + + // Создаем структуру областей формируемой печатной формы OpenXМL + ОписаниеОбластей = Новый Структура; + УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Заголовок", "Общая"); + УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Шапка", "Общая"); + УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "ШапкаТаблицы", "Общая"); + УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "СтрокаТаблицы", "СтрокаТаблицы"); + УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Подвал", "Общая"); + + // Подготавливаем печатную форму в формате офисного документа + ПечатнаяФорма = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Неопределено, Макет); + + //получаем данные документа + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса(); // какой-то запрос + Запрос.УстановитьПараметр("Ссылка", Ссылка); + + ДанныеДляПечати = Запрос.ВыполнитьПакет(); + + Шапка = ДанныеДляПечати[0].Выгрузить(); + Товары = ДанныеДляПечати[1].Выгрузить(); + + ДанныеШапка = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Шапка[0]); + ДанныеШапка["Номер"] = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеШапка["Номер"], Истина, Истина); + ДанныеШапка["Дата"] = Формат(ДанныеШапка["Дата"], "ДФ=dd.MM.yyyy"); + + ВидКИ_ТелефонОрганизации = Справочники.ВидыКонтактнойИнформации.ТелефонОрганизации; + ВидКИ_СайтОрганизации = Справочники.ВидыКонтактнойИнформации.СайтОрганизации; + + ТелефонОрганизации = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеШапка.Организация, ВидКИ_ТелефонОрганизации, ТекущаяДата()); + СайтОрганизации = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеШапка.Организация, ВидКИ_СайтОрганизации, ТекущаяДата()); + + ДанныеШапка.Вставить("ТелефонОрганизации", ТелефонОрганизации); + ДанныеШапка.Вставить("СайтОрганизации", СайтОрганизации); + + ДанныеТовары = ОбщегоНазначения.ТаблицаЗначенийВМассив(Товары); + + // Вывод заголовка + Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Заголовок"]); + УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка); + + // Вывод шапки документа + Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Шапка"]); + УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка); + + // Вывод таблицы + Если ДанныеТовары.Количество() > 0 Тогда + // Шапка + Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["ШапкаТаблицы"]); + УправлениеПечатью.ПрисоединитьОбласть(ПечатнаяФорма, Область, Ложь); + + // Выводим сразу всю коллекцию + Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицы"]); + УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеТовары); + КонецЕсли; + + // Вывод подвала + Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Подвал"]); + УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка); + + // Помещаем сформированную печатную форму в соответствие ОфисныеДокументы + АдресХранилищаПечатнойФормы = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма); + + //удаление временных файлов + УправлениеПечатью.ОчиститьСсылки(ПечатнаяФорма); + УправлениеПечатью.ОчиститьСсылки(Макет); + + Возврат АдресХранилищаПечатнойФормы; + +КонецФункции // СформироватьОфисныйДокумент() + +``` + +## Дополнительно + +
+Описание свойств команды печати + +```bsl +// Создает пустую таблицу с описанием команд печати. +// Таблица команд печати передается в процедуры ДобавитьКомандыПечати, +// размещенные в модулях менеджеров объектов конфигурации, которые перечислены в процедуре +// УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати. +// +// Возвращаемое значение: +// ТаблицаЗначений: +// +// * Идентификатор - Строка - идентификатор команды печати, по которому менеджер печати определяет печатную +// форму, которую необходимо сформировать. +// Например, "СчетЗаказ". +// +// Для печати нескольких печатных форм можно указывать одновременно несколько их +// идентификаторов (строкой, через запятую либо массивом строк), например: +// "СчетЗаказ,ГарантийноеПисьмо". +// +// Если необходимо задать количество копий печати для печатной формы, то ее +// идентификатор нужно продублировать столько раз, сколько копий необходимо +// сформировать. При этом следует учитывать, что порядок следования печатных +// форм в комплекте будет соответствовать порядку идентификаторов печатных форм, +// указанных в этом параметре. Например (2 счета на оплату + 1 гарантийное письмо): +// "СчетЗаказ,СчетЗаказ,ГарантийноеПисьмо". +// +// Идентификатор печатной формы может содержать в себе и альтернативный менеджер +// печати, если он отличается от указанного в параметре МенеджерПечати, +// например: "СчетЗаказ,Обработка.ПечатнаяФорма.ГарантийноеПисьмо". +// +// В этом примере ГарантийноеПисьмо формируется в менеджере печати +// Обработка.ПечатнаяФорма, а СчетЗаказ - в менеджере печати, указанном в +// параметре МенеджерПечати. +// +// Для печатных форм, менеджером печати которых является общий модуль +// "УправлениеПечатью", в качестве идентификатора необходимо указать полный путь к макету. +// Например, "Документ.СчетНаОплатуПокупателю.ПФ_MXL_СчетНаОплату". +// +// - Массив - список идентификаторов команд печати. +// +// * Представление - Строка - представление команды в меню Печать. +// Например, "Счет на оплату". +// +// * МенеджерПечати - Строка - (необязательный) имя объекта, в модуле менеджера которого располагается +// процедура Печать, формирующая табличные документы для этой команды. +// Если печатная форма формируется автоматически по данным печати и макету, то +// в параметре необходимо указать общий модуль "УправлениеПечатью". +// Значение по умолчанию - имя модуля менеджера объекта. +// Например, "Документ.СчетНаОплатуПокупателю". +// * ТипыОбъектовПечати - Массив - (необязательный) список типов объектов, для которых предназначена команда +// печати. Параметр предназначен для команд печати в журналах документов, где +// требуется проверка передаваемого типа объекта перед вызовом менеджера печати. +// Если список не заполнен, то при автоматическом создании списка команд печати +// в журнале документов он заполняется типом объекта, из которого была +// импортирована команда печати. +// +// * Обработчик - Строка - (необязательный) клиентский обработчик команды, в который необходимо передать +// управление вместо стандартного обработчика команды Печать. Используется, +// например, когда печатная форма формируется на клиенте. +// Формат "<ИмяОбщегоМодуля>.<ИмяПроцедуры>" используется, когда процедура размещена +// в общем модуле. +// Формат "<ИмяПроцедуры>" используется, когда процедура размещена +// в модуле основной формы отчета или обработки, указанной в МенеджерПечати. +// Например, +// КомандаПечати.Обработчик = "ЗащитаПерсональныхДанныхКлиент.ОткрытьФормуСогласиеНаОбработкуПерсональныхДанных"; +// Пример обработчика в модуле формы: +// // Формирует печатную форму <представление печатной формы>. +// // +// // Параметры: +// // ПараметрыПечати - Структура - сведения о печатной форме. +// // * ОбъектыПечати - Массив - массив ссылок выбранных объектов. +// // * Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана +// // команда печати. +// // * ДополнительныеПараметры - Структура - дополнительные параметры печати. +// // Прочие ключи структуры соответствуют колонкам таблицы КомандыПечати, +// // подробнее см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати. +// // +// &НаКлиенте +// Функция <ИмяФункции>(ПараметрыПечати) Экспорт +// // Обработчик печати. +// КонецФункции +// Следует иметь в виду, что обработчик вызывается при помощи метода Вычислить, +// поэтому в качестве обработчика может выступать только функция. +// При этом возвращаемое значение функции никак в дальнейшем не используется подсистемой. +// +// * Порядок - Число - (необязательный) Значение от 1 до 100, указывающее порядок размещения команды +// по отношению к другим командам. Сортировка команд меню Печать осуществляется +// сначала по полю Порядок, затем по представлению. +// Значение по умолчанию - 50. +// +// * Картинка - Картинка - (необязательный) Картинка, которая отображается возле команды в меню Печать. +// Например, БиблиотекаКартинок.ФорматPDF. +// +// * СписокФорм - Строка - (необязательный) Имена форм через запятую, в которых должна отображаться +// команда. Если параметр не указан, то команда печати будет отображаться во +// всех формах объекта, где встроена подсистема Печать. +// Например, "ФормаДокумента". +// +// * МестоРазмещения - Строка - (необязательный) Имя группы формы, в которую необходимо разместить +// команду печати. Параметр необходимо использовать только в случае, когда на +// форме размещается более одного подменю "Печать". В остальных случаях место +// размещения необходимо задавать в модуле формы при вызове +// метода ПодключаемыеКоманды.ПриСозданииНаСервере. +// +// * ЗаголовокФормы - Строка - (необязательный) Произвольная строка, переопределяющая стандартных заголовок +// формы "Печать документов". Например, "Настраиваемый комплект". +// +// * ФункциональныеОпции - Строка - (необязательный) Имена функциональных опций через запятую, от которых зависит +// доступность команды печати. +// +// * УсловияВидимости - Массив - (необязательный) Коллекция условий видимости команды в зависимости от +// контекста. Условия видимости команды задаются при помощи процедуры +// ДобавитьУсловиеВидимостиКоманды. +// Если параметр не задан, команда видна вне зависимости от контекста. +// +// * ПроверкаПроведенияПередПечатью - Булево - (необязательный) Признак необходимости проверки проведенности +// документов перед печатью. Если выбран хотя бы один непроведенный документ, то +// перед выполнением команды печати возникает диалог проведения. +// Для непроведенных документов команда печати не выполняется. +// Если параметр не указан, то проверка проведенности не выполняется. +// +// * СразуНаПринтер - Булево - (необязательный) Признак необходимости печати документов без предварительного +// просмотра, сразу на принтер. Если параметр не указан, то при выборе команды +// печати открывается форма предварительного просмотра "Печать документов". +// +// * ФорматСохранения - ТипФайлаТабличногоДокумента - (необязательный) Применяется для быстрого сохранения печатной +// формы (без дополнительных действий) в различные форматы, отличные от mxl. +// Если параметр не указан, то формируется обычный mxl. +// Например, ТипФайлаТабличногоДокумента.PDF. +// +// При выборе команды печати сразу открывается сформированный в формате pdf +// документ. +// +// * ПереопределитьПользовательскиеНастройкиКоличества - Булево - (необязательный) Признак необходимости отключения в +// форме ПечатьДокументов механизма сохранения/восстановления выбранного +// пользователем количества экземпляров на печать. Если параметр не указан, то +// механизм сохранения/восстановления настроек будет работать при открытии формы. +// ПечатьДокументов. +// +// * ДополнитьКомплектВнешнимиПечатнымиФормами - Булево - (необязательный) Признак необходимости дополнить комплект +// документов всеми подключенными к объекту внешними печатными формами +// (подсистема ДополнительныеОтчетыИОбработки). Если параметр не указан, внешние +// печатные формы не добавляются в комплект. +// +// * ФиксированныйКомплект - Булево - (необязательный) Признак необходимости блокировки от изменения пользователем +// состава комплекта документов. Если параметр не указан, то пользователь сможет +// исключать отдельные печатные формы из комплекта в форме ПечатьДокументов, а +// также изменять их количество. +// +// * ДополнительныеПараметры - Структура - (необязательный) произвольные параметры для передачи в менеджер печати. +// +// * НеВыполнятьЗаписьВФорме - Булево - (необязательный) Признак необходимости отключения механизма записи объекта +// перед выполнением команды печати. Используется в исключительных случаях. Если +// параметр не указан, производится запись объекта в случае, если в форме +// объекта установлен признак модифицированности. +// +// * ТребуетсяРасширениеРаботыСФайлами - Булево - (необязательный) Признак необходимости подключения расширения для работы +// с 1С:Предприятием перед выполнением команды. Если параметр не указан, расширение +// подключаться не будет. +// +// * ОсновнаяПечатнаяФорма - Булево - (необязательный) Признак определяющий возможность запоминания +// наименований сформированных печатных форм. +// +// * НаименованиеПечатнойФормы - Строка - (необязательный) Наименование, которое будет сохранено при установленном +// признаке "ОсновнаяПечатнаяФорма". Если не заполнено, будет запоминаться значение +// из поля "Представление". +// +Функция СоздатьКоллекциюКомандПечати() Экспорт +``` + +
\ No newline at end of file