ВПФ для УПД БП 3 управляемое приложение

1. user1949990 06.07.23 12:42 Сейчас в теме
Здравствуйте! нужна помощь, недавно в 1с. Ситуация следующая: необходимо на основе имеющейся печатной формы УПД создать внешнюю форму упд. Я нашла обработку "ПечатьУПД", взяла оттуда макет, создала внешнюю обработку, заполнила "СведенияОВнешнейОбработке", но я не понимаю, где найти исходную (встроенную) УПД, чтобы на основе ее сделать внешнюю. Работаю в БП 3 управляемой, уточню что на учебной версии. Какие данные копировать из кода и где его брать - главный вопрос
По теме из базы знаний
Найденные решения
7. GeraltSnow 172 06.07.23 15:37 Сейчас в теме
(6) Классический способ - найти функцию, которая возвращает табличный документ конкретной печатной формы и скопировать её в ВПФ. Далее нужно запустить печать ВПФ, получить ошибку метод объекта не обнаружен, найти этот метод, перенести в ВПФ и так далее, пока ВПФ не начнет формироваться без ошибок.

Как найти где формируется табличный документ - обычно в модуле менеджера документа есть экспортная процедура Печать(), в ней всё и происходит.

Конкретно для УПД в БП3 в модуле менеджера РТУ есть вот такой код:

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокументКомплект") Тогда
		ИменаФайлов = Неопределено;
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокумент", "УПД",
			УчетНДС.ПечатьКомплектаУПД(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати, ИменаФайлов, ПараметрыПечати, ПараметрыВывода),,, ИменаФайлов);
	КонецЕсли;


Функция УчетНДС.ПечатьКомплектаУПД() возвращает объект с типом ТабличныйДокумент - это то, что тебе нужно.
10. GeraltSnow 172 06.07.23 17:05 Сейчас в теме
(8) Функция ПечатьКомплектаУПД() - это и есть СформироватьПечатнуюФорму(). Если скопировать её в ВФП и вызвать в экспортной процедуре Печать, то получишь табличный документ, который останется только вывести на экран:

ТабличныйДокумент = ПечатьКомплектаУПД(...); 
ТабличныйДокумент.Показать();


Или можно сделать так, как это делается в модуле менеджера документа через УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(), тогда документ будет выведен в специальной форме, как при типовой печати
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user-z99999 67 06.07.23 13:15 Сейчас в теме
Администрирование - Печатные формы - Макеты печатных форм?
3. user1949990 06.07.23 14:17 Сейчас в теме
(2)в конфигураторе, а не в пользовательском режиме нужно(
4. RustamZz 06.07.23 14:28 Сейчас в теме
(3) Главное правило 1с: Если что-то можно сделать в пользовательском режиме, нужно в нем и делать.
5. GeraltSnow 172 06.07.23 14:53 Сейчас в теме
В конфигураторе при активной отладке нажми на паузу, затем в режиме предприятия нажми кнопку, которая запускает печать УПД. Таким образом ты встанешь на первую строку обработчика события нажатия этой кнопки. Откуда уже пошагово можно посмотреть, как работает механизм печати УПД, откуда берется макет и каким образом он заполняется.
6. user1949990 06.07.23 15:28 Сейчас в теме
(5) я нашла, как это работает, спасибо) но (сразу извиняюсь за тупые вопросы, я не совсем разбираюсь еще), как понять, что именно мне нужно скопировать (какие функции процедуры) в свою внешнюю пф?....
7. GeraltSnow 172 06.07.23 15:37 Сейчас в теме
(6) Классический способ - найти функцию, которая возвращает табличный документ конкретной печатной формы и скопировать её в ВПФ. Далее нужно запустить печать ВПФ, получить ошибку метод объекта не обнаружен, найти этот метод, перенести в ВПФ и так далее, пока ВПФ не начнет формироваться без ошибок.

Как найти где формируется табличный документ - обычно в модуле менеджера документа есть экспортная процедура Печать(), в ней всё и происходит.

Конкретно для УПД в БП3 в модуле менеджера РТУ есть вот такой код:

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокументКомплект") Тогда
		ИменаФайлов = Неопределено;
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УниверсальныйПередаточныйДокумент", "УПД",
			УчетНДС.ПечатьКомплектаУПД(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати, ИменаФайлов, ПараметрыПечати, ПараметрыВывода),,, ИменаФайлов);
	КонецЕсли;


Функция УчетНДС.ПечатьКомплектаУПД() возвращает объект с типом ТабличныйДокумент - это то, что тебе нужно.
8. user1949990 06.07.23 16:53 Сейчас в теме
(7)
УчетНДС.ПечатьКомплектаУПД
Спасибо, вроде как разобралась (надеюсь): меня перебросило в общий модуль учет ндс, я копировала процедуры и функции, на которые ссылались ошибки, пока ошибки эти не ушли. осталось самое страшное - функция "СформироватьПечатнуюФорму" . Вот ее я не особо понимаю откуда тащить, не ссылает (вручную писать - боже упаси, да и задача состоит в том, чтобы найти и скопировать). подскажите еще, пожалуйста, правильно ли меня сослало на общий модуль?
10. GeraltSnow 172 06.07.23 17:05 Сейчас в теме
(8) Функция ПечатьКомплектаУПД() - это и есть СформироватьПечатнуюФорму(). Если скопировать её в ВФП и вызвать в экспортной процедуре Печать, то получишь табличный документ, который останется только вывести на экран:

ТабличныйДокумент = ПечатьКомплектаУПД(...); 
ТабличныйДокумент.Показать();


Или можно сделать так, как это делается в модуле менеджера документа через УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(), тогда документ будет выведен в специальной форме, как при типовой печати
11. user1949990 06.07.23 17:11 Сейчас в теме
(10)спасибо огромное за разъяснение!) буду пробовать, вы мне очень помогли!
12. user1949990 06.07.23 17:16 Сейчас в теме
(10)доп вопрос.....извините....этот код, который вы в (10) показали, его нужно именно в процедуре печать передавать? или я путаю?....
13. GeraltSnow 172 06.07.23 17:29 Сейчас в теме
14. user1949990 06.07.23 17:42 Сейчас в теме
9. user1949990 06.07.23 17:05 Сейчас в теме
на всякий случай прикрепляю файл
Прикрепленные файлы:
6Июля15.epf
15. user1949990 07.07.23 10:41 Сейчас в теме
Создала впф для БП 3 управляемого приложения. Выходят ошибки именно при нажатии кнопки в пользовательском режиме, при проверке в конфигураторе ошибок нет. Не понимаю, в чем проблема, так как недавно начала изучать и это моя первая впф. Подскажите, как исправить, пожалуйста. И правильно ли вообще написано?
Прикрепленные файлы:
РабочаяВПФ.epf
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот