Конвертация данных 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 не будет опубликован. Обязательные поля помечены *