КА 2.4 Печать непроведенного документа, внешняя печатная форма
Поставили задача - сделать печатную форму к документам "списание / поступление безналичных денежных" средств.
Печатную форму сделал, но вот незадача при попытке распечатать выдается предупреждение, о том что нельзя распечатать непроведенный документ.
А печатная форма сделана была как раз для вывода информации для заполнения реквизитов, т.е. провести не могут по причине, недостатка информации, которая есть в печатной форме, а распечатать не могут, т.к. нужно сначала провести документ, замкнутый круг.
На текущий момент реализовал через обработку заполнения, вызов клиентской процедуры, но хотелось бы, конечно, через печатную форму.
Печатную форму сделал, но вот незадача при попытке распечатать выдается предупреждение, о том что нельзя распечатать непроведенный документ.
А печатная форма сделана была как раз для вывода информации для заполнения реквизитов, т.е. провести не могут по причине, недостатка информации, которая есть в печатной форме, а распечатать не могут, т.к. нужно сначала провести документ, замкнутый круг.
На текущий момент реализовал через обработку заполнения, вызов клиентской процедуры, но хотелось бы, конечно, через печатную форму.
По теме из базы знаний
- Печать ТОРГ-12 из документа Реализация товаров и услуг (в том числе непроведенного) (ERP 2, КА 2, УТ 11)
- Расходная накладная и Реализация товаров (со скидками и без) для документа Реализация товаров и услуг (в т.ч. непроведенного) (ERP 2, КА 2, УТ 11)
- Товарно-транспортная накладная (1-Т) для документа Реализация товаров и услуг (в т.ч. непроведенного) (ERP 2, КА 2, УТ 11)
- Заказ поставщику из документа Заказ поставщику (в т.ч. непроведенного) (ERP 2, КА 2, УТ 11)
- Установка цен номенклатуры из соответствующего документа (в т.ч. непроведенного) (ERP 2, КА 2, УТ 11)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
можно сделать, ВПФ для непроведеннлого документа.
Только ее надо через вызов клиентского метода делать, тогда оно не спросит - проведенный документ или нет.
А если, у вас вызов серверного метода, то там не обойти, БСП обязательно проверит и ругнется
т.е. параметры регистрации такие
Это останется печатной формой, но вызовет клиентский метод, из формы,
а там пара строчек, которые нам откроют форму печати, а та в свою очередь вызовет естественную процедуру печати в модуле объекта обработки ВПФ
Только ее надо через вызов клиентского метода делать, тогда оно не спросит - проведенный документ или нет.
А если, у вас вызов серверного метода, то там не обойти, БСП обязательно проверит и ругнется
т.е. параметры регистрации такие
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.Отпуск");
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'ВПФ Приказ о предоставлении отпуска (Т-6)'"));
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'ВПФ Приказ о предоставлении отпуска (Т-6) печатает даже непроведенные документы'"));
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
НСтр("ru = 'ВПФ Приказ о предоставлении отпуска (Т-6) '"),
"ПФ_MXL_Т6",
"ВызовКлиентскогоМетода",
Истина,
"ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции // СведенияОВнешнейОбработке()
ПоказатьЭто останется печатной формой, но вызовет клиентский метод, из формы,
а там пара строчек, которые нам откроют форму печати, а та в свою очередь вызовет естественную процедуру печати в модуле объекта обработки ВПФ
&НаКлиенте
Процедура Печать(ИдентификаторКоманды,ОбъектыНазначенияМассив) Экспорт
ПечатьПродолжение(ИдентификаторКоманды,ОбъектыНазначенияМассив);
КонецПроцедуры
&НаКлиенте
Процедура ПечатьПродолжение(ИдентификаторКоманды,ОбъектыНазначенияМассив)
ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ИсточникДанных = Параметры.ДополнительнаяОбработкаСсылка;
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ИдентификаторКоманды;
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначенияМассив;
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
КонецПроцедуры
Показать
(4) Переделал вызов клиентской процедуры с кнопки "заполнить" на кнопку "печать", странно, что сразу не догадался так сделать.
Непонятен код открытия общей формы "ПечатьДокументов", в частности параметр "ИсточникДанных". Если регистрировать ВПФ как вызов клиентского метода, то параметр формы "ДополнительнаяОбработкаССылка" не передается.
Поискал по Инфостарту по ключевым словам "Внешняя печатная форма", "Вызов клиентского метода", нашел статью, где есть в точности такой же код, и в комментариях все задаются тем же вопросом - что за параметр "ДополнительнаяОбработкаССылка".
Также наше статью формирования печатной формы, через открытие формы, там подобный код и скорее всего параметр "ДополнительнаяОбработкаССылка" заполняется. На этом пока остановился, разгребу неотложные дела, и вернусь к печатной форме.
Непонятен код открытия общей формы "ПечатьДокументов", в частности параметр "ИсточникДанных". Если регистрировать ВПФ как вызов клиентского метода, то параметр формы "ДополнительнаяОбработкаССылка" не передается.
Поискал по Инфостарту по ключевым словам "Внешняя печатная форма", "Вызов клиентского метода", нашел статью, где есть в точности такой же код, и в комментариях все задаются тем же вопросом - что за параметр "ДополнительнаяОбработкаССылка".
Также наше статью формирования печатной формы, через открытие формы, там подобный код и скорее всего параметр "ДополнительнаяОбработкаССылка" заполняется. На этом пока остановился, разгребу неотложные дела, и вернусь к печатной форме.
(5) да все просто, на этой форме обработки,
там где реквизиты, есть закладка "Параметры", там добавляешь ключевой параметр "ДополнительнаяОбработкассылка", тип "СправочникСсылка.ДополнительныеОтчетыИОбработки"
вот и вся загадка.
Больше ничего и не нужно, и в модуле формы никакого другого кода нет, кроме двух процедур которыя я привел выше
там где реквизиты, есть закладка "Параметры", там добавляешь ключевой параметр "ДополнительнаяОбработкассылка", тип "СправочникСсылка.ДополнительныеОтчетыИОбработки"
вот и вся загадка.
Больше ничего и не нужно, и в модуле формы никакого другого кода нет, кроме двух процедур которыя я привел выше
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот