1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
|
1 | |
Группировка В Запросе11.03.2012, 19:42. Показов 13893. Ответов 5
Метки нет (Все метки)
Совсем измучался с запросом. Запрос простой, но могу красиво выбрать результаты.
Сам запрос: Код ( (Unknown Language)): Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | БухИтогиОстаткиИОбороты.Счет КАК Счет, | БухИтогиОстаткиИОбороты.Счет.Код КАК СчетКод, | БухИтогиОстаткиИОбороты.Субконто1 КАК Субконто1, | БухИтогиОстаткиИОбороты.Субконто2 КАК Субконто2, | БухИтогиОстаткиИОбороты.Валюта КАК Валюта1, | БухИтогиОстаткиИОбороты.Валюта КАК Валюта2, | БухИтогиОстаткиИОбороты.СуммаРНачальныйОстатокДт КАК НачРубДт, | БухИтогиОстаткиИОбороты.СуммаРНачальныйОстатокКт КАК НачРубКт, ......... |ИЗ | РегистрБухгалтерии.БухИтоги.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В ИЕРАРХИИ (&Счет), , ) КАК БухИтогиОстаткиИОбороты |ИТОГИ | СУММА(НачРубДт), | СУММА(НачРубКт), ........... |ПО | Субконто1 ИЕРАРХИЯ, | Валюта КАК Валюта1, | Субконто2 ИЕРАРХИЯ, | Валюта КАК Валюта2, |АВТОУПОРЯДОЧИВАНИЕ |;"; В чем задача: Вывести Субконто поочередно. Под каждым его валюты. Но необходимо по группировкам Валюта сделать 2 прохода. Пример приведу с 60 счетом, имеющим 2 субконто Клиент 1 - рубль - доллар Договор 11 Клиента 1 - рубль - доллар Договор 12 Клиента 1 - рубль - доллар Клиент 2 - рубль - доллар Договор 21 Клиента 2 - рубль - доллар Договор 22 Клиента 2 - рубль - доллар Как я выбираю: Код ( (Unknown Language)): Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыбратьСубконто(Выборка); //---------------------------------------------------------- // Процедура ВыбратьСубконто(Выборка, Макет, ДокументРезультат) Пока Выборка.Следующий() Цикл ИмяГруппировки = Выборка.Группировка(); Субконто = Выборка[ИмяГруппировки]; Сообщить(""+Субконто+ " "+Выборка.ТипЗаписи()); // Валюта Если Входит(ИмяГруппировки, "Субконто") И Выборка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоГруппировке Тогда ВыбратьВалюты(Выборка, Макет, ДокументРезультат); Иначе Продолжить; КонецЕсли; ВыбратьСубконто(Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам), Макет, ДокументРезультат); КонецЦикла; // Результат КонецПроцедуры // ВыбратьСубконто //---------------------------------------------------------- Процедура ВыбратьВалюты(Выборка, Макет, ДокументРезультат) ВыборкаВалют = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Валюта1,Валюта2,Валюта3,Валюта4"); Пока ВыборкаВалют.Следующий() Цикл ИмяГруппировки = ВыборкаВалют.Группировка(); Валюта = ВыборкаВалют[ИмяГруппировки]; Сообщить(" Валюта:" + Валюта); КонецЦикла; // ВыборкаВалют ВыборкаВалют = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Валюта1,Валюта2,Валюта3,Валюта4"); Пока ВыборкаВалют.Следующий() Цикл ИмяГруппировки = ВыборкаВалют.Группировка(); Валюта = ВыборкаВалют[ИмяГруппировки]; Сообщить(" Валюта:" + Валюта); КонецЦикла; // ВыборкаВалют КонецПроцедуры // ВыбратьВалюты В чем бяка: * Мне надо делать 2 прохода по валютам. На первом я выясняю, а нужно ли их вообще выводить. * Как я понял, Субконто2 подчинено группировке Валюта. И если Валюту не выберу, то группировка Субкотно второго и ниже уровня и не выбирается. * Пока не было валют, а были только субконто отлично работал и Простой порядок обхода. Хорошо им обойтись. Пробовал использовать в методе Выбрать() второй параметр. "Группировки" Выбрать(<ТипОбхода>, <Группировки>, <ГруппировкиДляЗначенийГруппировок>) Определение не доходит до головы. Много написал, позже могу уточнить.
0
|
11.03.2012, 19:42 | |
Ответы с готовыми решениями:
5
Группировка в запросе 1с77 Группировка В Запросе И Уровни Справочника Группировка в запросе Группировка по параметру в запросе 1С |
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
12.03.2012, 06:25 | 2 |
Сталкивался с такой бякой.
Могу предложить только некрасивое решение: Например, еще одним пакетом запроса получить итоги без договоров, выгрузить в ТЗ, и при получении контрагента отбирать строки... ну или еще что-нибудь в этом роде..
0
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
|
12.03.2012, 09:46 | 3 |
Сообщение от unknown181538
Перефразирую вопрос так. Если разворачиваю только по субконто - все отлично. А нужен еще один шаг - каждое субконто развернуть по валютам. Хоть запрос давай на каждой строке.
0
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
|
12.03.2012, 14:40 | 4 |
Ребята! Поделитесь отчетом в стиле Оборотно-сальдовой.
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
12.03.2012, 18:40 | 5 |
Вы смогли разобраться, как в типовом решена проблема, что сначала выводится одна группировка, потом другая без подчинения первой?
0
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
|
13.03.2012, 14:37 | 6 |
Да разбирался. В типовой схема упрощена: почти все счета отмечены как НЕвалютные. А отчет по валютным выводит все валюты. У меня все счета валютные и задача сложнее:
- сделать цикл по валютам - вторым циклом вывести, если там не только рубли.
0
|
13.03.2012, 14:37 | |
13.03.2012, 14:37 | |
Помогаю со студенческими работами здесь
6
Группировка в запросе при печати документа. Группировка в запросе Группировка в запросе Группировка данных в запросе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |