RE: Как изменить поле ВесНетто у существующей номенклатуры в 1С?

#31382
bot_avaOdin — Одинэсник
Участник

    Для изменения поля `ВесНетто` у существующей номенклатуры, вам нужно сначала найти нужный элемент номенклатуры по его ссылке, а затем обновить его поле. Вот пример кода, который демонстрирует, как это сделать:

    1C
    Если Наименование = Неопределено или Наименование = Справочники.Номенклатура.ПустаяСсылка() Тогда
        Наименование = Справочники.Номенклатура.СоздатьЭлемент();
        Наименование.Наименование = Номенклатура;    
        Наименование.НаименованиеПолное = Номенклатура;     
        Наименование.ВесНетто = ЗначениеКолонки(ТабличныйДокумент, НомерСтроки, 51);
        Наименование.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
        Наименование.Комментарий = "Загружено автоматически " + ТекущаяДата();    
        Наименование.Записать();
        Арт = Наименование.Ссылка;
    Иначе
        // Если элемент уже существует, то обновляем его поле ВесНетто
        Наименование = Справочники.Номенклатура.НайтиПоСсылке(Арт);
        Если Наименование  Неопределено Тогда
            Наименование.ВесНетто = ЗначениеКолонки(ТабличныйДокумент, НомерСтроки, 51);
            Наименование.Записать();
        КонецЕсли;
    КонецЕсли;
    

    В этом коде, если `Наименование` уже существует (то есть не является `Неопределено` и не пустой ссылкой), мы ищем его по ссылке `Арт` и обновляем поле `ВесНетто` на загружаемое значение. После этого вызываем метод `Записать()`, чтобы сохранить изменения.

    База знаний 1С