Думаю не будет работать это решение
1. Поиск идет по наименованию - не лучшее решение
2. Предполагаю что уникальность кодов в справочнике Приемник установлен в "во всем справочнике", т.е., придется еще генерировать код "Автоматически генерировать код или номер, если не задан". Это значит мы отказываемся от поиска по коду, которая априори лучшее решение.
Вот мое решение, чуть другое, но проблема таже
1. Есть 1С Бухгалтерия 77, в котором есть 3 справочника: Товары,Номенклатура,Материалы
2. Есть 1С Бухгалтерия 81., в котором есть только ОДИН справочник Номенклатура
3. Надо из семерки перебросит элементы всех трех справочников с сохранением иерархии каждой из них в восьмерку в определенные папки (Товары в ТОВАРЫ, Материалы в МАТЕРИАЛЫ и т.д.)
1. Указываем ПКО для справочников Товары,Материалы,Номенклатура, где приемником будет выступать один на всех справочник Номенклатура. ПКС оставляем в удобном виде, а именно: поиск по коду,родителю и группе
2. В каждом ПКС для каждого ПКО для кода и родителя прописываем следующее:
для кода
чтобы привести длину и формат кода под длину и формат кода приемника
для родителя
здесь для верхнего уровня записей в источнике мы задаем выражение. при загрузке обработка автоматически, если запись является элементов верхнего уровня, запишет ее по указанному в выражении адресу. для остальных подчиненных записей идет стандартный алгоритм поиска и записи в группу.
ну сам код для процедуры УстановитьКод
И последнее, чтобы не было коллизей, я в обязательном порядке делаю перенумерацию в справочниках Источника, чтобы не было пересечений в Приемнике
вот код
Счетчик = 99;
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Счетчик = Счетчик+1;
Рез = Строка(Счетчик);
Пока СтрДлина(Рез)<7 Цикл
Рез = "0"+Рез;
КонецЦикла;
Спр.Код = Рез;
Спр.Записать();
КонецЦикла;
Счетчик = 299;
Спр = СоздатьОбъект("Справочник.Материалы");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Счетчик = Счетчик+1;
Спр.Код = Счетчик;
Спр.Записать();
КонецЦикла;
Счетчик = 799;
Спр = СоздатьОбъект("Справочник.Товары");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Счетчик = Счетчик+1;
Спр.Код = Счетчик;
Спр.Записать();
КонецЦикла
Показать
здесь я раскидываю записи в каждом справочнике в своем уникальном диапазоне, так чтобы в Приемнике они не затерли уже существующие записи. Таким образом можно надежно перебросить записи разных справочников в один справочник и в
указанную группу