|
Обход по группировкам в запросе | ☑ | ||
---|---|---|---|---|
0
Flyd-s
22.12.11
✎
11:17
|
Пишу вот такой код:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура, | ХозрасчетныйОстаткиИОбороты.Регистратор, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток) КАК СумНач, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СумПр, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СумРасх, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток) КАК СумКон, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КолНач, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК КолПр, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК КолРасх, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КолКон |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&СчетТоваров), , ) КАК ХозрасчетныйОстаткиИОбороты |ГДЕ | ХозрасчетныйОстаткиИОбороты.Регистратор <> НЕОПРЕДЕЛЕНО | |СГРУППИРОВАТЬ ПО | ХозрасчетныйОстаткиИОбороты.Субконто1, | ХозрасчетныйОстаткиИОбороты.Регистратор"; Запрос.УстановитьПараметр("ДатаНач", период.ДатаНачала); Запрос.УстановитьПараметр("ДатаКон", период.ДатаОкончания); Запрос.УстановитьПараметр("СчетТоваров", ПланыСчетов.Хозрасчетный.Товары); Если ЗначениеЗаполнено(Номенклатура) Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст,"//Субконто1", "Субконто1"); Запрос.УстановитьПараметр("Номенклатура", Номенклатура); КонецЕсли; ТабДок = Новый ТабличныйДокумент; ВыборкаНоменклатуры = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Макет = ПолучитьМакет("Макет"); ОбластьСтрока = Макет.ПолучитьОбласть("Субконто1"); ОбластьПериод = Макет.ПолучитьОбласть("Период"); ТабДок.НачатьАвтогруппировкуСтрок(); Пока ВыборкаНоменклатуры.Следующий() Цикл ОбластьСтрока.Параметры.Заполнить(ВыборкаНоменклатуры); ТабДок.Вывести(ОбластьСтрока, ВыборкаНоменклатуры.Уровень()); ВыборкаРегистратор = ВыборкаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.Прямой); пока ВыборкаРегистратор.Следующий() Цикл ОбластьПериод.Параметры.Заполнить(ВыборкаРегистратор); ТабДок.Вывести(Областьпериод, ВыборкаНоменклатуры.Уровень()); КонецЦикла; КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ---------- По-идее он должен группировать по номенклатуре и регистратору и выводить сначала список номенклатуры, потом расшифровку по регистратору. Но вместо этого показывает вот такую кашу: http://s017.radikal.ru/i444/1112/f4/61bc476ae86e.jpg |
|||
1
Ненавижу 1С
гуру
22.12.11
✎
11:18
|
Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
1С вас вводит в заблуждение, обходить по группировкам можно когда есть итоги |
|||
2
zbv
22.12.11
✎
11:18
|
СГРУППИРОВАТЬ ПО - это типа Свернуть для ТЗ.
тебе ИТОГИ ПО нужны |
|||
3
Flyd-s
22.12.11
✎
11:30
|
спасибо, уже лучше.
Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура, | ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СумНач, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СумПр, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СумРасх, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СумКон, | ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК КолНач, | ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КолПр, | ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КолРасх, | ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КолКон |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&СчетТоваров), , ) КАК ХозрасчетныйОстаткиИОбороты |ГДЕ | ХозрасчетныйОстаткиИОбороты.Регистратор <> НЕОПРЕДЕЛЕНО |ИТОГИ | СУММА(СумНач), | СУММА(СумПр), | СУММА(СумРасх), | СУММА(СумКон), | СУММА(КолНач), | СУММА(КолПр), | СУММА(КолРасх), | СУММА(КолКон) |ПО | Номенклатура, | Регистратор"; Но почему-то список документов задвоен |
|||
4
hhhh
22.12.11
✎
11:36
|
а если так?
ВыборкаРегистратор = ВыборкаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); а то получается, что вы документ два раза выводите. |
|||
5
Flyd-s
22.12.11
✎
11:43
|
спасибо, работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |