Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 фев 2025, 18:34

УНФ 3.0 (3.0.8.109) Программно заполнять серийные номера при создании документа

Автор AlbusAt, 06 дек 2024, 18:07

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

AlbusAt

УНФ 3.0 (3.0.8.109)
При создании документа Сборка Запасов на основании Заказа на производство, я тащу из документа Перемещение серийные номера  номенклатуры (1 позиция), получаю документ по связанным документам. Записываю серийные номера в новый документ в процедуре ЗаполнитьПоЗаказуНаПроизводство, серийные номера встают, как строка, но статус горит красным. При проведении документа движений по серийный номерам нету.

Заполняю серийные номера так:
Если ЗначениеЗаполнено(ПеремещениеЗапасов) Тогда      
   ТЧПеремещениеЗапасы = ПеремещениеЗапасов.Запасы;      
   Для Каждого Тек Из ТЧПеремещениеЗапасы Цикл         
      Если ЗначениеЗаполнено(Тек.СерииНоменклатуры) Тогда            
         Отбор = Новый Структура();
         Отбор.Вставить("Номенклатура", Тек.Номенклатура);         
         СтрокаЗапасыСборка = Запасы.НайтиСтроки(Отбор)[0];
         Если ЗначениеЗаполнено(СтрокаЗапасыСборка) Тогда
            СтрокаЗапасыСборка.СерииНоменклатуры = Тек.СерииНоменклатуры;
         КонецЕсли;                     
      КонецЕсли;         
   КонецЦикла;      
КонецЕсли;

Понимаю что надо записать ещё в тч серийных номеров (наверное), но не знаю как это сделать. Нужна помощь

Максим75

AlbusAt, обычно есть еще табличная часть, которая вот за хранение серийных номеров и отвечает.
она обычно скрыта. связана с товаром по коду связи, ну т.е. для строки номенклатуры с номером 1 есть несколько строк с серийными номерами и т.д.
вот оттуда и пишется в регистр, и проверяется сколько серийных номеров к номенклатуре и сравнивается с количеством номенклатуры, если не хватает, по подсвечивается.
гляньте в конфигураторе, какие еще табличные части есть у документа в данных.

AlbusAt

Решение проблемы: в ТЧ документа СерииНоменклатуры добавить ваши данные

Если ЗначениеЗаполнено(ПеремещениеЗапасов) Тогда
      
      ТЧПеремещениеЗапасы = ПеремещениеЗапасов.Запасы;
      
      Для Каждого Тек Из ТЧПеремещениеЗапасы Цикл
         
         Если ЗначениеЗаполнено(Тек.СерииНоменклатуры) Тогда
            
            Отбор = Новый Структура();
            Отбор.Вставить("Номенклатура", Тек.Номенклатура);
            
            СтрокаЗапасыСборка = Запасы.НайтиСтроки(Отбор)[0];
            Если ЗначениеЗаполнено(СтрокаЗапасыСборка) Тогда
               СтрокаЗапасыСборка.СерииНоменклатуры = Тек.СерииНоменклатуры;
               
               СерииНоменклатурыМассив = СтрРазделить(СтрокаЗапасыСборка.СерииНоменклатуры, ";");
               
               Для Каждого Стр Из СерииНоменклатурыМассив Цикл
                  СтрокаСерииНоменклатуры = СерииНоменклатуры.Добавить();
                  СтрокаСерииНоменклатуры.КлючСвязи = СтрокаЗапасыСборка.КлючСвязи;
                  СтрокаСерииНоменклатуры.Количество = 1;
                  СтрокаСерииНоменклатуры.Серия = Справочники.СерииНоменклатуры.НайтиПоНаименованию(СокрЛП(Стр));
               КонецЦикла;
               
            КонецЕсли;            
            
            
            
         КонецЕсли;
         
      КонецЦикла;
      
   КонецЕсли;

Теги:  УНФ УНФ 3.0 

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

Рейтинг@Mail.ru

Поиск