Загадка века Непреднамеренное изменение реквизита справочника пр программной обработке
Было сделано следующее:
- в справочник Номенклатура из расширения были добавлены реквизиты и табличная часть. В расширение были заимствованы все реквизиты справочника
- была написана обработка, которая заполняла эти реквизиты
В результате было потеряно значение реквизита "КодТНВЭД" во всех обработанных карточках номенклатуры.. Как такое получилось и как подобного избежать впредь?
- в справочник Номенклатура из расширения были добавлены реквизиты и табличная часть. В расширение были заимствованы все реквизиты справочника
- была написана обработка, которая заполняла эти реквизиты
Для каждого Строка Из ДанныеЗаполненияРеквизитов Цикл
НоменклатураСсылка = Строка["Номенклатура"];
Если НоменклатураСсылка <> Справочники.Номенклатура.ПустаяСсылка() Тогда
Номенклатура = НоменклатураСсылка.ПолучитьОбъект();
Номенклатура["Реквизит1] = Строка["Реквизит1"];
Номенклатура["Реквизит2"] = Строка["Реквизит2"];
Номенклатура["Реквизит3"] = Строка["Реквизит3"];
Номенклатура["Реквизит4"] = Строка["Реквизит4"];
Отбор = Новый Структура;
Отбор.Вставить("Номенклатура", НоменклатураСсылка);
СтрокиОтбор = ДанныеЗаполненияТЧ.НайтиСтроки(Отбор);
Для каждого СтрокаОтбор Из СтрокиОтбор Цикл
СтрокаНоменклатураТЧ = Номенклатура.ТабличнаяЧасть.Добавить();
СтрокаНоменклатураТЧ ["РеквизитТЧ1"] = СтрокаОтбор ["РеквизитТЧ1"];
СтрокаНоменклатураТЧ ["РеквизитТЧ2"] = СтрокаОтбор ["РеквизитТЧ1"];
СтрокаНоменклатураТЧ ["РеквизитТЧ3"] = СтрокаОтбор ["РеквизитТЧ1"];
СтрокаНоменклатураТЧ ["РеквизитТЧ4"] = СтрокаОтбор ["РеквизитТЧ1"];
КонецЦикла;
Номенклатура.Записать();
КонецЕсли;
КонецЦикла;
ПоказатьВ результате было потеряно значение реквизита "КодТНВЭД" во всех обработанных карточках номенклатуры.. Как такое получилось и как подобного избежать впредь?
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот