Имя: Пароль:
1C
1С v8
Работа с ДеревомЗначений
0 Nata3711
 
04.06.15
13:58
Процедура КнопкаСформироватьНажатие(Кнопка)
    // Вставить содержимое обработчика.


    Запрос = Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    ТоварыНаСкладахОстатки.Склад,
                 |    ТоварыНаСкладахОстатки.Номенклатура,
                 |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                 |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                 |    0 КАК Резерв,
                 |    0 КАК Лимит,
                 |    0 КАК Заказ,
                 |    0 КАК ЗаказПокупателяКонтрагент
                 |ПОМЕСТИТЬ ОстатокВТ
                 |ИЗ
                 |    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
                 |    ТоварыНаСкладахОстатки.Номенклатура,
                 |    ТоварыНаСкладахОстатки.Склад
                 |
                 |ОБЪЕДИНИТЬ ВСЕ
                 |
                 |ВЫБРАТЬ
                 |    ТоварыВРезервеНаСкладахОстатки.Склад,
                 |    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
                 |    ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры,
                 |    0,
                 |    СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток)КАК Резерв,
                 |    0,
                 |    0,
                 |    0
                 |ИЗ
                 |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыВРезервеНаСкладахОстатки
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры,
                 |    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
                 |    ТоварыВРезервеНаСкладахОстатки.Склад
                 |
                 |ОБЪЕДИНИТЬ ВСЕ
                 |
                 |ВЫБРАТЬ
                 |    ЛимитОстатковПоТоварам.Склад,
                 |    ЛимитОстатковПоТоварам.Номенклатура,
                 |    ЛимитОстатковПоТоварам.ХарактеристикаНоменклатуры,
                 |    0,
                 |    0,
                 |    СУММА(ЛимитОстатковПоТоварам.Количество)КАК Лимит,
                 |    0,
                 |    0
                 |ИЗ
                 |    РегистрСведений.ЛимитОстатковПоТоварам КАК ЛимитОстатковПоТоварам
                 |ГДЕ
                 |    ЛимитОстатковПоТоварам.Склад = &Склад
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ЛимитОстатковПоТоварам.ХарактеристикаНоменклатуры,
                 |    ЛимитОстатковПоТоварам.Номенклатура,
                 |    ЛимитОстатковПоТоварам.Склад
                 |
                 |ОБЪЕДИНИТЬ ВСЕ
                 |
                 |ВЫБРАТЬ
                 |    0,
                 |    ЗаказыПокупателейОстатки.Номенклатура,
                 |    ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры,
                 |    0,
                 |    0,
                 |    0,
                 |    СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток)КАК ЗаказПокупателяКонтрагент,
                 |    ЗаказыПокупателейОстатки.ЗаказПокупателя.Контрагент
                 |ИЗ
                 |    РегистрНакопления.ЗаказыПокупателей.Остатки (, ЗаказПокупателя.Контрагент = &Контрагент) КАК ЗаказыПокупателейОстатки
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры,
                 |    ЗаказыПокупателейОстатки.Номенклатура,
                 |    ЗаказыПокупателейОстатки.ЗаказПокупателя.Контрагент
                 |;
                 |
                ////////////////////////////////////////////////////////////////////////////////


                 |ВЫБРАТЬ
                 |    ОстатокВТ.Номенклатура,
                 |    ОстатокВТ.Склад,
                 |    ОстатокВТ.ХарактеристикаНоменклатуры,
                 |    ОстатокВТ.ЗаказПокупателяКонтрагент,
                 |    СУММА(ОстатокВТ.Остаток) КАК Остаток,
                 |    СУММА(ОстатокВТ.Резерв) КАК Резерв,
                 |    СУММА(ОстатокВТ.Лимит) КАК Лимит,
                 |    СУММА(ОстатокВТ.Заказ) КАК Заказ
                 |ИЗ
                 |    ОстатокВТ КАК ОстатокВТ
                 |ГДЕ
                 |    ОстатокВТ.Номенклатура.Ссылка В ИЕРАРХИИ (&Номенклатура)
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ОстатокВТ.Номенклатура,
                 |    ОстатокВТ.ХарактеристикаНоменклатуры,
                 |    ОстатокВТ.Склад,
                 |    ОстатокВТ.ЗаказПокупателяКонтрагент";
                
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("СписокЗначений", Номенклатура);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
                    
Результат = Запрос.Выполнить();
ДеревоЗначений=Результат.Выгрузить(ОбходРезультатаЗапроса.По ГруппировкамСИЕрархией);
ДеревоЗначений.ВыбратьСтроку();
ЭлементыФормы.ДеревоЗначений.СоздатьКолонки();

    
КонецПроцедуры


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

Мне надо Чтобы в дереве значений была такая ГРУППИРОВКА:

Родитель1               Кол-во1     Кол-во2
Родитель1.1
  Номенклатура1
    Характеристика     10            20

  Номенклатура2

    Характеристика     5             3
  ...
Родитель1.2

  Номенклатура1
   Характеристика      8             4

  Номенклатура2
   Характеристика     15             10
  ...
1 Nata3711
 
04.06.15
13:58
Что мне на до вписать в модуль??????
2 asady
 
04.06.15
13:59
вместо сгруппировать
юзай ИТОГИ
3 Nata3711
 
04.06.15
14:00
Час попробую.
4 Nata3711
 
04.06.15
14:08
Пишет Ошибка при вызове метода контекста(Выполнить)....

<<?>>ОстатокВТ.Номенклатура
5 Nata3711
 
04.06.15
14:08
И пишет ....Поле не входит в группу "ОстатокВТ.Номенклатура"
6 Ёпрст
 
гуру
04.06.15
14:13
(5)выкинь группировать и агрегатные функции, в конструкторе задействуй ИТОГИ.. и нужные функции
7 Vladal
 
04.06.15
14:45
(0) Посмотри пример - http://catalog.mista.ru/public/72380/
8 Vladal
 
04.06.15
14:46
Там обход дерева при печати, пересчёт итогов группировки при интерактивном изменении строки.
(хотя сейчас это уже и не актуально, всё на СКД).
9 Nata3711
 
04.06.15
15:10
////////////////////////////////////////////////////////////////////////////////



                 |ВЫБРАТЬ
                 |    ОстатокВТ.Номенклатура,
                 |    ОстатокВТ.Склад,
                 |    ОстатокВТ.ХарактеристикаНоменклатуры,
                 |    ОстатокВТ.ЗаказПокупателяКонтрагент,
                 |    ОстатокВТ.Остаток КАК Остаток,
                 |    ОстатокВТ.Резерв КАК Резерв,
                 |    ОстатокВТ.Лимит КАК Лимит,
                 |    ОстатокВТ.Заказ КАК Заказ
                 |ИЗ
                 |    ОстатокВТ КАК ОстатокВТ
                 |ГДЕ
                 |    ОстатокВТ.Номенклатура.Ссылка В ИЕРАРХИИ (&Номенклатура)
                 |
                 |ИТОГИ
                 | СУММА(ОстатокВТ.Остаток);
                 | СУММА(ОстатокВТ.Резерв);
                 | СУММА(ОстатокВТ.Лимит);
                 | СУММА(ОстатокВТ.Заказ);

                 ПО
                 |    ОстатокВТ.Склад,
                 |    ОстатокВТ.Номенклатура,
                 |    ОстатокВТ.ХарактеристикаНоменклатуры";
                
                
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
                    
Результат = Запрос.Выполнить();
ДеревоЗначений=Результат.Выгрузить(ОбходРезультатаЗапроса.По ГруппировкамСИЕрархией);
ДеревоЗначений.ВыбратьСтроку();
ЭлементыФормы.ДеревоЗначений.СоздатьКолонки();
10 Nata3711
 
04.06.15
15:12
Исправила модуль.....Только как мне убрать колонку СКЛАД И Итого мне не нужна по этому складу ????????
11 Nata3711
 
04.06.15
15:14
Корректировачка к модулю

ПО
...
ОстатокВТ.Номенлатура ИЕРАРХИЯ,
....
12 Nata3711
 
04.06.15
15:20
|ВЫБРАТЬ
                 |    ОстатокВТ.Номенклатура,
                 |    ОстатокВТ.Склад,
                 |    ОстатокВТ.ХарактеристикаНоменклатуры,
                 |    ОстатокВТ.ЗаказПокупателяКонтрагент,
                 |    ОстатокВТ.Остаток КАК Остаток,
                 |    ОстатокВТ.Резерв КАК Резерв,
                 |    ОстатокВТ.Лимит КАК Лимит,
                 |    ОстатокВТ.Заказ КАК Заказ
                 |ИЗ
                 |    ОстатокВТ КАК ОстатокВТ
                 |ГДЕ
                 |    ОстатокВТ.Номенклатура.Ссылка В ИЕРАРХИИ (&Номенклатура)
                 |
                 |ИТОГИ
                 | СУММА(ОстатокВТ.Остаток);
                 | СУММА(ОстатокВТ.Резерв);
                 | СУММА(ОстатокВТ.Лимит);
                 | СУММА(ОстатокВТ.Заказ);

                 ПО
                 |    ОстатокВТ.Номенклатура ИЕРАРХИЯ,
                 |    ОстатокВТ.ХарактеристикаНоменклатуры";
                
                
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
                    
Результат = Запрос.Выполнить();
ДеревоЗначений=Результат.Выгрузить(ОбходРезультатаЗапроса.По ГруппировкамСИЕрархией);
ДеревоЗначений.ВыбратьСтроку();
ЭлементыФормы.ДеревоЗначений.СоздатьКолонки();


КАК Теперь сделать чтобы Колонка СКЛАД не был виден в дереве значений
13 D_E_S_131
 
04.06.15
15:24
(12) Не выбирать "Склад" в итоги или вообще не выбирать из ВТ.
14 Nata3711
 
04.06.15
15:36
Всем Огромное СПАСИБО за помощь

И остался небольшой ньюанс... КАК Сделать чтобы при открытии отчета т.е. формирования отчета Номенклатура не сворачивалась. Так как надо разворачивать-дополнительная работа для пользователя...
15 D_E_S_131
 
04.06.15
15:58
Ctrl + Shift + "+"
16 r_i_n_i_k
 
04.06.15
16:18
(14) начальное отображение дерева - "разворачивать все уровни" или "разворачивать верхний уровень"
17 Nata3711
 
04.06.15
16:30
Разворачивать верхний уровень
18 Nata3711
 
04.06.15
16:33
r_i_n_i_k - если отозвался значит что то знаешь...ПОДСКАЖИ  ПОЖ. ПЛИЗЗЗЗЗ....(верхние уровни кроме последнего)
19 r_i_n_i_k
 
04.06.15
17:05
(18) у табличного поля есть свойство "начальное отображения дерева". Это если табличное поле имеет тип ДеревоЗначений. Если тип СписокЗначений, то это свойство выглядит как "Начальное отображение списка"
20 Nata3711
 
04.06.15
21:41
А как сделать чтоб последний узел не разворачивался в дереве значений.... Где в свойстве стоит "Раскрывать все уровни"?????????
21 Nata3711
 
04.06.15
21:44
У меня получается что характеристика одна и таже а количество в разных строках т.е не сворачиваются