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