![]() |
![]() |
![]() |
|
v8: Проблема с конвертацией данных | ☑ | ||
---|---|---|---|---|
0
Arhont
26.10.11
✎
10:51
|
В обработчике загрузки правил конвертации объектов, а именно - справочников решил везде проставить унифицированный код (чтобы не париться с иерархичностью справочников и прочим):
----------------------- НаименованиеСправочника = СтрЗаменить(ИмяТипаОбъекта,"СправочникСсылка.",""); ПроверяемРодительскуюГруппу = Истина; МетаданныеСправочника = Справочники[НаименованиеСправочника].ПустаяСсылка().Метаданные(); Если МетаданныеСправочника.Иерархический Тогда Если Строка(МетаданныеСправочника.ВидИерархии) = "ИерархияГруппИЭлементов" Тогда ПроверяемРодительскуюГруппу = Ложь; КонецЕсли; Иначе ПроверяемРодительскуюГруппу = Ложь; КонецЕсли; Если не ОбъектНайден И ПроверяемРодительскуюГруппу Тогда Группа = Справочники[НаименованиеСправочника].НайтиПоНаименованию("НЕ НАЙДЕНЫ ПРИ ОБМЕНЕ С ФИЛИАЛАМИ"); Если Группа.Пустая() Тогда Группа = Справочники[НаименованиеСправочника].СоздатьГруппу(); Группа.Наименование = "НЕ НАЙДЕНЫ ПРИ ОБМЕНЕ С ФИЛИАЛАМИ"; Группа.Записать(); КонецЕсли; Объект.Родитель = Группа.Ссылка; Объект.Записать(); Сообщить(Объект.Родитель); КонецЕсли; --------------------------- Но выдается ошибка: --------------------------- Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = ВидыКонтактнойИнформации ТипОбъекта = Справочник ссылка: Виды контактной информации Объект = Юридический адрес организации Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Поле объекта не обнаружено (Справочник) ПозицияМодуля = (2) КодСообщения = 21 Ошибка при загрузке данных: {Обработка.ОбменДаннымиXML(1597)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = ВидыКонтактнойИнформации ТипОбъекта = Справочник ссылка: Виды контактной информации Объект = Юридический адрес организации Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Поле объекта не обнаружено (Справочник) ПозицияМодуля = (2) КодСообщения = 21 ------------------------------------- Пробовал разные варианты, похоже что дело с обращением к метаданным, т.к. при удалении обращений к ним все вроде ок. Но для универсальности без них никак. Уж по-разному пробовал, и: "Метаданные.Справочники[НаименованиеСправочника].Иерархический" и "Справочники[НаименованиеСправочника].ПустаяСсылка().Метаданные()" - все никак. Это на самом деле нереально к метаданным подцепиться или я что-то не так делаю? |
|||
1
Рэйв
26.10.11
✎
10:55
|
У тебя совсем не к этому коду ошибка относится.Читай внимательней.
Справочник ссылка: Виды контактной информации ПослеЗагрузкиОбъекта Открывай КД и смотри что там у тебя обработчикеПослеЗагрузки |
|||
2
Arhont
26.10.11
✎
11:02
|
1) Так это я и привел текст обработчика "После загрузки" из КД
|
|||
3
Рэйв
26.10.11
✎
11:21
|
(2)Значит не тот обработчик.
У тебя там поле Справочник нигде не используется |
|||
4
Arhont
26.10.11
✎
11:26
|
3) Да вроде тот, т.к. другого ничего не нашел, причем, когда из этого обработчика удаляю строки:
МетаданныеСправочника = Справочники[НаименованиеСправочника].ПустаяСсылка().Метаданные(); Если МетаданныеСправочника.Иерархический Тогда Если НЕ Строка(МетаданныеСправочника.ВидИерархии) = "ИерархияГруппИЭлементов" Тогда ПроверяемРодительскуюГруппу = Ложь; КонецЕсли; Иначе ПроверяемРодительскуюГруппу = Ложь; КонецЕсли; ...то ошибка изчезает. |
|||
5
Рэйв
26.10.11
✎
11:30
|
(4)Ну открывай тогда отладчик, ставь точку останова на исключении и смотри внутрях чего ему не нравится
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |