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

Как изменить поле В...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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

Как в этом запросе сделать чтоб он изменял у существующей номенклатуры поле веснетто на ту что загружается?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

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

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



   
ОтветитьЦитата