Имя: Пароль:
1C
 
Как программно создать серию номенклатуры для ут 11.4?
0 Обфускация
 
27.02.18
08:04
Как программно создать серию номенклатуры для ут 11.4?
1 Обфускация
 
27.02.18
08:35
Вот тут я заполняю ТЧ документа "приобретение товаров", все встает, кроме серий. Что я делаю не так?

        Для Каждого Тов Из Выб.Товары Цикл
            ДокТов = Док.Товары.Добавить();
            ДокТов.Номенклатура = НайтиНоменклатуру(Тов.Номенклатура, Тов.Номенклатура.родитель.наименование);
            ДокТов.Количество = Тов.Количество;
            доктов.КоличествоУпаковок= Тов.Количество;
            ДокТов.Цена = Тов.Цена;
            ДокТов.Сумма = Тов.Сумма;
            ДокТов.СтавкаНДС = НайтиСтавкуНДС(Тов.СтавкаНДС);
            ДокТов.СуммаНДС = Тов.СуммаНДС;
            доктов.Подразделение=Док.Подразделение;
            доктов.Склад=док.Склад;
            //доктов.Серия=справочники.СерииНоменклатуры.НайтиПоРеквизиту("ВидНоменклатуры",справочники.ВидыНоменклатуры.НайтиПоНаименованию("товар"));
            Серия=справочники.СерииНоменклатуры.СоздатьЭлемент();
            серия.ВидНоменклатуры=справочники.ВидыНоменклатуры.НайтиПоНаименованию("товар");
            //серия.Владелец= ДокТов.Номенклатура;
            серия.ГоденДо=текущаядата()+10000;
            серия.Записать();
            доктов.Серия=серия;
            
            СтрокаСерий=док.Серии.Добавить();
            строкаСерий.Номенклатура=ДокТов.Номенклатура;
            строкаСерий.Серия=доктов.Серия;
            строкасерий.Склад=док.Склад;
            строкасерий.Количество=доктов.КоличествоУпаковок;
        КонецЦикла;
2 novichok79
 
27.02.18
08:39
сделал поиск строки "СерииНоменклатуры.СоздатьЭлемент()" по базе

Функция СохранитьСериюПоСтроке(СтрТаблИдентификатор)
    
    Если ТипЗнч(СтрТаблИдентификатор) <> Тип("ДанныеФормыЭлементКоллекции") Тогда
        СтрТабл = Объект.Серии.НайтиПоИдентификатору(СтрТаблИдентификатор);
    Иначе
        СтрТабл = СтрТаблИдентификатор;
    КонецЕсли;
    
    Результат = Ложь;
    
    Если ПравоДобавленияСерий Тогда
        СправочникОбъект = Неопределено;
        Если Не ЗначениеЗаполнено(СтрТабл.Серия) Тогда
            
            СправочникОбъект                 = Справочники.СерииНоменклатуры.СоздатьЭлемент();
            СправочникОбъект.ВидНоменклатуры = ВидНоменклатуры;
            СправочникОбъект.Номер           = СтрТабл.Номер;
            СправочникОбъект.ГоденДо         = СтрТабл.ГоденДо;
            СправочникОбъект.НомерКИЗГИСМ    = СтрТабл.НомерКИЗГИСМ;
            
        ИначеЕсли УправлениеСвойствамиУТ.ЕстьДопРеквизитыВТаблице(ЭтотОбъект, "Объект.Серии")
            Или НастройкиИспользованияСерий.ИспользоватьRFIDМеткиСерии Тогда
            
            СправочникОбъект = СтрТабл.Серия.ПолучитьОбъект();
            
        КонецЕсли;
        
        Если СправочникОбъект <> Неопределено Тогда
            Если УправлениеСвойствамиУТ.ЕстьДопРеквизитыВТаблице(ЭтотОбъект, "Объект.Серии") Тогда
                УправлениеСвойствамиУТ.ПеренестиДополнительныеРеквизитыИзФормыВОбъект(СправочникОбъект, ЭтаФорма, СтрТабл, "Объект.Серии");
            КонецЕсли;
            
            СправочникОбъект.RFIDTID        = СтрТабл.RFIDTID;
            СправочникОбъект.RFIDUser       = СтрТабл.RFIDUser;
            СправочникОбъект.RFIDEPC        = СтрТабл.RFIDEPC;
            СправочникОбъект.EPCGTIN        = СтрТабл.EPCGTIN;
            СправочникОбъект.Номер             = СтрТабл.Номер;
            
            СправочникОбъект.Записать();
            Результат = Истина;
            СтрТабл.Серия = СправочникОбъект.Ссылка;
            
        Иначе
            Результат = Истина;
        КонецЕсли;    
    Иначе
        Результат = Ложь;
    КонецЕсли;
    
    Возврат Истина;
КонецФункции
3 Обфускация
 
27.02.18
08:53
(2)
кстати спасибо, оказывается не хватало реквизита НомерКИЗГИСМ . Теперь работает
4 novichok79
 
27.02.18
08:58
(3) кстати, пожалуйста, глобальный поиск по конфигурации зачастую решает.