|
v7: OLE ТиС .. перенос справочников |
☑ |
0
__Se24
08.02.12
✎
10:33
|
День добрый ! Господа Гуру , подскажите , из-за чего может не отрабатывать кусок кода ? Переношу справочники номенклатуры из ТиС в другую базу . Делаю срезы по уровню . Первый уровень переносится без проблем , а вот со вторым происходил ерунда ....
//*************************************************************************************
Функция ПолучитьРодителя(СпрТиС)
Если СпрТиС.Родитель.Выбран()=0 Тогда
Возврат 0;
КонецЕсли;
СпрР=СоздатьОбъект("Справочник.Номенклатура");
КР=СпрТис.Родитель.Код;
Если СпрР.НайтиПоКоду(КР,0)=1 Тогда
СпрРод=СпрР.ТекущийЭлемент();
СпрР=0;
Возврат СпрРод;
Иначе
Возврат 0;
КонецЕсли;
Возврат 0;
КонецФункции //ПолучитьРодителя(СпрТиС)
//*************************************************************************************
Спр=СоздатьОбъект("Справочник.Номенклатура");
Спр.Новый();
Спр.Код=СпрТиС.Код;
Спр.Родитель=ПолучитьРодителя(СпрТиС);
Спр.Наименование=СпрТиС.Наименование;
Спр.Записать();
Процедура "ПолучитьРодителя" отрабатывает, находит его , возвращает ссылку на элемент справочника , про при присвоении происходит вот это :
Спр.Родитель=ПолучитьРодителя(СпрТиС);
{D:\1CBASES\DEVELOP\UPR\EXTFORMS\SE\OBR_UPR\TIS\ПЕРЕГРУЗКАСПРАВОЧНИКОВ.ERT(84)}: Неверное значение!
|
|
1
Ёпрст
гуру
08.02.12
✎
10:35
|
(0) ибо находит элемент, а не группу
|
|
2
Ёпрст
гуру
08.02.12
✎
10:35
|
а так, всё надо делать за 1 проход..тупо вызывая рекурсивную функцию.
|
|
3
1Сергей
08.02.12
✎
10:36
|
Серии кодов (В пределах подчинения/во всём справочнике) одинаковые в обоих базах?
|
|
4
__Se24
08.02.12
✎
10:47
|
Эм ...
Блин , Точно , группа веть по другому создается !!!
(0) Спасиб огромный !!!! а-то еще бы часа 2 сидел )))
|
|
5
__Se24
08.02.12
✎
10:50
|
Если СпрТиС.ЭтоГруппа()=0 Тогда
Спр.Новый();
Иначе
Спр.НоваяГруппа();
КонецЕсли;
Спр.Код=СпрТиС.Код;
........
Теперь все работает )))
|
|