Skip to content

Добавление команд печати

В общем модуле УправлениеПечатьюПереопределяемый

в разных конфигруациях из этого модуля могут вызываться другие, например “УправлениеПечатьюУТСервер” и т.д., куда прописывать добавление объекта смотри по ситуации

Добавляем объект, к которому подключаются команды печати в процедуру ПриОпределенииНастроекПечати, например

// Переопределяет настройки подсистемы.
//
// Параметры:
// Настройки - Структура:
// * ИспользоватьПодписиИПечати - Булево - при установке значения Ложь отключается возможность установки подписей
// и печатей в печатных формах.
// * СкрыватьПодписиИПечатиДляРедактирования - Булево - удалять рисунки подписей и печатей табличных документов при
// снятии флажка "Подписи и печати" в форме "Печать документов", для того,
// чтобы они не мешали редактировать текст, находящийся под ними.
// * ПроверкаПроведенияПередПечатью - Булево - признак необходимости проверки проведенности
// документов перед печатью, является значением по умолчанию для команды печати
// см. УправлениеПечатью.СоздатьКоллекциюКомандПечати.
// Для непроведенных документов команда печати не выполняется.
// Если параметр не указан, то проверка проведенности не выполняется.
// * ОбъектыПечати - Массив - менеджеры объектов с процедурой ПриОпределенииНастроекПечати.
//
Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт
// _Демо начало примера
Настройки.ОбъектыПечати.Добавить(Справочники._ДемоКонтактныеЛицаПартнеров);
Настройки.ОбъектыПечати.Добавить(Справочники._ДемоКонтрагенты);
Настройки.ОбъектыПечати.Добавить(Справочники._ДемоОрганизации);
Настройки.ОбъектыПечати.Добавить(Справочники._ДемоПартнеры);
Настройки.ОбъектыПечати.Добавить(Справочники._ДемоФизическиеЛица);
Настройки.ОбъектыПечати.Добавить(Справочники._ДемоНоменклатура);
Настройки.ОбъектыПечати.Добавить(Документы._ДемоОприходованиеТоваров);
Настройки.ОбъектыПечати.Добавить(Документы._ДемоОтпускаСотрудников);
Настройки.ОбъектыПечати.Добавить(Документы._ДемоПеремещениеТоваров);
Настройки.ОбъектыПечати.Добавить(Документы._ДемоРеализацияТоваров);
Настройки.ОбъектыПечати.Добавить(Документы._ДемоСписаниеТоваров);
Настройки.ОбъектыПечати.Добавить(Документы._ДемоСчетНаОплатуПокупателю);
Настройки.ОбъектыПечати.Добавить(Документы._ДемоРасходныйКассовыйОрдер);
// _Демо конец примера
КонецПроцедуры

В модуле менеджера объекта

Добавление команд печати

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Форма 1
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "МояПечатнаяФорма1"; // Идентификатор
КомандаПечати.Представление = НСтр("ru = 'Моя форма 1'");
КомандаПечати.Порядок = 5;
// Форма 2
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "МояПечатнаяФорма2"; // Идентификатор
КомандаПечати.Представление = НСтр("ru = 'Моя форма 2'");
КомандаПечати.Порядок = 10;
// Комплект документов
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "МояПечатнаяФорма1,МояПечатнаяФорма2"; // идентификаторы команд
КомандаПечати.Представление = НСтр("ru = 'Комплект документов'");
КомандаПечати.Порядок = 75;
КонецПроцедуры

Добавление интерфейсной процедуры “Печать”

// Формирует печатные формы.
//
// Параметры:
// МассивОбъектов - Массив из ЛюбаяСсылка - список объектов, для которых была выполняется команда печати
// ПараметрыПечати - Структура - произвольные параметры, переданные при вызове команды печати;
// КоллекцияПечатныхФорм - ТаблицаЗначений - возвращаемый параметр, коллекция сформированных печатных форм:
// * ИмяМакета - Строка - идентификатор печатной формы;
// * СинонимМакета - Строка - название печатной формы;
//
// * ТабличныйДокумент - ТабличныйДокумент - одна или несколько печатных форм, выведенных в один табличный документ
// Для разметки печатных форм внутри табличного документа после вывода каждой печатной формы
// необходимо вызывать процедуру УправлениеПечатью.ЗадатьОбластьПечатиДокумента;
// Параметр не используется, если вывод печатных форм выполняется в формате офисных документов
// (см. параметр "ОфисныеДокументы");
//
// * ОфисныеДокументы - Соответствие из КлючИЗначение - коллекция печатных форм в формате офисных документов:
// ** Ключ - Строка - адрес во временном хранилище двоичных данных печатной формы;
// ** Значение - Строка - имя файла печатной формы.
//
// * ИмяФайлаПечатнойФормы - Строка - имя файла печатной формы при сохранении в файл или отправке в качестве
// почтового вложения. Не используется для печатных форм в формате офисных документов.
// По умолчанию имя файла устанавливается в формате
// "[НазваниеПечатнойФормы] № [Номер] от [Дата]" для документов,
// "[НазваниеПечатнойФормы] - [ПредставлениеОбъекта] - [ТекущаяДата]" для объектов.
// - Соответствие из КлючИЗначение - имена файлов для каждого объекта:
// ** Ключ - ЛюбаяСсылка - ссылка на объект печати из коллекции МассивОбъектов;
// ** Значение - Строка - имя файла;
//
// * Экземпляров - Число - количество копий, которое необходимо вывести на печать;
// * ПолныйПутьКМакету - Строка - используется для быстрого перехода к редактированию макета печатной формы
// в общей форме ПечатьДокументов;
// * ДоступенВыводНаДругихЯзыках - Булево - необходимо установить значение Истина, если печатная форма адаптирована
// для вывода на произвольном языке.
//
// ОбъектыПечати - СписокЗначений - выходной параметр, соответствие между объектами и именами областей в табличных
// документах, заполняется автоматически
// при вызове УправлениеПечатью.ЗадатьОбластьПечатиДокумента:
// * Значение - ЛюбаяСсылка - ссылка из коллекции МассивОбъектов,
// * Представление - Строка - имя области с объектом в табличных документах;
//
// ПараметрыВывода - Структура - настройки вывода печатных форм:
// * ПараметрыОтправки - Структура - для автоматического заполнения полей в форме создания письма при отправке
// сформированных печатных форм по почте:
// ** Получатель - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Получатель
// ** Тема - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Тема
// ** Текст - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Текст
// * КодЯзыка - Строка - язык, на котором требуется сформировать печатную форму.
// Состоит из кода языка по ISO 639-1 и, опционально, кода страны по ISO 3166-1, разделенных
// символом подчеркивания. Примеры: "en", "en_US", "en_GB", "ru", "ru_RU".
//
// * ЗаголовокФормы - Строка - переопределяет заголовок формы печати документов (ПечатьДокументов).
//
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
НужноПечататьМакет = УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "МояПечатнаяФорма1");
Если НужноПечататьМакет Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"МояПечатнаяФорма1",
НСтр("ru = 'Моя печатная форма 1'"),
ПечатнаяФорма1(МассивОбъектов, ОбъектыПечати),
,
"Документ.ТестоваяПечатьДокументов.ТестовыйМакетПечати");
КонецЕсли;
НужноПечататьМакет = УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "МояПечатнаяФорма2");
Если НужноПечататьМакет Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"МояПечатнаяФорма2",
НСтр("ru = 'Моя печатная форма 2'"),
ПечатнаяФорма2(МассивОбъектов, ОбъектыПечати),
,
"Документ.ТестоваяПечатьДокументов.ТестовыйМакетПечати");
КонецЕсли;
КонецПроцедуры
Функция ПечатнаяФорма1(МассивОбъектов, ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
...
// Получаем макет, заполняем, возвращаем
...
Возврат ТабДок;
КонецФункции
Функция ПечатнаяФорма2(МассивОбъектов, ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
...
// Получаем макет, заполняем, возвращаем
...
Возврат ТабДок;
КонецФункции

Подключение к подсистеме “Подключаемые команды”

См. Подключение к подсистемам - Подключение к подсистеме “Подключаемые команды”