Изменение родителя в справочнике - странная проблема
Всем доброго утра)
Наткнулся на странную проблему.
Имеется задача: выгрузить иерархический справочник из одной базы в другую, притом чтобы иерархия из базы-источника в базе-приемнике попала в определенную группу.
Для примера:
Вот как это выглядит в базе-источнике:
А вот что нужно получить в базе-приемнике:
Чтобы добиться этого замечательного результата, я сделал следующее:
1. Добавил в правила параметр ГруппаКонтрагентов, с типом СправочникСсылка.Контрагенты; естественно, предварительно данную пустую группу в базе-источнике я создал
2. Для правила конвертации справочника Контрагенты я правило конвертации свойства Родитель оформил вот так:
Как я понимаю, при выгрузке элементы справочника будут выгружаться рекуррентно: элемент, его родитель, родитель родителя и т.д., до того момента, пока мы не дойдем до элемента, самого верхнего в иерархии и не имеющего в базе-источнике родителя; в свою очередь, данным обработчиком этот самый верхний элемент в базе приемнике будет перецеплен под группу, хранящуюся у нас в параметре.
Пробуем выгрузить данными правилами из базы-источника, смотрим файл выгрузки, вроде как всё правильно:
Все выгрузилось вроде как я и планировал, и наша группа из параметра встала на вершине иерархии.
Для справки прикладываю во вложении сами правила и файл с выгрузкой.
Загрузка происходит без проблем.
Но обнаруживается неприятный момент - наша самая верхняя группа, которая выгрузилась благодаря обработчику, по какой-то причине загрузилась с признаком ЭтаГруппа = Ложь, при этом в справочнике автоматически скрылась вся иерархия, для которой эта группа является родителем:
Люди добрые, где я накосячил?) Почему вторая группа из файла грузится как группа, ведь в файле обмена они одинаковые как яйца)
Наткнулся на странную проблему.
Имеется задача: выгрузить иерархический справочник из одной базы в другую, притом чтобы иерархия из базы-источника в базе-приемнике попала в определенную группу.
Для примера:
Вот как это выглядит в базе-источнике:

А вот что нужно получить в базе-приемнике:

Чтобы добиться этого замечательного результата, я сделал следующее:
1. Добавил в правила параметр ГруппаКонтрагентов, с типом СправочникСсылка.Контрагенты; естественно, предварительно данную пустую группу в базе-источнике я создал
2. Для правила конвертации справочника Контрагенты я правило конвертации свойства Родитель оформил вот так:

Как я понимаю, при выгрузке элементы справочника будут выгружаться рекуррентно: элемент, его родитель, родитель родителя и т.д., до того момента, пока мы не дойдем до элемента, самого верхнего в иерархии и не имеющего в базе-источнике родителя; в свою очередь, данным обработчиком этот самый верхний элемент в базе приемнике будет перецеплен под группу, хранящуюся у нас в параметре.
Пробуем выгрузить данными правилами из базы-источника, смотрим файл выгрузки, вроде как всё правильно:
<Объект Нпп="3" Тип="СправочникСсылка.Контрагенты" ИмяПравила="Контрагенты">
<Ссылка Нпп="3">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>97b9d466-3bc3-11e6-b6aa-000c29c56c01</Значение>
</Свойство>
</Ссылка>
<Свойство Имя="Наименование" Тип="Строка">
<Значение>Контрагенты ВСОШ</Значение>
</Свойство>
<Свойство Имя="Родитель" Тип="СправочникСсылка.Контрагенты">
<Пусто/>
</Свойство>
<Свойство Имя="ЭтоГруппа" Тип="Булево">
<Значение>true</Значение>
</Свойство>
...
<Свойство Имя="ПометкаУдаления" Тип="Булево">
<Значение>false</Значение>
</Свойство>
<ТабличнаяЧасть Имя="КППИстория"/>
</Объект>
<Объект Нпп="2" Тип="СправочникСсылка.Контрагенты" ИмяПравила="Контрагенты">
<Ссылка Нпп="2">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>8a88de7d-3c09-11e6-b6aa-000c29c56c01</Значение>
</Свойство>
</Ссылка>
<Свойство Имя="Наименование" Тип="Строка">
<Значение>Сотрудники</Значение>
</Свойство>
<Свойство Имя="Родитель" Тип="СправочникСсылка.Контрагенты">
<Ссылка Нпп="3">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>97b9d466-3bc3-11e6-b6aa-000c29c56c01</Значение>
</Свойство>
</Ссылка>
</Свойство>
<Свойство Имя="ЭтоГруппа" Тип="Булево">
<Значение>true</Значение>
</Свойство>
...
<Свойство Имя="ПометкаУдаления" Тип="Булево">
<Значение>false</Значение>
</Свойство>
<ТабличнаяЧасть Имя="КППИстория"/>
</Объект>
<Объект Нпп="1" Тип="СправочникСсылка.Контрагенты" ИмяПравила="Контрагенты">
<Ссылка Нпп="1">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>9a00f792-3c09-11e6-b6aa-000c29c56c01</Значение>
</Свойство>
</Ссылка>
<Свойство Имя="Наименование" Тип="Строка">
<Значение>Рачинская Ирина Владимировна</Значение>
</Свойство>
<Свойство Имя="Родитель" Тип="СправочникСсылка.Контрагенты">
<Ссылка Нпп="2">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>8a88de7d-3c09-11e6-b6aa-000c29c56c01</Значение>
</Свойство>
</Ссылка>
</Свойство>
<Свойство Имя="ЭтоГруппа" Тип="Булево">
<Значение>false</Значение>
</Свойство>
...
<Свойство Имя="ПометкаУдаления" Тип="Булево">
<Значение>false</Значение>
</Свойство>
<ТабличнаяЧасть Имя="КППИстория"/>
...
</Объект>
ПоказатьВсе выгрузилось вроде как я и планировал, и наша группа из параметра встала на вершине иерархии.
Для справки прикладываю во вложении сами правила и файл с выгрузкой.
Загрузка происходит без проблем.
Но обнаруживается неприятный момент - наша самая верхняя группа, которая выгрузилась благодаря обработчику, по какой-то причине загрузилась с признаком ЭтаГруппа = Ложь, при этом в справочнике автоматически скрылась вся иерархия, для которой эта группа является родителем:

Люди добрые, где я накосячил?) Почему вторая группа из файла грузится как группа, ведь в файле обмена они одинаковые как яйца)
По теме из базы знаний
- Обмен документами в формате CommerceML по схеме поставщик-покупатель между 1С 7.7 <=> 7.7 (конфигурация «Торговля + Склад», ред. 9.2) и 1С 7.7 <=> 8.x (конфигурация «Управление торговлей, ред. 10.3»)
- Баг или фича? Неожиданное поведение платформы
- 1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки
- Обновление для конфигураций КА 1.1, ЗУП 2.5, Бухгалтерия 2.0
- Как не внедрить 1С:ERP 2 за один год, но через три распилить монолит?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот