Уважаемые имеется такая часть кода. Через запрос получаются все родители элемента (СФЛЦБ)из базы по ком соединению.
Запрос = глСоединениеСЦБ.NewObject("Запрос");
Запрос.УстановитьПараметр("Ссылка", СФЛЦБ);
//Запрос.УстановитьПараметр("СписокНоменклатур", <СписокНоменклатур>); //Контрагент
Запрос.Текст = "
|ВЫБРАТЬ
| Контрагенты.Ссылка
|ПОМЕСТИТЬ РодителиВерхнегоУровня
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.Родитель.Ссылка ЕСТЬ NULL
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|
|ВЫБРАТЬ
| Контрагенты.Ссылка,
| РодителиВерхнегоУровня.Ссылка КАК Ссылка1,
| РодителиВерхнегоУровня.Ссылка.код КАК Ссылка12,
| Родитель КАК Ссылка2,
| Родитель.Родитель КАК Ссылка3,
| Родитель.Родитель.родитель КАК Ссылка4
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РодителиВерхнегоУровня КАК РодителиВерхнегоУровня
| ПО (Контрагенты.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель.Родитель.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка)
|ГДЕ
| Контрагенты.Ссылка В(&Ссылка)
|";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
НГРСФЛ1=РезультатЗапроса.Ссылка1.Description;
НГРСФЛСсылка1=РезультатЗапроса.Ссылка1;
НГРСФЛ2=РезультатЗапроса.Ссылка2.Description;
НГРСФЛСсылка2=РезультатЗапроса.Ссылка2;
НГРСФЛ3=РезультатЗапроса.Ссылка3.Description;
НГРСФЛСсылка3=РезультатЗапроса.Ссылка3;
НГРСФЛ4=РезультатЗапроса.Ссылка4.Description;
НГРСФЛСсылка4=РезультатЗапроса.Ссылка4;
Сообщить("группа1 "+НГРСФЛ1+НГРСФЛСсылка1);
Сообщить("группа2 "+НГРСФЛ2+НГРСФЛСсылка2);
Сообщить("группа3 "+НГРСФЛ3+НГРСФЛСсылка3);
Сообщить("группа4 "+НГРСФЛ4+НГРСФЛСсылка4);
КонецЦикла;
//если НГРСФЛ=форма.НЗ тогда
// прервать;
//иначе
 Если Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1).Пустая() тогда
 НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();
 НоваяГруппа.Наименование = НГРСФЛ1;
 НоваяГруппа.Записать();
 ЭтаФорма.родитель=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1).Ссылка
иначе
ЭтаФорма.родитель=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1).Ссылка;
КонецЕсли;
    Группа1=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1).Ссылка;
 Если Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ2,,Группа1).Пустая() тогда
  НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();
  НоваяГруппа.Наименование = НГРСФЛ2;
  НоваяГруппа.Родитель = Группа1;
        НоваяГруппа.Записать();
  ЭтаФорма.родитель.родитель=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ2).Ссылка;
 иначе
  ЭтаФорма.родитель.родитель=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ2).Ссылка
КонецЕсли;

Но почему-то записать всех родителей я не могу хотя получаю. в частности выводит родитель не доступен для записи. Выручайте дорогие мои
---
Так тут ты опять пытаешься через ссылку писать

"потом ЭтотОбъект.Родитель.Родитель
потом ЭтотОбъект.Родитель.Родитель.Родитель"

здесь опять надо объект получать

ОбъектВерхнегоРодителя = ЭтотОбъект.Родитель.ПолучитьОбъект();
ОбъектВерхнегоРодителя.Родитель = ЧтоТам ;

ОбъектБолееВерхнегоРодителя = ОбъектВерхнегоРодителя.Родитель.ПолучитьОбъект();
ОбъектБолееВерхнегоРодителя.Родитель = ЕщеЧтОтам ;

и .т д. Ну и засунь это в рекусрию.
---
mentozavr, ЭтаФорма.родитель.родитель= в Ссылку пытаешься записать, а надо получать объект и в него ужо пописывать!!!
---
m-serg74, не понял? а по подробнее, на этом как раз и встал
---
mentozavr,

```1c
    ОбРодитель = ЭтаФорма.Родитель.ПолучитьОбъект();
    ОбРодитель.Родитель = ...тра-ля-ля;
    ОбРодитель.Записать();
```

как-то примерно вот так)))
---
m-serg74, спасибо дорогой
---
mentozavr, лишь бы на пользу;-)
---
m-serg74, счас как раз попробую
---
m-serg74,
ошибка
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(1099)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
ЭтаФорма.Родитель.ПолучитьОбъект();
по причине:
Элемент не выбран!
---
Проходя мимо решил "стукнуть" по клавишам:

```1c
    СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
    ПолныйКод (FullCode)
    Синтаксис:
    ПолныйКод()
    Возвращаемое значение:
    Тип: Строка.
    Строка, включающая код элемента и коды всех вышестоящих элементов.
    Коды выводятся слева направо, начиная с самого верхнего уровня, разделяются символом "/".
    Описание:
    Получает код элемента справочника с учетом кодов всех вышестоящих элементов.
    Доступность:
    Сервер, толстый клиент, внешнее соединение.
    Пример:
    Сообщить("Полный код данного элемента: " +
    Объект.ПолныйКод());
```

А отсюде ещё не заходили?
---
AnryMc, +100 баллов, хоть и не в тему:-)
---
m-serg74, Ну 100 "+" не получиться, но 1 можно... получиться что то около 1500...
---
AnryMc, я написал "+ 100 баллов", а не "+ 100 плюсов" ;-)
---
AnryMc, Ходили ходили и бред получили
---
mentozavr, выложи код какой он сейчас

ПС. Полдня не загрузить группы... моя в шоке...
---
m-serg74,
Процедура НСИ_ЦБНажатие(Элемент) экспорт
 Если ЭлементыФормы.Наименование.Значение="" Тогда возврат
 //
 КонецЕсли;

 ВнешниеОбработкиСправочник=Справочники.ВнешниеОбработки;
 Выборка=ВнешниеОбработкиСправочник.НайтиПоНаименованию("Поиск контрагентов");
    Имя="Поиск контрагентов";
   Расширение=".epf";
        ДвДанные=Выборка.ХранилищеВнешнейОбработки.Получить();
        ПолныйПуть=КаталогВременныхФайлов()+имя+Расширение;
        ДвДанные.записать(ПолныйПуть);
        Форма=ВнешниеОбработки.ПолучитьФорму(ПолныйПуть);

 //Форма=ВнешниеОбработки.ПолучитьФорму("\\srv-vzp\BDocs\ЖАВПоискВОсновнойБазеДерево.epf");
 Форма.ТекущийТекст=Строка(ЭлементыФормы.Наименование.Значение);
 ИмяСправочника=Форма.ПолучениеНазванияСправочника(ЭтотОбъект.Метаданные().Имя);
 ОткрытьФормумодально(форма,ПолныйПуть);
 //КонецЦикла;
 //ЭлементыФормы.Наименование.Значение=Форма.НЗ;

 ЭлементыФормы.Наименование.Значение=Форма.НЗ;
//ЭлементыФормы.код=Форма.код1;
НаименованиеПриИзменении(Форма.НЗ);
//Элемент.Записать();
//ссФЛ = Элемент.Ссылка;
//Отказ=Ложь;

//ссФЛ = Справочники.ФизическиеЛица.ПолучитьСсылку();
//ПриЗаписи(Отказ);
Выполнить("ЭтотОбъект.УстановитьСсылкуНового(Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор(Форма.УУИД)))");
//НоваяСсылка = Справочники.ФизическиеЛица.ПолучитьСсылку(Новый УникальныйИдентификатор(Форма.УУИД));
ЭтотОбъект.УстановитьСсылкуНового(Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор(Форма.УУИД)));

ССФЛ=ЭтотОбъект.Ссылка;
отказ=ложь;
СФЛЦБ=форма.СФЛ;
СФЛЦБСсылка=СФЛЦБ.Ref;
ЭтотОбъект.ОбменДанными.Загрузка=истина;
////рабртаем с группами-вариант №3
////Верхний(СФЛЦБ)

////рабртаем с группами-вариант №1
Запрос = глСоединениеСЦБ.NewObject("Запрос");
Запрос.УстановитьПараметр("Ссылка", СФЛЦБ);
//Запрос.УстановитьПараметр("СписокНоменклатур", <СписокНоменклатур>); //Контрагент
Запрос.Текст = "
|ВЫБРАТЬ
| Контрагенты.Ссылка
|ПОМЕСТИТЬ РодителиВерхнегоУровня
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.Родитель.Ссылка ЕСТЬ NULL
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|
|ВЫБРАТЬ
| Контрагенты.Ссылка,
| РодителиВерхнегоУровня.Ссылка КАК Ссылка1,
| РодителиВерхнегоУровня.Ссылка.код КАК Ссылка12,
| Родитель КАК Ссылка2,
| Родитель.Родитель КАК Ссылка3,
| Родитель.Родитель.родитель КАК Ссылка4
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РодителиВерхнегоУровня КАК РодителиВерхнегоУровня
| ПО (Контрагенты.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка
| ИЛИ Контрагенты.Родитель.Родитель.Родитель.Родитель.Родитель = РодителиВерхнегоУровня.Ссылка)
|ГДЕ
| Контрагенты.Ссылка В(&Ссылка)
|";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
НГРСФЛ1=РезультатЗапроса.Ссылка1.Description;
НГРСФЛСсылка1=РезультатЗапроса.Ссылка1;
Сообщить("группа1 "+НГРСФЛ1+НГРСФЛСсылка1);
Если РезультатЗапроса.Ссылка2<>null тогда
НГРСФЛ2=РезультатЗапроса.Ссылка2.Description;
НГРСФЛСсылка2=РезультатЗапроса.Ссылка2;
иначе прервать
КонецЕсли;
Сообщить("группа2 "+НГРСФЛ2+НГРСФЛСсылка2);
Если РезультатЗапроса.Ссылка3<>null тогда
НГРСФЛ3=РезультатЗапроса.Ссылка3.Description;
НГРСФЛСсылка3=РезультатЗапроса.Ссылка3;
иначе прервать
КонецЕсли;
Сообщить("группа3 "+НГРСФЛ3+НГРСФЛСсылка3);
Если РезультатЗапроса.Ссылка4<>null тогда
НГРСФЛ4=РезультатЗапроса.Ссылка4.Description;
НГРСФЛСсылка4=РезультатЗапроса.Ссылка4;
иначе прервать
КонецЕсли;
Сообщить("группа4 "+НГРСФЛ4+НГРСФЛСсылка3);
КонецЦикла;
//////Проверка на существование групп
ЭтотОбъект.Записать();
ГруппаТут=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1);
Если ЗначениеЗаполнено(ГруппаТут) и ГруппаТут.ЭтоГруппа=Истина тогда
ЭтотОбъект.Родитель=НГРСФЛСсылка1;
иначе
НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();
НоваяГруппа.Наименование = НГРСФЛ1;
НоваяГруппа.Записать();
КонецЕсли;
---
mentozavr,

```1c
    ГруппаТут=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1);
    Если ЗначениеЗаполнено(ГруппаТут) и ГруппаТут.ЭтоГруппа=Истина тогда
    ЭтотОбъект.Родитель=НГРСФЛСсылка1;
    иначе
    НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();
    НоваяГруппа.Наименование = НГРСФЛ1;
    НоваяГруппа.Записать();
    КонецЕсли;
```

т.е. если не нашел то Группу создаем но подставлять в Родитель ее не надо???
а потом будем из Родителя получать объект, которого тама нету(((
---
m-serg74,
ЭтотОбъект.Записать();
ГруппаТут=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1);
Если ЗначениеЗаполнено(ГруппаТут) и ГруппаТут.ЭтоГруппа=Истина тогда
ЭтотОбъект.Родитель=ГруппаТут;
иначе
НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();
НоваяГруппа.Наименование = НГРСФЛ1;
НоваяГруппа.Записать();
КонецЕсли;
---
mentozavr, и чЁ?

вот почему не сделать так как я уже писал...

```1c
    ЭтотОбъект.Записать();
    ГруппаТут=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1);
    Если НЕ ЗначениеЗаполнено(ГруппаТут) или НЕ ГруппаТут.ЭтоГруппа тогда
    ГруппаТут= Справочники.Контрагенты.СоздатьГруппу();
    ГруппаТут.Наименование = НГРСФЛ1;
    ГруппаТут.Записать();
    КонецЕсли;
    ЭтотОбъект.Родитель=ГруппаТут.Ссылка;
```
---
m-serg74,сделал. тоже что и у меня только кварх ногами
---
mentozavr, у тебя НОваяГруппа создавалась, записывалась но в Родитель не подставлялась, кстати а в конце всех этих маневров ты ЭтотОбъект то записываешь?

ГруппаТут=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1);
Если НЕ ЗначениеЗаполнено(ГруппаТут) или НЕ ГруппаТут.ЭтоГруппа тогда
ГруппаТут= Справочники.Контрагенты.СоздатьГруппу();
ГруппаТут.Наименование = НГРСФЛ1;
ГруппаТут.Записать();
КонецЕсли;
ЭтотОбъект.Родитель=ГруппаТут.Ссылка;
ЭтотОбъект.Записать();
---
m-serg74, вот вот у меня ЭтотОбъект.Записать(); стоит до присвоения родителя. во вторых не будет ли дублей записи?
---
Находит поди элемент, а не группу .. тем более, поиск по наименованию моветон
---
Ёпрст,НГРСФЛ2-название родителя а НГРСФЛ2ссылка - ссылка на родителя
---
охотно верю, что найтиПоНаименованию нашло именно родителя, а не элемент, ага..
:)
---
Ёпрст,
что найтиПоНаименованию нашло именно родителя, а не элемент, ага
как раз НайтиПоНаименованию справочника возвращает в первую очередь группу (если группа и элемент имеют идентичное название). Ей без разницы, а группа - видимо, ближе расположена к началу записей.
---
Ёпрст,
 тем более, поиск по наименованию моветон
а какой поиск - не моветон?
---
А зачем этот запрос? Есть же функция СправочникОбъект.ПолныйКод(). Она вернет строку, в которой коды буду разделены "/". Распарсите строку, найдите по коду нужные элементы и делайте что нужно.
---
juntatalor, спасибо конечно. а можно по подробнее про это, честно не разу не встречался
---
Используйте функцию (не путайте со свойством!) СправочникСсылка.ПолноеНаименование()
---
Программист 1С, в смысле? что-то не понял?
---
Посмотрите справку по этой функции. С её помощью Ваша задача решается просто и быстро.
---
Программист 1С, да спасибо конечно пригодиться но помоему не в моем случае. Я же в начале задачу описал. Просто столько методов прогнал уже планка едет. название родителей я вынимаю родителя верхнего создаю. а дальше ступор созадь родителей ниже первой не получается т.е. элемент 1 находится в групее 2 и подгруппе 3 т.е родителями являются группа2 и группа3. группу2 я создаю и присваиваю. а группу4 и далее никак
---
Рупора Абсурда на вас нет

```1c
    Функция Верхний(Элемент)
    Спр = Справочники[Элемент.Метаданные().Имя];
    Эл=Спр.НайтиПоКоду(Элемент.ПолныйКод());
    Если Элемент.ПринадлежитЭлементу(Эл) Тогда
    Возврат Спр.НайтиПоКоду(Эл).Ссылка;
    КонецЕсли;
    Возврат Вычислить("Элемент"+СтрЗаменить(Формат(0,"ЧВН=;ЧЦ="+(Элемент.Уровень())+";ЧГ=0;ЧН="),"0",".Родитель")).Ссылка;
    Стр = СтрЗаменить(Элемент.ПолныйКод(),"/"," ");
    Структура = Новый Структура;
    Структура.Вставить("Код",СтрПолучитьСтроку(Стр,1));
    Для Сч=1 По СтрЧислоСтрок(Стр) Цикл
    Выборка = Спр.Выбрать(Спр.ПустаяСсылка(),,Структура);
    Сообщить(Структура.Код);
    Пока Выборка.Следующий() Цикл
    Если Элемент.ПринадлежитЭлементу(Выборка.Ссылка) Тогда
    Возврат Выборка.Ссылка;
    КонецЕсли;
    КонецЦикла;
    Структура.Код = Структура.Код + "/" + СтрПолучитьСтроку(Стр,Сч+1);
    КонецЦикла;
    КонецФункции
```
---
smaharbA, согласен с вами но честно 10 лет не программировал. я,извиняюсь, как понял мой код можно выкинуть а этот вставить? от получает и пишет всех родичей?
---
smaharbA, выдает Ошибка при вызове метода контекста (ПринадлежитЭлементу)
Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(1306)}: Ошибка при вызове метода контекста (ПринадлежитЭлементу)
   Если СФЛЦБ.ПринадлежитЭлементу(Эл) Тогда
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.18.61): Несоответствие типов (параметр номер '1')
---
нет, это только намек
---
smaharbA, боюсь спросить на что? я примерно понимаю но блин нескольео вариантов перепробовал: по одному вообще не пишет, по второму пишет перврго родителя потом при записи 2 родителя 1-ого спускает на ступень вниз. что не так не пойму. как записать 2 родителя тоже..
---
Короче, НайтиПоНаименованию - моветон, ибо
1.Могут быть дубли по наименованию
2.Могут быть и элементы и группы с одинаковым наименованием

Если уж так хочется - используй хотя бы Код (если он уникален у тебя), а лучше - гуид элемента.
---
Ёпрст, код да уникален. так я ерархию запросом и тащу
---
наименование не уникально, вот в чем дело, ты же нигде не проверяешь, что именно найдено по наименованию.
:)
---
Ёпрст, счас как раз и пишу условие проверки на группа, полученная по ком и группа в текущей базе
---
Ну и .. используй рекурсию для создания иерархии.
---
Это, а нафига устанавливать родителя в открытой форме ????
---
И этой же форме ?
Этот код вообще откуда вызывается ?
---
Ёпрст, форма элемента. наименование в нее получается из базы2 по ком
---
mentozavr,

```1c
    Если Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1).Пустая() тогда
    НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу();
    НоваяГруппа.Наименование = НГРСФЛ1;
    НоваяГруппа.Записать();
    ЭтаФорма.родитель=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1).Ссылка
    иначе
    ЭтаФорма.родитель=Справочники.Контрагенты.НайтиПоНаименованию(НГРСФЛ1).Ссылка;
    КонецЕсли;
```

ЭтаФорма.родитель - это что вообще???
---
m-serg74, Распишу задачку может проще будет понять. Есль 2 базы база1(полная) и база2(пустая). Из формы элемента базы2 по кнопке вызывается обработка (моя) которая получает элемент по критерию поиска(он указывается в поле наименование (может полное а может 3 буквы от него). Обработка находит в базе1 элемент и передает его в базу2. Потом подтягиваются данные из регистров. И вот теперь что: Этот элемент лежит в базе1 в определенной группе и подгруппе и мне надо чтобы в базе2 он сел также как и в базе1.
---
mentozavr,
так пиши
ЭтотОбъект.Родитель = .....

нафига ЭтаФорма нужна
---
m-serg74, так я и пишу а на остальных родителей как перейти? у элемента их может быть 2 и более
---
mentozavr, первый так а остальные:

```1c
    ЭтотОбъект.Родитель = .....;

    ОбРодитель = ЭтотОбъект.Родитель.ПолучитьОбъект();
    ОбРодитель.Родитель = ...тра-ля-ля;
    ОбРодитель.Записать();
```

потом

```1c
    ОбРодитель = ЭтотОбъект.Родитель.Родитель.ПолучитьОбъект();
    ОбРодитель.Родитель = ...тра-ля-ля;
    ОбРодитель.Записать();
```

и т.д.

просто я не вдаваясь в подробности "ЭтаФорма" писал...
---
m-serg74, матюгается на
род2=ЭтотОбъект.Родитель.Родитель.ПолучитьОбъект();
по причине:
Элемент не выбран!
---
mentozavr, так а заполнен Родитель второго уровня?

ПС. Отладчик вообще не тема? посмотри что заполнено и какой тип?
---
m-serg74, я начал с верхнего. Т.е. без записи она работать не будет т.е набрать в объект все элементы потом записать
---
mentozavr, как это???? внимательно (37) посмотри... именно такая последовательность
---
m-serg74, типа того
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
НГРСФЛ1=РезультатЗапроса.Ссылка1.Description;
НГРСФЛСсылка1=РезультатЗапроса.Ссылка1;
Сообщить("группа1 "+НГРСФЛ1+НГРСФЛСсылка1);
Если РезультатЗапроса.Ссылка2<>null тогда
НГРСФЛ2=РезультатЗапроса.Ссылка2.Description;
НГРСФЛСсылка2=РезультатЗапроса.Ссылка2;
иначе прервать
КонецЕсли;
Сообщить("группа2 "+НГРСФЛ2+НГРСФЛСсылка2);
Если РезультатЗапроса.Ссылка3<>null тогда
НГРСФЛ3=РезультатЗапроса.Ссылка3.Description;
НГРСФЛСсылка3=РезультатЗапроса.Ссылка3;
иначе прервать
КонецЕсли;
Сообщить("группа3 "+НГРСФЛ3+НГРСФЛСсылка3);
Если РезультатЗапроса.Ссылка4<>null тогда
НГРСФЛ4=РезультатЗапроса.Ссылка4.Description;
НГРСФЛСсылка4=РезультатЗапроса.Ссылка4;
иначе прервать
КонецЕсли;
Сообщить("группа4 "+НГРСФЛ4+НГРСФЛСсылка3);
КонецЦикла;
//////Проверка на существование групп
ЭтотОбъект.Родитель=НГРСФЛСсылка1;
род2=ЭтотОбъект.Родитель.Родитель.ПолучитьОбъект();
род2.Родитель.Родитель=НГРСФЛСсылка2;
род2.Записать();
---
mentozavr, это вопрос или что?
---
m-serg74, кусок кода где пишутся группы. Т.е. как я тебя понял надо сначало с последней группы записываться и вверх.
---
mentozavr,

```1c
    ЭтотОбъект.Родитель=НГРСФЛСсылка1;
    род2=ЭтотОбъект.Родитель.Родитель.ПолучитьОбъект();
    род2.Родитель.Родитель=НГРСФЛСсылка2;
    род2.Записать();
```

красное убарть
---
m-serg74, т.е. оставить род2=ЭтотОбъект.Родитель чтоль;
---
m-serg74, похоже начал въезжать. у меня НГРСФЛСсылка1 приходит как Ком-объект может в это проблема
---
+ (37) m-serg74, сам ЭтотОбъект - Записать не забудь...
---
m-serg74, (38) mentozavr,

Пока ТекущийОбъект.Родитель<>Справочники.ХХХ.ПустаяСсылка() Цикл
     ТекущийОбъект=ТекущийОбъект.Родитель.ПолучитьОбъект()
---
AnryMc, с чего он будет неопределено - он будет незаполненным, а ему надо заполнить...

(50) mentozavr, сначала Родитель элемента, потом Родитель Родителя элемента и т.д.
---
m-serg74, тоесть есть структура
Группа1
--Группа2
---Группа3 - в ней элемент.
Значит сначала надо записать группу3 потом группу2 и в конце группа1 так?
---
m-serg74,

с чего он будет неопределено - он будет незаполненным, а ему надо заполнить...

Он будет пустая ссылка...
---
AnryMc, а можно по подробнее
---
mentozavr, да что ты слушаешь... пишут лишь бы что нить написать
---
m-serg74, да понял я теперь
---
m-serg74, а можно присвоить родителей и не записывать объект. что-то базу засорять экспериментами не охота
---
mentozavr, если это эсперимент - сделай копию
---
m-serg74, этот эксперимент потом внедрится в реальную базу должен будет. А так dt-шек вагон
---
mentozavr, ну и пробуй на копии, когда заработает правильно вкрячишь в рабочую... и все
---
m-serg74, так и делаю. задолбался базу переустанавливать
---
m-serg74, файлик
---
AnryMc, это ты сказал неопределено, а я сказал "не заполненным", т.е. как раз именно - ПустаяСсылка

только ТСу надо отталкиваться не от заполненности Родителя, а от наличия оных в СОМ базе
---
AnryMc, (55) m-serg74, и господа блин у меня объект приходит по ком
---
mentozavr, да по барабану как он у тебя ходит из СОМ объекта бери Наименование или Код или еще чего там и по нему ищи в своей базе если не нашел создавай с нужными реквизитами, записывай и подставляй ее.
(56) mentozavr, внимательно прочитай (55.2) там понятно вроде все написано
---
m-serg74, тоесть с последней группы в цикле прогнать условие через поиск по коду или наименованию
---
mentozavr, я не знаю что ты имеешь ввиду "первая", "последняя"....
сначала ЭтотОбъект.Родитель
потом ЭтотОбъект.Родитель.Родитель
потом ЭтотОбъект.Родитель.Родитель.Родитель
и ни как иначе
---
m-serg74,
так блин
сначала ЭтотОбъект.Родитель - его я пишу

"потом ЭтотОбъект.Родитель.Родитель
потом ЭтотОбъект.Родитель.Родитель.Родитель" - а эти никак. поле Родитель недоступно для записи и хоть ты тресни
---
Так тут ты опять пытаешься через ссылку писать

"потом ЭтотОбъект.Родитель.Родитель
потом ЭтотОбъект.Родитель.Родитель.Родитель"

здесь опять надо объект получать

ОбъектВерхнегоРодителя = ЭтотОбъект.Родитель.ПолучитьОбъект();
ОбъектВерхнегоРодителя.Родитель = ЧтоТам ;

ОбъектБолееВерхнегоРодителя = ОбъектВерхнегоРодителя.Родитель.ПолучитьОбъект();
ОбъектБолееВерхнегоРодителя.Родитель = ЕщеЧтОтам ;

и .т д. Ну и засунь это в рекусрию.
---
+ Ну и записывать.
---
viktor_vv, спасибо. а записывать надо после каждого присвоения получается и пред тем как сам объект тоже записать надоть.
У нас же родитель самого верхнего уровня находится в отладчике как Объект.+родитель.+Родитель(он и есть?)
---
m-serg74, А объект получается должен быть записан? а если я пишу его он пишется в корневую группу
---
mentozavr, в каком именно месте? Тим Вьюер есть?
---
m-serg74, у нас в сетке он закрыт
в месте после присвоения ЭтотОбъект.Родитель
---
mentozavr, кого то мне напоминаете как ТВ можно закрыть но на Инфостарте сидеть? или я чего то не шарю?
---
m-serg74, у нас блокировки сисадмином наставлены на ТВ он его презирает. я даже установить его не могу. Сисадмин больно ушлый у нас
---
mentozavr, ТВ сейчас без установки работает если чё... есть ammyy.com...
---
m-serg74, пробовал блин. самому надо связь с домом держать. даже не запускается. сисадмин жлоб.
птичка есть такая - обломинго
HOST - ammyy.com[70.38.40.185]; PORT - 80
Connection timed out
Traffic Inspector HTTP/FTP/Proxy server (2.0.1.729)
GW12 23.05.13 13:23
---
А занафига всё ЭТО писать в форме элемента ?
Заняться нечем ?
Не проще ли в обработке слепить что нужно сразу ?
---
Ёпрст, т.е. полностью объект состряпать? заняться то есть с чем только сверху напрягают этим
---
Ёпрст, в обработке выбирать элемент, а потом для него делать теже действия, если это не массовая перегрузка нафига обработка?
---
Ладно, моя-твоя непонимать, кипятите дальше.
:)
---
Ёпрст, да все понимать