0
Kifsif
01.11.14
✎
12:31
|
Бухгалтерия предприятия, редакция 3.0.36.18.
Внешняя печатная форма. По выводу на печать выполняются определенные проверки. Если все условия не выполнены, то пользователю выдается сообщение: вот там нужно твое внимание. И документ не печатается.
Технически я планировал это сделать тем, что процедура ЗаполнитьТабДок выдает либо подготовленный к печати табличный документ, либо Ложь. И уже в процедуре Печать я думал эту Ложь поймать:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ЗаполненныйТабДок = ЗаполнитьТабДок(МассивОбъектов[0]);
Если ЗаполненныйТабДок = Ложь Тогда // ТабДок может получить значение Ложь.
Возврат; // Нельзя передать Ложь в модуль УправлениеПечатью.
КонецЕсли; // Если ложь, то просто не печатаем ничего (пользователю выдается сообщение).
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
"Макет", // ИмяМакета - Строка - имя макета;
"Макет", // СинонимМакета - Строка - представление макета;
ЗаполненныйТабДок); // ТабличныйДокумент - ТабличныйДокумент - печатная форма документа;
КонецПроцедуры
Однако, получаю ошибку периода исполнения:
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(233)}: В обработчике печати не был сформирован табличный документ для: Макет
ВызватьИсключение(ТекстСообщенияОбОшибке);
Если провалиться в Конфигуратор, то там попадаем вот на этот кусочек:
// Проверим, все ли макеты были сформированы
Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
Если Стр.ТабличныйДокумент = Неопределено Тогда
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
Стр.ИмяМакета);
ВызватьИсключение(ТекстСообщенияОбОшибке);
КонецЕсли;
Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
КонецЦикла;
Точнее, попадаем на строку ВызватьИсключение в этом кусочке.
По идее, в процедуре Печать есть некие ПараметрыВывода: Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
Но я ими пользоваться не умею.
Был бы признателен за совет - как мне подавить вывод на печать, но чтобы он не душился на исключении?
|
|
1
Новенький_2009
05.11.14
✎
11:17
|
Апну, в ключе: думал как решить эту интересную задачку.
На ум пришло сделать внешнюю обработку с клиентским вызовом, где выдавать алярм пользователю.
Что умный люд скажет?
|
|