Не выводилась печать в комплект документов в внешней печатной форме
На печать выводилась, а в комплект нет.
Дело оказалось в том, что я вставлял в нижнюю часть таблицы строки между итогом таблицы и печатью:
ИскОбласть = ТабДок.НайтиТекст("Всего наименований"); Если ИскОбласть = Неопределено Тогда Сообщить("Не найдена область с текстом ""Всего наименований"""); Возврат; КонецЕсли; ПозицияВставки = ИскОбласть.Верх + 1; ИсходнаяОбласть = Макет.Область(1, 1, Макет.ВысотаТаблицы, Макет.ШиринаТаблицы); ОбластьПриемник = ТабДок.Область(ПозицияВставки, 1, ПозицияВставки + Макет.ВысотаТаблицы - 1, ТабДок.ШиринаТаблицы); ТабДок.ВставитьОбласть(ИсходнаяОбласть, ОбластьПриемник, ТипСмещенияТабличногоДокумента.ПоВертикали); Для Стр = 1 По Макет.ВысотаТаблицы Цикл РезСтр = ОбластьПриемник.Верх + Стр - 1; ТабДок.Область(РезСтр, 1, РезСтр, ТабДок.ШиринаТаблицы).Объединить(); КонецЦикла;
При этом размер области Документ_1 не менялся. Соответственно, печать обрезалась.
Соответственно, процедура печати стала выглядеть так:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, СтруктураМакета.Идентификатор) Тогда //ПодготовленныйТабДок = ПечатьДокумента(МассивОбъектов, ОбъектыПечати); ПараметрыПечати = Новый Структура(); //»ДополнитьКомплектВнешнимиПечатнымиФормами» = ложь ДопустимыеТипыОбъектовПечати = Неопределено; ИмяМенеджераПечати = "Документ.СчетНаОплату"; ИменаМакетов = "ПФ_MXL_СчетНаОплату"; ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати); ПодготовленныйТабДок = ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент; Шаблоны = Новый Соответствие(); Шаблоны.Вставить("Счет на оплату", "Счет-оферта"); ЗаменитьВТабличномДокументеПоШаблонам(ПодготовленныйТабДок, Шаблоны); //Удаляем текст по договору ИскОбласть = ПодготовленныйТабДок.НайтиТекст("По договору:",,,Ложь,,Истина); Если ИскОбласть <> Неопределено Тогда ПодготовленныйТабДок.Область(ИскОбласть.Верх, 1,ИскОбласть.Верх, 5).Текст = ""; КонецЕсли; //Тут дополнительная обработка... ДополнитьТабДок(ПодготовленныйТабДок, МассивОбъектов[0]); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, СтруктураМакета.Идентификатор, СтруктураМакета.Представление, ПодготовленныйТабДок); КонецЕсли; //Расширяем область Документ_1 ОбластьДокумент_1 = ПодготовленныйТабДок.Область("Документ_1"); ОбластьДокумент_1.Имя = ""; ОбластьДокумент_1 = ПодготовленныйТабДок.Область(ОбластьДокумент_1.Верх,,ПодготовленныйТабДок.ВысотаТаблицы,); ОбластьДокумент_1.Имя = "Документ_1"; //Нужно добавлять описание объектов печати ОбъектыПечати.Добавить(МассивОбъектов[0], "Документ_1"); КоллекцияПечатныхФорм[0].ТабличныйДокумент = ПодготовленныйТабДок; КонецПроцедуры
Код по изменению размера области в конце процедуры, нужно сначала присвоить пустое имя, а потом еще раз присвоить имя для области.

Свежие комментарии