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