Здравствуйте! нужна помощь, недавно в 1с. Ситуация следующая: необходимо на основе имеющейся печатной формы УПД создать внешнюю форму упд. Я нашла обработку "ПечатьУПД", взяла оттуда макет, создала внешнюю обработку, заполнила "СведенияОВнешнейОбработке", но я не понимаю, где найти исходную (встроенную) УПД, чтобы на основе ее сделать внешнюю. Работаю в БП 3 управляемой, уточню что на учебной версии. Какие данные копировать из кода и где его брать - главный вопрос
По теме из базы знаний
Найденные решения
(6) Классический способ - найти функцию, которая возвращает табличный документ конкретной печатной формы и скопировать её в ВПФ. Далее нужно запустить печать ВПФ, получить ошибку метод объекта не обнаружен, найти этот метод, перенести в ВПФ и так далее, пока ВПФ не начнет формироваться без ошибок.
Как найти где формируется табличный документ - обычно в модуле менеджера документа есть экспортная процедура Печать(), в ней всё и происходит.
Конкретно для УПД в БП3 в модуле менеджера РТУ есть вот такой код:
Функция УчетНДС.ПечатьКомплектаУПД() возвращает объект с типом ТабличныйДокумент - это то, что тебе нужно.
Как найти где формируется табличный документ - обычно в модуле менеджера документа есть экспортная процедура Печать(), в ней всё и происходит.
Конкретно для УПД в БП3 в модуле менеджера РТУ есть вот такой код:
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокументКомплект") Тогда
ИменаФайлов = Неопределено;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокумент", "УПД",
УчетНДС.ПечатьКомплектаУПД(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати, ИменаФайлов, ПараметрыПечати, ПараметрыВывода),,, ИменаФайлов);
КонецЕсли;
Функция УчетНДС.ПечатьКомплектаУПД() возвращает объект с типом ТабличныйДокумент - это то, что тебе нужно.
(8) Функция ПечатьКомплектаУПД() - это и есть СформироватьПечатнуюФорму(). Если скопировать её в ВФП и вызвать в экспортной процедуре Печать, то получишь табличный документ, который останется только вывести на экран:
Или можно сделать так, как это делается в модуле менеджера документа через УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(), тогда документ будет выведен в специальной форме, как при типовой печати
ТабличныйДокумент = ПечатьКомплектаУПД(...);
ТабличныйДокумент.Показать();
Или можно сделать так, как это делается в модуле менеджера документа через УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(), тогда документ будет выведен в специальной форме, как при типовой печати
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В конфигураторе при активной отладке нажми на паузу, затем в режиме предприятия нажми кнопку, которая запускает печать УПД. Таким образом ты встанешь на первую строку обработчика события нажатия этой кнопки. Откуда уже пошагово можно посмотреть, как работает механизм печати УПД, откуда берется макет и каким образом он заполняется.
(6) Классический способ - найти функцию, которая возвращает табличный документ конкретной печатной формы и скопировать её в ВПФ. Далее нужно запустить печать ВПФ, получить ошибку метод объекта не обнаружен, найти этот метод, перенести в ВПФ и так далее, пока ВПФ не начнет формироваться без ошибок.
Как найти где формируется табличный документ - обычно в модуле менеджера документа есть экспортная процедура Печать(), в ней всё и происходит.
Конкретно для УПД в БП3 в модуле менеджера РТУ есть вот такой код:
Функция УчетНДС.ПечатьКомплектаУПД() возвращает объект с типом ТабличныйДокумент - это то, что тебе нужно.
Как найти где формируется табличный документ - обычно в модуле менеджера документа есть экспортная процедура Печать(), в ней всё и происходит.
Конкретно для УПД в БП3 в модуле менеджера РТУ есть вот такой код:
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокументКомплект") Тогда
ИменаФайлов = Неопределено;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокумент", "УПД",
УчетНДС.ПечатьКомплектаУПД(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати, ИменаФайлов, ПараметрыПечати, ПараметрыВывода),,, ИменаФайлов);
КонецЕсли;
Функция УчетНДС.ПечатьКомплектаУПД() возвращает объект с типом ТабличныйДокумент - это то, что тебе нужно.
(7)
УчетНДС.ПечатьКомплектаУПД
Спасибо, вроде как разобралась (надеюсь): меня перебросило в общий модуль учет ндс, я копировала процедуры и функции, на которые ссылались ошибки, пока ошибки эти не ушли. осталось самое страшное - функция "СформироватьПечатнуюФорму" . Вот ее я не особо понимаю откуда тащить, не ссылает (вручную писать - боже упаси, да и задача состоит в том, чтобы найти и скопировать). подскажите еще, пожалуйста, правильно ли меня сослало на общий модуль?
(8) Функция ПечатьКомплектаУПД() - это и есть СформироватьПечатнуюФорму(). Если скопировать её в ВФП и вызвать в экспортной процедуре Печать, то получишь табличный документ, который останется только вывести на экран:
Или можно сделать так, как это делается в модуле менеджера документа через УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(), тогда документ будет выведен в специальной форме, как при типовой печати
ТабличныйДокумент = ПечатьКомплектаУПД(...);
ТабличныйДокумент.Показать();
Или можно сделать так, как это делается в модуле менеджера документа через УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(), тогда документ будет выведен в специальной форме, как при типовой печати
Создала впф для БП 3 управляемого приложения. Выходят ошибки именно при нажатии кнопки в пользовательском режиме, при проверке в конфигураторе ошибок нет. Не понимаю, в чем проблема, так как недавно начала изучать и это моя первая впф. Подскажите, как исправить, пожалуйста. И правильно ли вообще написано?
Прикрепленные файлы:
РабочаяВПФ.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот