1с Запрос пример:
Получим родителей:Запрос = СоединениеС1С_.NewObject("Запрос");
Запрос.Текст =
"
|ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Родитель
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка = &МояСсылка
|ИТОГИ ПО
| Ссылка ИЕРАРХИЯ |";
Запрос.УстановитьПараметр("МояСсылка", Номенклатура);
Тз_ = Запрос.Выполнить().Выгрузить();
Если Тз_.количество()>0 Тогда
Тз_.Удалить(Тз_.Количество()-1);//В конце выборки появляются 2 строки с ссылкой, удалим одну...
//Создадим родителей
для Каждого стр из Тз_ Цикл
Если не стр.Ссылка.этогруппа Тогда Продолжить; КонецЕсли;
Уи = СоединениеС1С_.string(стр.Ссылка.УникальныйИдентификатор());
УиПриемник = Новый УникальныйИдентификатор(Уи);
Найденная = Справочники.Номенклатура.ПолучитьСсылку(УиПриемник);
Если ПустаяСтрока(Найденная.Код) Тогда
ОбР = Справочники.Номенклатура.СоздатьГруппу();
ОбР.УстановитьСсылкуНового(Найденная);
Иначе
ОбР = Найденная.ПолучитьОбъект();
КонецЕсли;
ОбР.Наименование = стр.ссылка.Наименование;
Попытка
ОбР.Записать();
Исключение
Сообщить_(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
//Расставим родителей
для Каждого стр из Тз_ Цикл
Если не стр.Ссылка.этогруппа Тогда Продолжить;КонецЕсли;
Если стр.Ссылка.родитель.пустая() Тогда Продолжить;КонецЕсли;
Уи = СоединениеС1С_.string(стр.Ссылка.УникальныйИдентификатор());
УиПриемник = Новый УникальныйИдентификатор(Уи);
Найденная = Справочники.Номенклатура.ПолучитьСсылку(УиПриемник);
Если ПустаяСтрока(Найденная.Код) Тогда
Предупреждение("Ошибка в поиске группы по УИ");
Возврат Неопределено;
Иначе
ОбС = Найденная.ПолучитьОбъект();
КонецЕсли;
Уи = СоединениеС1С_.string(стр.Родитель.УникальныйИдентификатор());
УиПриемник = Новый УникальныйИдентификатор(Уи);
Найденная = Справочники.Номенклатура.ПолучитьСсылку(УиПриемник);
Если ПустаяСтрока(Найденная.Код) Тогда
Предупреждение("Ошибка в поиске родителя по УИ");
Возврат Неопределено;
Иначе
ОбС.Родитель = Найденная;
Попытка
ОбС.Записать();
Исключение
Сообщить_(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецЕсли;