Суть в коректному присвоєнні елемента-родича.
пробував так:
v7 = СоздатьОбъект("V77.Application");
init = v7.Initialize(v7.RMTrade, , "");
СпрТам = v7.EvalExpr("СоздатьОбъект(""Справочник.ТМЦ"")");
СпрТам.ВыбратьЭлементы(1);
СпрТам.ВключатьПодчиненные(1);
СпрТам.ИспользоватьДату(ТекущаяДата(),1);
//НачатьТранзакцию();
Пока (СпрТам.ПолучитьЭлемент() = 1) Цикл
если СпрТам.пометкаУдаления()=1 тогда
продолжить;
конецесли;
наим = сокрлп(СпрТам.Наименование);
род = сокрлп(спрТам.Родитель.Наименование);
если СпрТам.ЭтоГруппа()=1 тогда
если спрНомГр1.НайтиПоНаименованию(наим,1)=0 тогда
спрНомГр1.НоваяГруппа();
спрНомГр1.Наименование=СпрТам.наименование;
//спрНомГр1.Записать();
если ПустоеЗначение(род)=0 тогда
если спрНомГр2.НайтиПоНаименованию(род,1)=0 тогда
спрНомГр2.НоваяГруппа();
спрНомГр2.Наименование = СпрТам.наименование;
спрНомГр2.Записать();
спрНомГр1.Родитель = спрНомГр2.ТекущийЭлемент();
иначе
спрНомГр1.Родитель = спрНомГр2.ТекущийЭлемент();
конецесли;
конецесли;
спрНомГр1.Записать();
конецесли;
иначе
если спрНомЭл.НайтиПоНаименованию(наим,1)=0 тогда
спрНомЭл.Новый();
спрНомЭл.Наименование = наим;
спрНомЭл.ПолнНаименование= сокрлп(спрТам.ПолнНаименование);
спрНомЭл.СтавкаНДС = глЗначениеПоУмолчанию("ОсновнаяСтавкаНДС");
//Цена0 = СпрТам.Цена_Закуп;
//Цена1 = число(ВходExcel.ActiveSheet.Cells(СчетчикЦикла,8).Value);
//Цена2 = число(ВходExcel.ActiveSheet.Cells(СчетчикЦикла,9).Value);
если ПустоеЗначение(род)=0 тогда
если спрНомГр1.НайтиПоНаименованию(род,1)=0 тогда //если спрНомГр1.НайтиПоНаименованию(род,0,1)=0 тогда
спрНомГр1.НоваяГруппа();
спрНомГр1.Наименование = род;
спрНомГр1.Записать();
спрНомЭл.Родитель = спрНомГр1.ТекущийЭлемент();
иначе
сообщить("елемент = "+спрНомЭл.наименование);
сообщить("група = "+спрНомГр1.ТекущийЭлемент());
спрНомЭл.Родитель = спрНомГр1.ТекущийЭлемент();
конецесли;
конецесли;
....
а також пробував
НайтиПоНаименованию(род,0,1)
Коли відкритий довідник Номенклатура в торгівлі при завантаженні, то спочатку бачу коректно вложенні папки одна в одну - так як і в бух. При перевідкритті ієрархія злітає. Вищевказаним кодом 3-рівневий довідник ТМЦ у бух. перетворюється у 2-рівневий у торг.
при такому пошуку
СпрТам.ВыбратьЭлементы(0);
+ НайтиПоНаименованию(род,0,1)
- при спробі запису елементу 3-го рівня, кричить тут сообщить("елемент = "+спрНомЭл.наименование);
сообщить("група = "+спрНомГр1.ТекущийЭлемент());
спрНомЭл.Родитель = спрНомГр1.ТекущийЭлемент();
на не коректного елемента-родича