БП 3.0 необходимо сделать ВПФ (Универсальный передаточный документ)
Несколько раз делал ВПФ все получалось, опыт не большой, но с УПД застрял.
Печатная форма изначально находится в обработке "Обработка.ПечатьУПД" (почему именно в обработке?) не понятно куда обращаться, в документе реализации ставлю точку останова в функции Печать и ничего не происходит. Пытался сделать по стандарту как остальные ПФ, но код другой, ВПФ не работает.
Даже не могу посмотреть, что за имена файлов, пытаюсь так
Всех параметров не понимаю, делаю так сказать по шаблону. но тут похоже хитрее все. Может кто-нибудь подсказать, что я делаю не так.
Несколько раз делал ВПФ все получалось, опыт не большой, но с УПД застрял.
Печатная форма изначально находится в обработке "Обработка.ПечатьУПД" (почему именно в обработке?) не понятно куда обращаться, в документе реализации ставлю точку останова в функции Печать и ничего не происходит. Пытался сделать по стандарту как остальные ПФ, но код другой, ВПФ не работает.
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокументКомплект") Тогда
ИменаФайлов = Неопределено;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокумент", "УПД",
УчетНДС.ПечатьКомплектаУПД(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати, ИменаФайлов),,, ИменаФайлов);
ПараметрыВывода.Вставить("НеПереопределятьИмяФайла");
КонецЕсли;
Даже не могу посмотреть, что за имена файлов, пытаюсь так
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокументКомплект") Тогда
ИменаФайлов = Неопределено;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокумент", "УПД",
ПечатьКомплектаУПД(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати, ИменаФайлов),,"ПФ_MXL_УниверсальныйПередаточныйДокумент");
ПараметрыВывода.Вставить("НеПереопределятьИмяФайла");
КонецЕсли;
ПоказатьВсех параметров не понимаю, делаю так сказать по шаблону. но тут похоже хитрее все. Может кто-нибудь подсказать, что я делаю не так.
По теме из базы знаний
- Внешняя печатная форма УПД ("Универсальный передаточный документ") для БП 3.0
- Внешняя печатная форма УПД для Бухгалтерии 3.0
- Внешняя печатная форма УПД для бухгалтерии 3.0
- Универсальный передаточный документ (УПД) для 1С: Бухгалтерии 3.0
- Внешняя печатная форма УПД (без проведения) для УТ 11.4, КА 2 и ERP
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Это своего рода Дополнительная обработка встроенная в конфигурацию. Печатная форма УПД в регистре сведений зарегистрирована из обработки.
Соответственно используется процедура Печать из обработки, а не документа. Точку останова нужно ставить на процедуру Печать из модуля менеджера обработки.
Печатная форма изначально находится в обработке "Обработка.ПечатьУПД" (почему именно в обработке?) не понятно куда обращаться, в документе реализации ставлю точку останова в функции Печать и ничего не происходит.
Это своего рода Дополнительная обработка встроенная в конфигурацию. Печатная форма УПД в регистре сведений зарегистрирована из обработки.
Соответственно используется процедура Печать из обработки, а не документа. Точку останова нужно ставить на процедуру Печать из модуля менеджера обработки.
(3) конкретный обработчик печати для этого документа прописан жестко в коде: процедура ДобавитьКомандыПечати. И по команде печать будет выполняться нужный обработчик.
Далее есть 2 варианта.
1. Если макет не менялся, то макет берется из обработки.
2. Если макет изменялся, то сохраняется в регистре ПользовательскиеМакетыПечати. И если указано использовать измененный макет, то будет браться этот макет.
Далее есть 2 варианта.
1. Если макет не менялся, то макет берется из обработки.
2. Если макет изменялся, то сохраняется в регистре ПользовательскиеМакетыПечати. И если указано использовать измененный макет, то будет браться этот макет.
Пишет ошибку {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(247)}: В обработчике печати не был сформирован табличный документ для: УПД
ВызватьИсключение(ТекстСообщенияОбОшибке);
ВызватьИсключение(ТекстСообщенияОбОшибке);
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ЕстьСчетаФактуры = Ложь;
Для каждого Объект Из МассивОбъектов Цикл
Если ТипЗнч(Объект) = Тип("ДокументСсылка.СчетФактураВыданный") Тогда
ЕстьСчетаФактуры = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьСчетаФактуры И УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УПДСтатус1") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УПДСтатус1", "УПД (статус 1)",
УчетНДС.ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати,
Документы.СчетФактураВыданный.ТекстЗапросаПечатьСчетовФактур(Истина, Истина)),,
"ПФ_MXL_УниверсальныйПередаточныйДокумент");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УПДСтатус2") Тогда
ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов = "";
Для каждого Объект Из МассивОбъектов Цикл
Если ТипЗнч(Объект) <> Тип("ДокументСсылка.СчетФактураВыданный") Тогда
ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов =
Документы[Объект.Метаданные().Имя].ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов();
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ ПустаяСтрока(ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов) Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УПД", "Универсальный передаточный документ (внешняя)",
ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати, ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов, Истина,),,"ПФ_MXL_УниверсальныйПередаточныйДокумент");
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Показать
(4) А не легче ли сделать отладку обработки как для ОФ и посмотреть что происходит
В прошлую пятницу делал для акта Сверки
Создаешь форму в своей обработке , добавляешь реквизит СсылкаНаОбъект С выбранным типом документа , добавляешь команду
Мне кажется ошибка в том, что в процедуре печати у тебя не срабатывает ни одно из условий , поэтому он и не может вернуть макет
В прошлую пятницу делал для акта Сверки
Создаешь форму в своей обработке , добавляешь реквизит СсылкаНаОбъект С выбранным типом документа , добавляешь команду
&НаСервере
Процедура ПечатьНаСервере()
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АКТСВЕРКИ"); //Тут указывается нужная команда для печати
ОбъектыПечати = Новый СписокЗначений;
ПараметрыОтправки = Новый Структура;
ПараметрыОтправки.Вставить("Получатель", неопределено);
ПараметрыОтправки.Вставить("Текст","");
ПараметрыОтправки.Вставить("Тема","");
ПараметрыВывода = Новый Структура;
ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно",ложь);
ПараметрыВывода.Вставить("ПараметрыОтправки",ПараметрыОтправки);
МассивОбъектов = Новый Массив;
массивОбъектов.Добавить(Объект.СсылкаНаОбъект.ПолучитьОбъект());
ОбъектСервера = РеквизитФормыВЗначение("Объект");
ОбъектСервера.Печать(МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);
// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Процедура Печать(Команда)
ПечатьНаСервере();
КонецПроцедуры
ПоказатьМне кажется ошибка в том, что в процедуре печати у тебя не срабатывает ни одно из условий , поэтому он и не может вернуть макет
Код, если кому нужен Печати
Процедура Печать(Объекты, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
МассивОбъектов = УчетНДСВызовСервера.ПолучитьНастройкиПечатиУниверсальныхПередаточныхДокументов(Объекты).УниверсальныеПередаточныеДокументы;
ЕстьСчетаФактуры = Ложь;
Для каждого Объект Из МассивОбъектов Цикл
Если ТипЗнч(Объект) = Тип("ДокументСсылка.СчетФактураВыданный") Тогда
ЕстьСчетаФактуры = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьСчетаФактуры И УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УПД") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УПД",,
ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати,
Документы.СчетФактураВыданный.ТекстЗапросаПечатьСчетовФактур(Истина, Истина)),,
"ПФ_MXL_УниверсальныйПередаточныйДокумент");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УПД") Тогда
ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов = "";
Для каждого Объект Из МассивОбъектов Цикл
Если ТипЗнч(Объект) <> Тип("ДокументСсылка.СчетФактураВыданный") Тогда
ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов =
Документы[Объект.Метаданные().Имя].ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов();
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ ПустаяСтрока(ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов) Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УПД", "УПД",
ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати,
ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов, Истина),,
"ПФ_MXL_УниверсальныйПередаточныйДокумент");
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот