Конвертация данных. Изменение иерархии существующего справочника при загрузке

1. olo_lo4 07.11.15 10:29 Сейчас в теме
Были базы: БСО 30, БСО 20, УСО
Я из БСО 30 и 20 загрузил справочники в УСО.
Не знаю в какой момент что то пошло не так. но у некоторых элементов сбита принадлежность к группам. И уровень вложенности не превышает 1, т.е. подпапки не перенеслись.

1) Мне нужно при загрузке найти элемент справочника и перенести в папку в которой он должен быть. причем чтобы работала вложенность нормально.

2) Не существующие элементы так же должны перенестись.


С Иерархией я так и не разобрался. не понимаю почему правило конвертации в этом случае сбоит

А так я делаю поиск по Коду, наименованию, полному наименованию, инн и остальным полям чтобы добиться уникальности при отборе.

Группы при этом не должны искаться по коду, так как в базе источнике эти группы затроены.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. olo_lo4 07.11.15 10:31 Сейчас в теме
если что ПКС Родитель был.
Т.е. элемент должен был поискаться в справочнике и где бы этот элемент не не нашелся записать его в тут папку как указано в родителе.

А родитель поискался бы по всему справочнику бы и не найдясь записался бы с родителем что указан в источнике и стал бы вторым уровнем.

Конец если подпапки повторялись бы он перенес бы все элементы в первую созданную. Но у меня не так.

Конечно я бы рад узнать как и это учесть
3. Pervuy 65 07.11.15 14:33 Сейчас в теме
Я думаю для групп надо создать новое правило ПКО и поставить свои поля для поиска. Еще обязательно для иерархических справочников ставится поиск по полю "ЭтоГруппа". Для элементов этого справочника для поля Родитель ставить Правило конвертации, то что Вы написали для переноса родителя.

Еще я делал в ПКО (Для родителя) в обработчике перед выгрузкой
Если НЕ Источник.ЭтоГруппа Тогда
    Отказ = Истина;
КонецЕсли;


И аналогично для элемента
Если Источник.ЭтоГруппа Тогда
    Отказ = Истина;
КонецЕсли;


Ну как то так...
4. insurgut 208 08.11.15 17:54 Сейчас в теме
(3) Pervuy, а какой смысл не выгружать информацию о родителе? А как тогда нужный элемент попадет на свое место?

(2) olo_lo4, помечаете в конечной базе всю номенклатуру на удаление. Выгружаете заново номенклатуру по доработанным правилам. Как указано в (3) в полях поиска обязательно должен быть реквизит ЭтоГруппа (только не делайте никаких отказов от выгрузки). Однако, если вы ищете по коду, наименованию, полному наименованию и прочей куче реквизитов, то у вас ничего хорошего не выйдет из этого. Должно быть либо "Наименование + ЭтоГруппа" либо "Код + ЭтоГруппа", затем удаляете все оставшиеся помеченными на удаление элементы номенклатуры и уже после этого поиском и заменой дублирующих элементов наводите порядок.
5. Pervuy 65 08.11.15 20:13 Сейчас в теме
(4) insurgut, Я писал что надо создать другое правило для родителя, а не просто не выгружать
6. insurgut 208 08.11.15 20:25 Сейчас в теме
(5) Pervuy, так ТС говорит, что у него получилось по 1 уровню непонятно как, такого быть не должно, а вы наоборот предлагаете решение "Как сделать иерархию одноуровневой" если я правильно понял :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот