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