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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как изменить поле ВесНетто у существующей номенклатуры в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #31381
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С