База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вставить номер заказа в макет расходной накладной? › Ответ в теме: Как вставить номер заказа в макет расходной накладной?
Чтобы вставить номер заказа в макет печатной формы расходной накладной через расширение, сделайте так:
1. Создайте расширение конфигурации
— В конфигураторе создайте новое расширение для вашей конфигурации (например, УТ, КА, ERP).
2. Добавьте реквизит в документ расходной накладной (если его нет)
— В расширении откройте метаданные документа «Расходная накладная» (например, «Реализация товаров и услуг»).
— Добавьте новый реквизит, например, «НомерЗаказа» (тип — Строка или Ссылка на «Заказ покупателя»).
— Если реквизит уже есть, этот шаг пропускайте.
3. Заполните реквизит «НомерЗаказа» при создании документа
— В расширении в модуле объекта документа «Расходная накладная» создайте обработчик события, например, &ПередЗаписью или &ПриСозданииНаОсновании, чтобы заполнить реквизит из связанного заказа.
— Пример кода:
|
1 2 3 4 5 6 7 8 9 |
&НаСервере Процедура ПриЗаписи(Отказ) Если ЗначениеЗаполнено(ЭтотОбъект.Основание) Тогда Заказ = ЭтотОбъект.Основание.ЗаказПокупателя; Если ЗначениеЗаполнено(Заказ) Тогда ЭтотОбъект.НомерЗаказа = Заказ.Номер; КонецЕсли; КонецЕсли; КонецПроцедуры |
4. Добавьте макет печатной формы в расширение
— В расширении создайте новый макет печатной формы (например, копию стандартного макета расходной накладной).
— В макете добавьте поле для вывода реквизита «НомерЗаказа».
— В макете (например, в табличной части или в шапке) вставьте текстовое поле с выражением:
|
1 |
&[НомерЗаказа] |
5. Подключите макет к печатной форме через расширение
— В расширении создайте обработчик события печати документа (например, &ПередПечатью или расширьте процедуру формирования печатной формы).
— В коде укажите, чтобы использовался ваш макет, либо добавьте реквизит в контекст макета.
Пример расширения процедуры печати:
|
1 2 3 4 5 6 7 8 |
&НаКлиенте Процедура Печать(Команда) Макет = ЭтотОбъект.ПолучитьМакет("МакетРасходнойНакладнойСНомеромЗаказа"); Параметры = Новый Структура; Параметры.Вставить("НомерЗаказа", ЭтотОбъект.НомерЗаказа); Отчет = Макет.Вывести(Параметры); Отчет.Показать(); КонецПроцедуры |
6. Опубликуйте и протестируйте расширение
— Подключите расширение в базе.
— Создайте расходную накладную на основании заказа.
— Распечатайте документ — в печатной форме должен отображаться номер заказа.
—
Если в вашей конфигурации печатная форма строится через встроенный механизм (например, через объект «ПечатнаяФорма» или «Отчет»), то нужно расширить соответствующий отчет или макет, добавив туда реквизит и поле.
Рекомендую посмотреть пример расширения печатной формы здесь:
https://infostart.ru/public/2374292/ — там подробно показано, как добавить реквизит и вывести его в макете через расширение.
Если нужна помощь с конкретной конфигурацией — укажите её, чтобы дать точный код.