Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 17:39

Как заполнить таблицу с серийными номерами при выводе на основании

Автор lakykherson, 26 янв 2023, 12:57

0 Пользователей и 1 гость просматривают эту тему.

lakykherson

Здравствуйте подскажите как мне программно заполнить при заполнении на основании таблицу с серийными номерами.

Конфигурация Управление торговли для Казахстана 2.2

Пробую делать внешнею обработку и при создании документа копируются все значения кроме серийных номеров, а нужно с ними.

СообщениеЗаказа = ПолучитьНомерЗаказа(ВведитеНомерЗаказа);
НомерРеализации = ПолучитьНамерРеализации (СообщениеЗаказа);
НовыйДокумент = Документы.ВозвратТоваровОтПокупателя.СоздатьДокумент();
НовыйДокумент.Заполнить(НомерРеализации);
ФормаДок = НовыйДокумент.ПолучитьФорму();
ФормаДок.ПараметрОснование = НомерРеализации; 
ФормаДок.Открыть();


подскажите что добавить что бы серийники тоже копировались

Максим75

как вариант, возможно реквизиты с серийными номерами называются по-разному

lakykherson

Максим75,

Я могу запросом вычитать эти данные и записать их в этот документ?

Не подскажите как это сделать?

lakykherson

все названия вроде как одинаковые
ВозвратТоваровОтПокупателя - (ТабличныеЧасти)- Таблица-(СерийныеНомера) и в ней два значения (КлючСвязи) и (СерийныйНомер)
РеализацияТоваровУслуг  - (ТабличныеЧасти)- Таблица-(СерийныеНомера) и в ней два значения (КлючСвязи) и (СерийныйНомер)

вот так это выглядит в конфигураторе.

Как мне скопировать с документа РеализацияТоваровУслуг в отрывающийся документ   ВозвратТоваровОтПокупателя эти значения?   

Максим75

СообщениеЗаказа = ПолучитьНомерЗаказа(ВведитеНомерЗаказа);
        НомерРеализации = ПолучитьНамерРеализации (СообщениеЗаказа);
        НовыйДокумент = Документы.ВозвратТоваровОтПокупателя.СоздатьДокумент();
        НовыйДокумент.Заполнить(НомерРеализации);

Для Каждого СтрокаСерНомер из НомерРеализации.СерийныеНомера цикл
НоваяСтрокаДока = НовыйДокумент.СерийныеНомера.Добавить();
НоваяСТрокаДока.КлючСвязи = СтрокаСерНомер.КлючСвязи;
НоваяСтрокаДока.СерийныйНомер = СтрокаСерНомер.СерийныйНомер;
КонецЦикла;
        ФормаДок = НовыйДокумент.ПолучитьФорму();
        ФормаДок.ПараметрОснование = НомерРеализации; 
        ФормаДок.Открыть();

как то так ручками прописать заполнение табличной части нового документа данными табличной части документа реализации.

Максим75

а такой вопрос, в документе ведь не одна табличная часть с серийными номерами? остальные заполняются?
или только шапка документа заполняется, а табличные части нет?

lakykherson

Максим75,

Заполняется все , шапка, табличная часть документа, все кроме серийных номеров.

lakykherson

сделал как вы сказали не могу только теперь понять что пошло не так, серийники появляются но как то вообще не объяснимо.
они прыгают в наменклатуре, тоесть серийник из одной позиции может появиться в догой.

lakykherson

к примеру если в таблице 5 товаров и к примеру 4 позиция не имеет серийного номера то все рушится.

Максим75

Цитата: lakykherson от 26 янв 2023, 18:21к примеру если в таблице 5 товаров и к примеру 4 позиция не имеет серийного номера то все рушится.

сделать проверку, заполнено или нет серийный номер в строке документа-основания

Для Каждого СтрокаСерНомер из НомерРеализации.СерийныеНомера цикл
Если НЕ ЗначениеЗаполнено(СтрокаСерНомер.СерийныйНомер) тогда продолжить;КОнецЕсли;
НоваяСтрокаДока = НовыйДокумент.СерийныеНомера.Добавить();
НоваяСТрокаДока.КлючСвязи = СтрокаСерНомер.КлючСвязи;
НоваяСтрокаДока.СерийныйНомер = СтрокаСерНомер.СерийныйНомер;
КонецЦикла;

вот только не пойму, что значит серийники прыгают. А КлючСвязи - что за тип у него?

Теги: 1с8 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск