Конвертация данных 2.0. Перенос справочника с иерархией групп и элементов



Детективная история о том, как при переносе элементы справочника становились не «видимыми».

      Возникла необходимость перенести из конфигурации "Комплексная автоматизация 1.1" в "Комплексная автоматизация 2.4" справочник с иерархией групп и элементов ГруппаКлассификации. Быстро накидал правила для переноса в конфигурации "Конвертация данных 2.0".  Перенёс данные, все пришло только нет групп. Добавил в ПКО Родителя и свойство  ЭтоГруппа и снова сделал перенос. С этого момента и начался детектив.  В перенесённых объектах конфигурации — справочнике Номенклатура ссылки на элементы справочника ГруппаКласификации есть и сами элементы открываются. Но при попытке выбрать из полного списка приходим к ситуации что видим только верхнюю папку и то в виде элемента. Ситуация как в том анекдоте "Ты суслика видишь? Нет!  А он есть!".

     К раскрытию этой непростой ситуации с исчезновением элементов справочника были привлечены следователи со стажем: отладчик, конфигуратор  и набор инструментов ирПортативный. При изучении ситуации на месте преступления выяснилось, что если включить вариант просмотра справочника списком то "невидимки" становятся видны. Если элемент справочника удалить непосредственным удалением в базе и снова перенести ситуация не исправляется. Через инструмент разработчика ирПортативный было установлено, что свойство ЭтоГруппа имеет значение "Ложь". То есть по факту группы перенесены как элементы и по этой причине нет возможности навигации по справочнику ГруппаКлассификации в режиме просмотра иерархический список. 

     После того как все "внешние" способы повлиять на ситуацию были исчерпаны к делу поиска причины переноса групп справочника ГруппаКлассификации в виде элементов подключили тяжёлую артилерию отладчик. Предпосылка для поиска точки остановки для выяснения ситуации была следующей: насколько бы сложной не была обработка УниверсальныйОбменДаннымиXML внутри её кода должен быть вызов метода объекта справочника СоздатьГруппу(). Такой участок кода был действительно скоро найден.

     Анализ в отладчике показал что  вместо группы справочника ГруппаКлассификации заводятся элементы по причине того, что СвойстваПоиска["ЭтоГруппа"]  выдает неопределено.  Возникает вопрос какие данные попадают в эту переменную СвойстваПоиска и почему в ней нет свойства ЭтоГруппа?  В этом вопросе помог анализ XML файла  с данными для переноса. Переменная СвойстваПоиска заполняется свойствами из группы файла выгрузки XML ссылка. В свою очередь в эту группу попадают только те реквизиты объекта у которых стоит галка Поиск объекта при загрузке по свойству. 

    Ура! Задача решена! Необходимо было поставить всего лишь одну галку.

5 Comments

  1. _Enot_

    Да было такое как то раз, что не мог понять почему группы не переносились, но нашел это быстро просмотрев уроки)

    Reply ↓
  2. Поручик

    Давно известно и описано, что надо обязательно указывать свойство поиска ЭтоГруппа, особенно если поиск по наименованию..

    Reply ↓
  3. bomba

    (2) Еще не один детектив напишут, не читая ни одного детектива)

    Reply ↓
  4. artfa

    дело было не в бобине…

    Reply ↓
  5. user835863

    Спасибо !!! Помогло )))

    PS: изложение в детективном стиле очень понравилось !

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *