Есть ТЗ. Поля (сокращенный вариант):
Товар(строка) - товар из xml-файла.
Код(строка) - код товара из xml-файла.
ЭтоГруппа(число) - признак, что элемент является групой.
Идент(строка) - уникальный 36-значный идентификатор товара.
Владелец(строка) - родитель товара из xml-файла.
ИдентВлад - уникальный 36-значный идентификатор родителя.
ТоварБД - неопред. тип поля. Значением становится элемент справочника при сопоставлении товаров из xml-файла с БД
ВладелецБД - родитель товара в БД (тоже элемент справочника).
Перед записью номенклатуры в БД произвожу сопоставление родителей. И вот тут начинаются чудеса на виражах.
Как я пытаюсь это сделать:
Код:
Процедура ИзменениеРодителейТоваров() //++ ReLock (19.07.2004)
Спр = СоздатьОбъект("Справочник.Номенклатура");
ТЗагр.ВыбратьСтроки();
Пока ТЗагр.ПолучитьСтроку() = 1 Цикл
ТекСтр = ТекСтр + 1;
Если ТЗагр.ЭтоГруппа = 1 Тогда
Продолжить;
КонецЕсли;
ВладелецБД = ТЗагр.ВладелецБД;
Если ТЗагр.ИдентВлад <> ВладелецБД.Идентификатор Тогда
Если Спр.НайтиПоРеквизиту("Идентификатор",ТЗагр.ИдентВлад,1) = 1 Тогда
НовРодитель = Спр.ТекущийЭлемент();
Если Спр.НайтиПоКоду(ТЗагр.Код,0) = 1 Тогда
Спр.Родитель = НовРодитель;
Спр.Записать();
Сообщить("У товара "+Строка(Спр)+" изменен родитель");
КонецЕсли;
Иначе
Сообщить("В БД не найдена группа-родитель!");
КонецЕсли;
КонецПроцедуры //ИзменениеРодителейТоваров()
Соответственно, я даже после строки вставлял проверку, соответствует ли родитель товара в БД родителю товара в xml-файле. Гонял через отладчик. Каждый элемент, у которого изменяется родитель записывается без проблем. Провожу повторную загрузку таблицы товаров с сопоставлением. Как было так и осталось. Никаких изменений. Родители не изменены. Что делать? Может кто-то сталкивался с такой проблемой?