--- title: Добавление команд печати slug: primery-snippety-bsp-i-tipovye-integratsiya-sobstvennyh-obektov/dobavlenie-komand-pechati --- # В модуле менеджера объекта ## Добавление команд печати ```bsl Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт // Форма 1 КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "МояПечатнаяФорма1"; // Идентификатор КомандаПечати.Представление = НСтр("ru = 'Моя форма 1'"); КомандаПечати.Порядок = 5; // Форма 2 КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "МояПечатнаяФорма2"; // Идентификатор КомандаПечати.Представление = НСтр("ru = 'Моя форма 2'"); КомандаПечати.Порядок = 10; // Комплект документов КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "МояПечатнаяФорма1,МояПечатнаяФорма2"; // идентификаторы команд КомандаПечати.Представление = НСтр("ru = 'Комплект документов'"); КомандаПечати.Порядок = 75; КонецПроцедуры ``` ## Добавление интерфейсной процедуры "Печать" ```bsl // Формирует печатные формы. // // Параметры: // МассивОбъектов - Массив из ЛюбаяСсылка - список объектов, для которых была выполняется команда печати // ПараметрыПечати - Структура - произвольные параметры, переданные при вызове команды печати; // КоллекцияПечатныхФорм - ТаблицаЗначений - возвращаемый параметр, коллекция сформированных печатных форм: // * ИмяМакета - Строка - идентификатор печатной формы; // * СинонимМакета - Строка - название печатной формы; // // * ТабличныйДокумент - ТабличныйДокумент - одна или несколько печатных форм, выведенных в один табличный документ // Для разметки печатных форм внутри табличного документа после вывода каждой печатной формы // необходимо вызывать процедуру УправлениеПечатью.ЗадатьОбластьПечатиДокумента; // Параметр не используется, если вывод печатных форм выполняется в формате офисных документов // (см. параметр "ОфисныеДокументы"); // // * ОфисныеДокументы - Соответствие из КлючИЗначение - коллекция печатных форм в формате офисных документов: // ** Ключ - Строка - адрес во временном хранилище двоичных данных печатной формы; // ** Значение - Строка - имя файла печатной формы. // // * ИмяФайлаПечатнойФормы - Строка - имя файла печатной формы при сохранении в файл или отправке в качестве // почтового вложения. Не используется для печатных форм в формате офисных документов. // По умолчанию имя файла устанавливается в формате // "[НазваниеПечатнойФормы] № [Номер] от [Дата]" для документов, // "[НазваниеПечатнойФормы] - [ПредставлениеОбъекта] - [ТекущаяДата]" для объектов. // - Соответствие из КлючИЗначение - имена файлов для каждого объекта: // ** Ключ - ЛюбаяСсылка - ссылка на объект печати из коллекции МассивОбъектов; // ** Значение - Строка - имя файла; // // * Экземпляров - Число - количество копий, которое необходимо вывести на печать; // * ПолныйПутьКМакету - Строка - используется для быстрого перехода к редактированию макета печатной формы // в общей форме ПечатьДокументов; // * ДоступенВыводНаДругихЯзыках - Булево - необходимо установить значение Истина, если печатная форма адаптирована // для вывода на произвольном языке. // // ОбъектыПечати - СписокЗначений - выходной параметр, соответствие между объектами и именами областей в табличных // документах, заполняется автоматически // при вызове УправлениеПечатью.ЗадатьОбластьПечатиДокумента: // * Значение - ЛюбаяСсылка - ссылка из коллекции МассивОбъектов, // * Представление - Строка - имя области с объектом в табличных документах; // // ПараметрыВывода - Структура - настройки вывода печатных форм: // * ПараметрыОтправки - Структура - для автоматического заполнения полей в форме создания письма при отправке // сформированных печатных форм по почте: // ** Получатель - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Получатель // ** Тема - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Тема // ** Текст - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Текст // * КодЯзыка - Строка - язык, на котором требуется сформировать печатную форму. // Состоит из кода языка по 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(МассивОбъектов, ОбъектыПечати) ТабДок = Новый ТабличныйДокумент; ... // Получаем макет, заполняем, возвращаем ... Возврат ТабДок; КонецФункции ``` # Подключение к подсистеме "Подключаемые команды" См. Подключение к подсистемам - Подключение к подсистеме "Подключаемые команды"