Не могу получить родителя верхнего уровня

1. PhoenixAOD 62 22.12.16 09:36 Сейчас в теме
Доброго времени суток всем читающим! Люди помогите разобраться с проблемкой, пишу внешнюю обработку по выгрузке из 1с 7.7 Рарус в SetRetail 10, выгружается номенклатура по остаткам на точку актуальности. Все заполняется кроме родителя верхнего уровня, делаю вот так:
	ВерхРодитель =ЗапросОст.Номенклатура;	
			Пока ПустоеЗначение(ВерхРодитель.Родитель) = 0 Цикл
				ВеткаРодитель = ВеткаГруппа.СоздатьПодчиненныйЭлемент("parent-group");
				ВеткаРодитель.УстановитьАтрибут("id", ВерхРодитель.Код);
				ВеткаРодительИмя = ВеткаРодитель.СоздатьПодчиненныйЭлемент("name");
				ВеткаРодительИмя.Значение = ВерхРодитель.Наименование;
			КонецЦикла;

в отладчике ЗапросОст.Номенклатура отображается корректно и всех родителей можно проследить, а вот ВерхРодитель.Код и ВерхРодитель.Наименование пустые. Что я делаю не так?
По теме из базы знаний
Найденные решения
6. Sokar 09.01.17 15:48 Сейчас в теме
можно использовать Справочник.Уровень

Спр=СздатьОъект("Справочник.Номенклатура");
Спр.НайтиЭлемент (СвТмп);
Уров=Спр.Уровень();
	Если Уров>1 Тогда
		Пока Уров<>1 Цикл
	   		Спр.НайтиЭлемент(Спр.Родитель);
			ЗначРодитель=Спр.Наименование;
			Если Спр.ЭтоГруппа()=1 Тогда
				Грп=ЗначРодитель;
			КонецЕсли;
			Сообщить("Родитель="+Грп); //Грп - это то, что вам нужно (наименование родителя)
			Уров=Уров-1;
		КонецЦикла;
	КонецЕсли;
Показать

Этот код использован мной неоднократно при написании различных отчетов в 1с 7.7.
kulkrise; +1 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. YNik 22.12.16 20:56 Сейчас в теме
(1)
            ВерхРодитель =ЗапросОст.Номенклатура;    
            Пока ВерхРодитель.Выбран() Цикл
                ВеткаРодитель = ВеткаГруппа.СоздатьПодчиненныйЭлемент("parent-group");
                ВеткаРодитель.УстановитьАтрибут("id", ВерхРодитель.Код);
                ВеткаРодительИмя = ВеткаРодитель.СоздатьПодчиненныйЭлемент("name");
                ВеткаРодительИмя.Значение = ВерхРодитель.Наименование;
                ВерхРодитель =ВерхРодитель.Родитель;    
            КонецЦикла;

Если саму номенклатуру из ЗапросОст.Номенклатура не надо включать, то первый оператор заменить на:
ВерхРодитель =ЗапросОст.Номенклатура.Родитель; 
2. minarenko 22.12.16 12:29 Сейчас в теме
Используй Выбран() вместо ПустоеЗначение(). ПустоеЗначение глючит в некоторых случаях.
4. PhoenixAOD 62 23.12.16 01:59 Сейчас в теме
Так же выдает пустые строки
5. PhoenixAOD 62 23.12.16 02:12 Сейчас в теме
Но в отладке показывает, что есть значения. сделал вот так
ВерхРодитель = ЗапросОст.Номенклатура;	
			Если ВерхРодитель.Выбран() = 0 Тогда
				ВерхРодитель =ВерхРодитель.Родитель;
				ВеткаРодитель = ВеткаГруппа.СоздатьПодчиненныйЭлемент("parent-group");
				ВеткаРодитель.УстановитьАтрибут("id", ВерхРодитель.Код);
				ВеткаРодительИмя = ВеткаРодитель.СоздатьПодчиненныйЭлемент("name");
				ВеткаРодительИмя.Значение = ВерхРодитель.Наименование; 
			КонецЕсли;
6. Sokar 09.01.17 15:48 Сейчас в теме
можно использовать Справочник.Уровень

Спр=СздатьОъект("Справочник.Номенклатура");
Спр.НайтиЭлемент (СвТмп);
Уров=Спр.Уровень();
	Если Уров>1 Тогда
		Пока Уров<>1 Цикл
	   		Спр.НайтиЭлемент(Спр.Родитель);
			ЗначРодитель=Спр.Наименование;
			Если Спр.ЭтоГруппа()=1 Тогда
				Грп=ЗначРодитель;
			КонецЕсли;
			Сообщить("Родитель="+Грп); //Грп - это то, что вам нужно (наименование родителя)
			Уров=Уров-1;
		КонецЦикла;
	КонецЕсли;
Показать

Этот код использован мной неоднократно при написании различных отчетов в 1с 7.7.
kulkrise; +1 Ответить
7. PhoenixAOD 62 11.01.17 01:46 Сейчас в теме
(6) Спасибо) очень удобно)
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день