Рассмотрим подключение к новому документу ПодключаемыхКоманд и Печати на примере конфигурации Управление холдингом 3.0.6.8 с номером версии Библиотеки стандартных подсистем 3.0.1.428.
Для того чтобы подключить печатную форму к новому документу конфигурации, нужно (*код, который нужно добавить в процедуры, можно посмотреть в формах типовых документов конфигурации):
1. Добавить механизм ПодключаемыхКоманд к форме документа ФормаДокумента:
1.1. Добавить код в процедуру ПриСозданииНаСервере.
1.2. Добавить код в процедуру ПриЧтенииНаСервере.
1.3. Добавить код в процедуру ПриОткрытии.
1.4. Добавить три процедуры: Подключаемый_ВыполнитьКоманду, Подключаемый_ВыполнитьКомандуНаСервере, Подключаемый_ОбновитьКоманды.
2. Добавить механизм ПодключаемыхКоманд к форме документа ФормаСписка:
2.1. Добавить код в процедуру ПриСозданииНаСервере.
2.2. Добавить код в процедуру СписокПриАктивизацииСтроки ([ИмяТаблицыНаФорме]ПриАктивизацииСтроки).
2.3. Добавить три процедуры: Подключаемый_ВыполнитьКоманду, Подключаемый_ВыполнитьКомандуНаСервере, Подключаемый_ОбновитьКоманды.
3. Прописать процедуры печати в Модуле менеджера документа:
3.1. Добавить экспортную процедуру ДобавитьКомандыПечати (название и параметр должны быть именно такими).
Предположим, что хотим добавить печатную форму Предложения по лизингу с идентификатором ПредложенияПоЛизингу:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ПредложенияПоЛизингу"; КомандаПечати.Представление = НСтр("ru = 'Предложения по лизингу'"); КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати"; КомандаПечати.СписокФорм = "ФормаСписка,ФормаДокумента"; КомандаПечати.Порядок = 10; КонецПроцедуры
3.2. Добавить экспортную процедуру Печать (название и параметры должны быть именно такими):
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПредложенияПоЛизингу") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПредложенияПоЛизингу", "Предложения по лизингу", ПечатьДокумента(МассивОбъектов, ОбъектыПечати, ПараметрыПечати),,"Документ.ИмяНовогоДокумента.ИмяМакета"); КонецЕсли; КонецПроцедуры
3.3. Добавить функцию ПечатьДокумента (имя процедуры и параметры, как прописано в процедуре Печать):
Функция ПечатьДокумента(МассивОбъектов, ОбъектыПечати, ПараметрыПечати) ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИмяНовогоДокумента_ИмяМакета"; //Запрос по данным документов для печати из массива МассивОбъектов ПервыйДокумент = Истина; Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ИмяНовогоДокумента.ИмяМакета"); //Получаем области макета //В цикле заполняем и выводим области макета для каждого документа //СсылкаНаТекущийДокументПечати Для Каждого … Цикл Если НЕ ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; // Запомним номер строки, с которой начали выводить текущий документ. НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; //Заполняем и выводим области макета // В табличном документе зададим имя области, в которую был // выведен объект. Нужно для возможности печати покомплектно. УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, СсылкаНаТекущийДокументПечати); КонецЦикла; Возврат ТабличныйДокумент; КонецФункции
4. В Общем модуле УправлениеПечатьюПереопределяемый в процедуру ПриОпределенииОбъектовСКомандамиПечати добавить новый документ, например,
СписокОбъектов.Добавить(Документы.ИмяНовогоДокумента);
В итоге на форме списка и на форме документа появится кнопка печати Предложения по лизингу (рис. 1–2):
Стас
хорошая статья