КД. Справочники. Загрузка справочника с изменением иерархии

1. Wefast 06.11.15 03:00 Сейчас в теме
Перенес из двух баз (БСО 20 и 30) справочники в одну базу ( Управление строительной организации)
У справочника сохранился только первый уровень иерархии.

Поиск элемента хочу осуществить по коду, наименованию, полному наименованию. инн
Поиск группы надо делать только по наименованию и родителю.

До этого я находил способ в ПКО в событие Поля поиска добавить:

Если СвойстваПоиска["ЭтоГруппа"] Тогда
	СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа, Родитель";
Иначе
	СтрокаИменСвойствПоиска = "ПолноеНаименование, ИНН, Код";
КонецЕсли;


Но видимо не работает, не знаю возможно из-за того что есть ПКС которых не может быть у группы справочника(ИНН к примеру), кстати это первый вопрос(Как при этом отрабатывается ПКС и ПКО для групп справочника)

Нашел способ создания для родителя справочника ПКО для переноса групп(ПКС только характерные для групп справочника)
При этом в ПКО в событие перед выгрузкой стоит
Отказ = Источник.ЭтоГруппа;

И если я выбираю выгружать этот справочник при выгрузке каждого элемента где заполнен Родитель будет вызываться ПКО для конвертации групп справочника. Т.е. там не должны обрабатываться элементы справочника.
Но я поставил вывод сообщения в перед выгрузкой Если Источник.ЭтоГруппа = Ложь Тогда Сообщить("жавжвадж") КонецЕсли; И сообщения эти выводятся, значит в ПКО для групп в источник попадюn и просто элементы.
Может я туплю на ночь глядя. но логика работы и последовательность выполнения остается для меня загадкой.

Добавил в ПКО для групп
Если Источник.ЭтоГруппа = Ложь Тогда
Отказ = Истина
КонецЕсли;

И вроде отрабатывает как нужно.

Но разобраться как нужно делать не строя все на каких то костылях все еще хочется, тем более там есть еще такие справочники.

И важно как проходит поиск по внутреннему идентификатору. В каких случаях они будут одинаковые в обеих базах?

http://i.imgur.com/amwj2lR.png
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kot30688 3 06.11.15 06:15 Сейчас в теме
Так а Вам что нужно? Чтоб иерархия была как в источнике или свою иерархию делаете?
kasper076; +1 Ответить
3. adva 45 06.11.15 07:37 Сейчас в теме
А количество уровней иерархии в приемнике такое же как в источнике?

По внутреннему идентификатору ищется, если стоит соответствующая галка. При этом если дополнительно стоит галка "Продолжить поиск по полям поиска, ", то в случае если не найдет по внутреннему ИД, начнет искать по указанным полям поиска. Если найдет по полям поиска, то идентификаторы могут отличаться (если были созданы в разных базах независимо), иначе создаст новый элемент с идентификатором из источника (если на текущий момент не поменяли ничего, давно разбирался).

В качестве полей поиска надо указать все поля поиска, которые встречаются и в группах и в элементах, для вашего случая это "Наименование, ЭтоГруппа, Родитель" и "ПолноеНаименование, ИНН, Код", только для элементов также добавьте реквизит "ЭтоГруппа", а "Родитель" лучше всего исключить, иначе при переносе из группы в группу, могут быть задвоения (если элемент ранее не переносился, а уже есть в приемнике в другой группе)
5. Wefast 09.11.15 09:55 Сейчас в теме
(3) adva, я так сначала и сделал. Указал просто по все поля поиска чтобы элемент был уникален. Он создал самые верхние папки справочника, а подпапки проигнорировал. И элементы что в них должны быть попали либо в корень, либо на уровень выше.

(4) adva, я погуглил, что это за пКГС, но в КД подобного не нашел. Да и не понял что нужно было бы сделать и как оно работает если бы и нашел

(2) kot30688, да мне нужно чтобы иерархия была как в источнике.
При этом я перенес таки, но с созданием ПКО отделно для групп. А там десятки же справочников. Скорее всего я где то что то сделал не так.
4. adva 45 06.11.15 07:40 Сейчас в теме
для групп не обязательно создавать отдельное правило, можете просто для элементов ПКГС создать в котором прописать Если ЭтоГруппа Тогда Отказ = Истина КонецЕсли;, и туда перенести реквизиты только для элементов, но вроде бы этого делать не обязательно (если только какой-то код выполняется при переносе реквизитов, который может к ошибкам привести).
6. Xershi 1489 09.11.15 10:05 Сейчас в теме
Чтобы иерархия была как в базе из которой вы все тяните, то нужно просто добавить реквизит ЭтоГруппа в ПКО и по нему также осуществлять поиск и не забыть про ПКС родитель.
kot30688; +1 Ответить
7. adva 45 09.11.15 10:10 Сейчас в теме
ПКГС - правила конвертации группы свойств (например группа, обозначающая табличную часть документа)
8. Xershi 1489 09.11.15 10:12 Сейчас в теме
Заметил на скрине, что вы и родителя в поиск вставили и мало того для него ПКО кривое скорее всего написали.
Оставьте свое сообщение

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