32 KiB
32 KiB
title
title |
---|
Подключение к механизмам печати БСП |
Общие модули
В общем модуле УправлениеПечатьюЛокализация
в методе ПриОпределенииОбъектовСКомандамиПечати
добавляем информацию о собственных документах
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
....
СписокОбъектов.Добавить(Документы.ФормированиеЗаписейРаздела7ДекларацииНДС);
////////////////////Свои документы
СписокОбъектов.Добавить(Документы.МойДокумент1);
СписокОбъектов.Добавить(Документы.МойДокумент2);
....
КонецПроцедуры
Подключение к подсистеме "Подключаемые команды"
Подключаемся по инструкции см. Подключение к подсистеме "Присоединенные Файлы"
Модуль менеджера
Добавление команд печати
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Форма 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(МассивОбъектов, ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
...
// Получаем макет, заполняем, возвращаем
...
Возврат ТабДок;
КонецФункции
Список возможных параметров команды печати (для справки)
// Создает пустую таблицу с описанием команд печати.
// Таблица команд печати передается в процедуры ДобавитьКомандыПечати,
// размещенные в модулях менеджеров объектов конфигурации, которые перечислены в процедуре
// УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати.
//
// Возвращаемое значение:
// ТаблицаЗначений:
//
// * Идентификатор - Строка - идентификатор команды печати, по которому менеджер печати определяет печатную
// форму, которую необходимо сформировать.
// Например, "СчетЗаказ".
//
// Для печати нескольких печатных форм можно указывать одновременно несколько их
// идентификаторов (строкой, через запятую либо массивом строк), например:
// "СчетЗаказ,ГарантийноеПисьмо".
//
// Если необходимо задать количество копий печати для печатной формы, то ее
// идентификатор нужно продублировать столько раз, сколько копий необходимо
// сформировать. При этом следует учитывать, что порядок следования печатных
// форм в комплекте будет соответствовать порядку идентификаторов печатных форм,
// указанных в этом параметре. Например (2 счета на оплату + 1 гарантийное письмо):
// "СчетЗаказ,СчетЗаказ,ГарантийноеПисьмо".
//
// Идентификатор печатной формы может содержать в себе и альтернативный менеджер
// печати, если он отличается от указанного в параметре МенеджерПечати,
// например: "СчетЗаказ,Обработка.ПечатнаяФорма.ГарантийноеПисьмо".
//
// В этом примере ГарантийноеПисьмо формируется в менеджере печати
// Обработка.ПечатнаяФорма, а СчетЗаказ - в менеджере печати, указанном в
// параметре МенеджерПечати.
//
// Для печатных форм, менеджером печати которых является общий модуль
// "УправлениеПечатью", в качестве идентификатора необходимо указать полный путь к макету.
// Например, "Документ.СчетНаОплатуПокупателю.ПФ_MXL_СчетНаОплату".
//
// - Массив - список идентификаторов команд печати.
//
// * Представление - Строка - представление команды в меню Печать.
// Например, "Счет на оплату".
//
// * МенеджерПечати - Строка - (необязательный) имя объекта, в модуле менеджера которого располагается
// процедура Печать, формирующая табличные документы для этой команды.
// Если печатная форма формируется автоматически по данным печати и макету, то
// в параметре необходимо указать общий модуль "УправлениеПечатью".
// Значение по умолчанию - имя модуля менеджера объекта.
// Например, "Документ.СчетНаОплатуПокупателю".
// * ТипыОбъектовПечати - Массив - (необязательный) список типов объектов, для которых предназначена команда
// печати. Параметр предназначен для команд печати в журналах документов, где
// требуется проверка передаваемого типа объекта перед вызовом менеджера печати.
// Если список не заполнен, то при автоматическом создании списка команд печати
// в журнале документов он заполняется типом объекта, из которого была
// импортирована команда печати.
//
// * Обработчик - Строка - (необязательный) клиентский обработчик команды, в который необходимо передать
// управление вместо стандартного обработчика команды Печать. Используется,
// например, когда печатная форма формируется на клиенте.
// Формат "<ИмяОбщегоМодуля>.<ИмяПроцедуры>" используется, когда процедура размещена
// в общем модуле.
// Формат "<ИмяПроцедуры>" используется, когда процедура размещена
// в модуле основной формы отчета или обработки, указанной в МенеджерПечати.
// Например,
// КомандаПечати.Обработчик = "ЗащитаПерсональныхДанныхКлиент.ОткрытьФормуСогласиеНаОбработкуПерсональныхДанных";
// Пример обработчика в модуле формы:
// // Формирует печатную форму <представление печатной формы>.
// //
// // Параметры:
// // ПараметрыПечати - Структура - сведения о печатной форме.
// // * ОбъектыПечати - Массив - массив ссылок выбранных объектов.
// // * Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана
// // команда печати.
// // * ДополнительныеПараметры - Структура - дополнительные параметры печати.
// // Прочие ключи структуры соответствуют колонкам таблицы КомандыПечати,
// // подробнее см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
// //
// &НаКлиенте
// Функция <ИмяФункции>(ПараметрыПечати) Экспорт
// // Обработчик печати.
// КонецФункции
// Следует иметь в виду, что обработчик вызывается при помощи метода Вычислить,
// поэтому в качестве обработчика может выступать только функция.
// При этом возвращаемое значение функции никак в дальнейшем не используется подсистемой.
//
// * Порядок - Число - (необязательный) Значение от 1 до 100, указывающее порядок размещения команды
// по отношению к другим командам. Сортировка команд меню Печать осуществляется
// сначала по полю Порядок, затем по представлению.
// Значение по умолчанию - 50.
//
// * Картинка - Картинка - (необязательный) Картинка, которая отображается возле команды в меню Печать.
// Например, БиблиотекаКартинок.ФорматPDF.
//
// * СписокФорм - Строка - (необязательный) Имена форм через запятую, в которых должна отображаться
// команда. Если параметр не указан, то команда печати будет отображаться во
// всех формах объекта, где встроена подсистема Печать.
// Например, "ФормаДокумента".
//
// * МестоРазмещения - Строка - (необязательный) Имя группы формы, в которую необходимо разместить
// команду печати. Параметр необходимо использовать только в случае, когда на
// форме размещается более одного подменю "Печать". В остальных случаях место
// размещения необходимо задавать в модуле формы при вызове
// метода ПодключаемыеКоманды.ПриСозданииНаСервере.
//
// * ЗаголовокФормы - Строка - (необязательный) Произвольная строка, переопределяющая стандартных заголовок
// формы "Печать документов". Например, "Настраиваемый комплект".
//
// * ФункциональныеОпции - Строка - (необязательный) Имена функциональных опций через запятую, от которых зависит
// доступность команды печати.
//
// * УсловияВидимости - Массив - (необязательный) Коллекция условий видимости команды в зависимости от
// контекста. Условия видимости команды задаются при помощи процедуры
// ДобавитьУсловиеВидимостиКоманды.
// Если параметр не задан, команда видна вне зависимости от контекста.
//
// * ПроверкаПроведенияПередПечатью - Булево - (необязательный) Признак необходимости проверки проведенности
// документов перед печатью. Если выбран хотя бы один непроведенный документ, то
// перед выполнением команды печати возникает диалог проведения.
// Для непроведенных документов команда печати не выполняется.
// Если параметр не указан, то проверка проведенности не выполняется.
//
// * СразуНаПринтер - Булево - (необязательный) Признак необходимости печати документов без предварительного
// просмотра, сразу на принтер. Если параметр не указан, то при выборе команды
// печати открывается форма предварительного просмотра "Печать документов".
//
// * ФорматСохранения - ТипФайлаТабличногоДокумента - (необязательный) Применяется для быстрого сохранения печатной
// формы (без дополнительных действий) в различные форматы, отличные от mxl.
// Если параметр не указан, то формируется обычный mxl.
// Например, ТипФайлаТабличногоДокумента.PDF.
//
// При выборе команды печати сразу открывается сформированный в формате PDF
// документ.
//
// * ПереопределитьПользовательскиеНастройкиКоличества - Булево - (необязательный) Признак необходимости отключения в
// форме ПечатьДокументов механизма сохранения/восстановления выбранного
// пользователем количества экземпляров на печать. Если параметр не указан, то
// механизм сохранения/восстановления настроек будет работать при открытии формы.
// ПечатьДокументов.
//
// * ДополнитьКомплектВнешнимиПечатнымиФормами - Булево - (необязательный) Признак необходимости дополнить комплект
// документов всеми подключенными к объекту внешними печатными формами
// (подсистема ДополнительныеОтчетыИОбработки). Если параметр не указан, внешние
// печатные формы не добавляются в комплект.
//
// * ФиксированныйКомплект - Булево - (необязательный) Признак необходимости блокировки от изменения пользователем
// состава комплекта документов. Если параметр не указан, то пользователь сможет
// исключать отдельные печатные формы из комплекта в форме ПечатьДокументов, а
// также изменять их количество.
//
// * ДополнительныеПараметры - Структура - (необязательный) произвольные параметры для передачи в менеджер печати.
//
// * НеВыполнятьЗаписьВФорме - Булево - (необязательный) Признак необходимости отключения механизма записи объекта
// перед выполнением команды печати. Используется в исключительных случаях. Если
// параметр не указан, производится запись объекта в случае, если в форме
// объекта установлен признак модифицированности.
//
// * ТребуетсяРасширениеРаботыСФайлами - Булево - (необязательный) Признак необходимости подключения расширения для работы
// с 1С:Предприятием перед выполнением команды. Если параметр не указан, расширение
// подключаться не будет.
//
// * ОсновнаяПечатнаяФорма - Булево - (необязательный) Признак определяющий возможность запоминания
// наименований сформированных печатных форм.
//
// * НаименованиеПечатнойФормы - Строка - (необязательный) Наименование, которое будет сохранено при установленном
// признаке "ОсновнаяПечатнаяФорма". Если не заполнено, будет запоминаться значение
// из поля "Представление".
//
Функция СоздатьКоллекциюКомандПечати() Экспорт
Подключение к подсистеме "Подключаемые команды"
См. Подключение к подсистемам - Подключение к подсистеме "Подключаемые команды"