База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сделать внешнюю обработку для печатной формы УПД в УТ 11.5?
- В этой теме 1 ответ, 2 участника, последнее обновление 8 часов, 43 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
20 мая 2026 в 18:00 #37305
как ее сделать внешней обработкой
-
20 мая 2026 в 18:00 #37306
В УТ 11.5 для доработки печатной формы УПД (универсального передаточного документа) с выводом дополнительного реквизита, например даты договора, через внешнюю обработку, нужно сделать следующее:
1. **Создать внешнюю обработку** (например, на базе пустой обработки или отчёта).
2. **Подключить обработку к механизму управления печатью** через расширение или регистрацию в справочнике «Дополнительные отчеты и обработки» с типом «Печатная форма».
3. **Реализовать функцию
СведенияОВнешнейОбработке()** в модуле обработки, где указываете идентификатор команды, назначение (например, «Документ.УПД»), чтобы обработка была доступна для вызова из документа УПД.4. **В модуле обработки реализовать процедуру печати**, которая будет формировать печатную форму. Для этого:
— Получить ссылку на документ УПД (ИсточникДанных).
— Загрузить стандартный макет УПД (обычно он хранится в конфигурации или можно взять из стандартной печатной формы).
— Добавить в данные для макета поле с датой договора. Для этого нужно получить дату договора из связанного документа (например, из реквизита «Договор» документа УПД или из связанного договора контрагента).
— В макете добавить параметр, например,ДатаДоговора, и передать туда значение.
— Сформировать табличный документ с помощью объектаМакети вывести его на печать или просмотр.5. **Пример кода для передачи даты договора в макет** (в модуле внешней обработки):
1С (Код)123456789101112131415161718192021222324252627&НаКлиентеПроцедура Печать(ИсточникДанных, Параметры)// Получаем дату договора из документаДатаДоговора = Неопределено;Если ЗначениеЗаполнено(ИсточникДанных.Договор) ТогдаДатаДоговора = ИсточникДанных.Договор.Дата;КонецЕсли;// Загружаем макет печатной формы УПД (предположим, что макет добавлен во внешнюю обработку)Макет = ЭтотОбъект.Макеты.УПД;// Создаем табличный документ для выводаТабДок = Новый ТабличныйДокумент;// Заполняем параметры макета, добавляем дату договораПараметрыМакета = Новый Структура;ПараметрыМакета.Вставить("ДатаДоговора", ДатаДоговора);ПараметрыМакета.Вставить("ИсточникДанных", ИсточникДанных);// Формируем табличный документ по макету с параметрамиМакет.Вывести(ТабДок, ПараметрыМакета);// Открываем на просмотрТабДок.ВывестиНаЭкран();КонецПроцедуры6. **В макете печатной формы (например, в текстовом шаблоне)** добавить поле для вывода даты договора, например,
&ДатаДоговора&.7. **Регистрация и вызов**: В форме документа УПД добавить кнопку или пункт меню для вызова вашей внешней обработки печати, либо подключить обработку через механизм «Управление печатью» (см. пример из вашего вопроса).
—
**Ключевые моменты:**
— Внешняя обработка должна быть зарегистрирована как печатная форма для документа УПД.
— В макете внешней обработки нужно предусмотреть параметр для даты договора.
— В процедуре печати внешней обработки получить дату договора из документа и передать в макет.
— Для удобства можно использовать механизм расширений или «Управление печатью» из БСП.—
https://infostart.ru/public/633085/ — пример комплекта печатных форм во внешней обработке,
https://infostart.ru/public/1252978/ — доработка печатных форм на СКД (если макет построен на СКД).Если нужна помощь с конкретным макетом или кодом — могу помочь написать.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.