Имя: Пароль:
1C
1С v8
Работа с ДеревоЗначений
0 Nata3711
 
05.06.15
11:50
Процедура КнопкаСформироватьНажатие(Кнопка)
    
    Запрос = Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    ТоварыНаСкладахОстатки.Склад,
                 |    ТоварыНаСкладахОстатки.Номенклатура,
                 |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                 |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                 |    0 КАК Резерв,
                 |    0 КАК Лимит,
                 |    0 КАК Заказ,
                 |    0 КАК ЗаказПокупателяКонтрагент,
                 |    ТоварыНаСкладахОстатки.Номенклатура.Родитель
                 |ПОМЕСТИТЬ ОстатокВТ
                 |ИЗ
                 |    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
                 |    ТоварыНаСкладахОстатки.Номенклатура,
                 |    ТоварыНаСкладахОстатки.Склад,
                 |    ТоварыНаСкладахОстатки.Номенклатура.Родитель
                 |
                 |ОБЪЕДИНИТЬ ВСЕ
                 |
                 |ВЫБРАТЬ
                 |    ТоварыВРезервеНаСкладахОстатки.Склад,
                 |    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
                 |    ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры,
                 |    0,
                 |    СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток),
                 |    0,
                 |    0,
                 |    0,
                 |    ТоварыВРезервеНаСкладахОстатки.Номенклатура.Родитель
                 |ИЗ
                 |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыВРезервеНаСкладахОстатки
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры,
                 |    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
                 |    ТоварыВРезервеНаСкладахОстатки.Склад,
                 |    ТоварыВРезервеНаСкладахОстатки.Номенклатура.Родитель
                 |
                 |ОБЪЕДИНИТЬ ВСЕ
                 |
                 |ВЫБРАТЬ
                 |    ЛимитОстатковПоТоварам.Склад,
                 |    ЛимитОстатковПоТоварам.Номенклатура,
                 |    ЛимитОстатковПоТоварам.ХарактеристикаНоменклатуры,
                 |    0,
                 |    0,
                 |    СУММА(ЛимитОстатковПоТоварам.Количество),
                 |    0,
                 |    0,
                 |    ЛимитОстатковПоТоварам.Номенклатура.Родитель
                 |ИЗ
                 |    РегистрСведений.ЛимитОстатковПоТоварам КАК ЛимитОстатковПоТоварам
                 |ГДЕ
                 |    ЛимитОстатковПоТоварам.Склад = &Склад
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ЛимитОстатковПоТоварам.ХарактеристикаНоменклатуры,
                 |    ЛимитОстатковПоТоварам.Номенклатура,
                 |    ЛимитОстатковПоТоварам.Склад,
                 |    ЛимитОстатковПоТоварам.Номенклатура.Родитель
                 |
                 |ОБЪЕДИНИТЬ ВСЕ
                 |
                 |ВЫБРАТЬ
                 |    0,
                 |    ЗаказыПокупателейОстатки.Номенклатура,
                 |    ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры,
                 |    0,
                 |    0,
                 |    0,
                 |    СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток),
                 |    ЗаказыПокупателейОстатки.ЗаказПокупателя.Контрагент,
                 |    ЗаказыПокупателейОстатки.Номенклатура.Родитель
                 |ИЗ
                 |    РегистрНакопления.ЗаказыПокупателей.Остатки(, ЗаказПокупателя.Контрагент = &Контрагент) КАК ЗаказыПокупателейОстатки
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры,
                 |    ЗаказыПокупателейОстатки.Номенклатура,
                 |    ЗаказыПокупателейОстатки.ЗаказПокупателя.Контрагент,
                 |    ЗаказыПокупателейОстатки.Номенклатура.Родитель
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 |    ОстатокВТ.Номенклатура КАК Номенклатура,
                 |    ОстатокВТ.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                 |    ОстатокВТ.Остаток КАК Остаток,
                 |    ОстатокВТ.Резерв КАК Резерв,
                 |    ОстатокВТ.Остаток - ОстатокВТ.Резерв КАК СвобОст,
                 |    ОстатокВТ.Лимит КАК Лимит,
                 |    ОстатокВТ.Заказ КАК Заказ,
                   |    ОстатокВТ.Остаток - ОстатокВТ.Резерв+ОстатокВТ.Заказ-ОстатокВТ.Лимит КАК Дефицит
                 |ИЗ
                 |    ОстатокВТ КАК ОстатокВТ
                 |ГДЕ
                 |    ОстатокВТ.Номенклатура.Ссылка В ИЕРАРХИИ(&Номенклатура)
                 |ИТОГИ
                 |    СУММА(Остаток),
                 |    СУММА(Резерв),
                 |    СУММА(Лимит),
                 |    СУММА(Заказ),
                 |    СУММА(СвобОст),
                 |    СУММА(Дефицит)
                 |ПО
                 |    Номенклатура ИЕРАРХИЯ,
                 |    ХарактеристикаНоменклатуры";    
                



                
                    

УсловиеНоменклатуры = "    Номенклатура "+ПолучитьУсловиеЗапроса(ЭтаФорма, "Номенклатура")+" (&Номенклатура)";
Запрос.УстановитьПараметр("Номенклатура", ЭлементыФормы.Номенклатура.Значение);

                
Запрос.УстановитьПараметр("Склад", Склад);
//Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Контрагент", Контрагент);

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


Подскажите, пожалуйста..........

КАК сделать чтоб напротив каждой "характеристики номенклатуры" "количество" каждой колонки стояли в одном ряду.........

На данный момент ПОЛУЧАЕТСЯ что при развертывания последнего узла"характеристики номенклатуры" (например: размер48) становится несколько и "количества" каждой колонки стоят на разных строках.....
1 Nexux
 
05.06.15
11:57
делать доп. поле
2 Nata3711
 
05.06.15
11:59
А по конкретнее можно?
3 Nata3711
 
05.06.15
12:25
Никто больше не подскажет????????
4 butterbean
 
05.06.15
12:27
(0) добавь в запрос группировку по номенклатуре и характеристике с суммированием остатков, резервов и т.п. + убери итог по характеристике
5 D_E_S_131
 
05.06.15
12:30
А чего условие по номенклатуре на данные ВТ накладывается? Не оптимальнее к остаткам применить, что бы лишнее из базы не выбиралось (тем более там виртуальные таблицы используются).
6 LordCMEPTb
 
05.06.15
12:32
(0) Судя по тексту в первом запросе добавляются детальные записи, сгруппированные в рамках своей части, а судя по желанию автора требуется их сгруппировать в общем счете...
Тут либо выносить в подзапрос, либо во втором запросе группировать.
7 Nata3711
 
05.06.15
12:47
Всем Спасибо Огромное!!!!
Наконец то.......
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.