8.х Группировка

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Romik, 21 сен 2009.

  1. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Помогите правильно сгруппировать данные!
    В общем в данных получается Объект = Наименование товара. Наименование = Поставщик. Родитель = Родитель Объекта.
    Суть в том, что имеется несколько поставщиков и не сколько одинаковых наименований родителей.
    С помощью группировки нужно совместить данные в определённу структуру.

    |- Родитель (если имеется два родителя с одним наименование Например Каша), то всё содержимое
    | записахть в одну)
    |--Поставщик (Наименование, поставщиков не сколько, поэтому необходимо в них поместить товар
    данного поставщика.)
    |--- Тип (Объект)

    Код:
     СписокПроизводителей = Новый СписокЗначений;
    СписокПроизводителей.Добавить(Справочники.ЗначенияСвойствОбъектов.НайтиПоКоду("00661"));
    СписокПроизводителей.Добавить(Справочники.ЗначенияСвойствОбъектов.НайтиПоКоду("00659"));
    
    
    Запрос = Новый Запрос ("ВЫБРАТЬ
    |	ЗначенияСвойствОбъектов.Объект КАК Объект,
    |	ЗначенияСвойствОбъектов.Значение.Наименование КАК Наименование,
    |	ЗначенияСвойствОбъектов.Объект.Родитель КАК Родитель
    |ИЗ
    |	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |ГДЕ
    |	ЗначенияСвойствОбъектов.Значение В ИЕРАРХИИ(&Значение)
    |ИТОГИ ПО
    |	Родитель");
    
    Запрос.УстановитьПараметр("Значение",СписокПроизводителей);
    РезультатЗапроса = Запрос.Выполнить();
    
    ТЗ = Запрос.Выполнить().Выгрузить();
    ТЗ.ВыбратьСтроку();
    
    ОбходПоРодителю         = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Родитель");
    
    Водка = Справочники.Номенклатура.НайтиПоНаименованию("Водка");
    
    ТаблДок.НачатьАвтогруппировкуСтрок();
    Пока ОбходПоРодителю.Следующий() Цикл                       	
    
    Область.Параметры.Родитель 	= ОбходПоРодителю.Родитель;
    
    ТаблДок.Вывести(Область,ОбходПоРодителю.Уровень()); 
    
    ОбходПоПроизводителю = ОбходПоРодителю.Выбрать();
    Пока ОбходПоПроизводителю.Следующий() <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span> 
    Область2.Параметры.Производитель 						  	= ОбходПоПроизводителю.Наименование;
    ТаблДок.Вывести(Область2, ОбходПоПроизводителю.Уровень()); 
    
    ОбходПоНаименованию = ОбходПоПроизводителю.Выбрать();
    Пока ОбходПоНаименованию.Следующий() <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span> 
    Область3.Параметры.Наименование 							= ОбходПоНаименованию.Объект;
    ТаблДок.Вывести(Область3, ОбходПоНаименованию.Уровень()); 
    
    КонецЦикла;
    КонецЦикла;
    КонецЦикла;
    
    
    

Поделиться этой страницей