1. PhoenixAOD 57 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 57 23.12.16 01:59 Сейчас в теме
Так же выдает пустые строки
5. PhoenixAOD 57 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 57 11.01.17 01:46 Сейчас в теме
(6) Спасибо) очень удобно)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата от 70 000 руб. до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Временный (на проект)