helpf.pro
Регистрация

v8.3: Вывод результата запроса по группировкам в макет

agaga
22.11.2015 23:04Прочитано: 7604

Здравствуйте! Надо в макет вывести результат запроса с обходом по группировкам по полю ГруппаБаланс. Поле ГруппаБаланс имеет тип справочник с иерархией элементов. В консоли запросов запрос выводит все элементы включая группировку (все верно)

при обходе результата запроса и вывод данных в макет не выводит данные по вложенным элементам (иерархии). Никак не могу понять почему. Помогите, пожалуйста. Платформа 8.3.6.2152, конфигурация самописная. В приложении сам отчет.

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

Выборка1 = РезультатЗапроса.Выбрать(СпособОбхода, "ГруппаБаланс","Все"); НомерПриход = 1; Пока Выборка1.Следующий() Цикл  ПерваяГруппировка.Параметры.Номер = НомерПриход;  ПерваяГруппировка.Параметры.ПерваяГруппировка = Выборка1.ГруппаБаланс;  ПерваяГруппировка.Параметры.ПГНаНачало = Выборка1.ПриходНаНачало;  ПерваяГруппировка.Параметры.ПГЗаМесяц = Выборка1.ЗаМесяцПриход;  ПерваяГруппировка.Параметры.ПГТМЦ = Выборка1.ПриходПоТоварам;  ПерваяГруппировка.Параметры.ПГСМР = Выборка1.ЗаМесяцПриход - Выборка1.ПриходПоТоварам;  ПерваяГруппировка.Параметры.ПГНаКонец = Выборка1.ПриходНаНачало + Выборка1.ЗаМесяцПриход;  ТабДок.Вывести(ПерваяГруппировка);  ИтогНаНачалоПриход = ИтогНаНачалоПриход + Выборка1.ПриходНаНачало;  ИтогЗаМесяцПриход = ИтогЗаМесяцПриход + Выборка1.ЗаМесяцПриход;  ИтогПоТоварамПриход = ИтогПоТоварамПриход + Выборка1.ПриходПоТоварам;     НомерПриход = НомерПриход + 1;      Выборка2= Выборка1.Выбрать(СпособОбхода, "ГруппаБаланс","Все");   Пока Выборка2.Следующий() Цикл   ВтораяГруппировка.Параметры.ВтораяГруппировка = Выборка2.ГруппаБаланс;   ВтораяГруппировка.Параметры.ВГНаНачало = Выборка2.ПриходНаНачало;   ВтораяГруппировка.Параметры.ВГЗаМесяц = Выборка2.ЗаМесяцПриход;   ВтораяГруппировка.Параметры.ВГТМЦ = ВЫборка2.ПриходПоТоварам;   ВтораяГруппировка.Параметры.ВГСМР = Выборка2.ЗаМесяцПриход - Выборка2.ПриходПоТоварам;   ВтораяГруппировка.Параметры.ВГНаКонец = Выборка2.ПриходНаНачало + Выборка2.ЗаМесяцПриход;   ТабДок.Вывести(ВтораяГруппировка);         Выборка3= Выборка2.Выбрать(СпособОбхода, "ГруппаБаланс","Все");   Пока Выборка3.Следующий() Цикл    ТретьяГруппировка.Параметры.ТретьяГруппировка = Выборка3.ГруппаБаланс;    ТретьяГруппировка.Параметры.ТГНаНачало = Выборка3.ПриходНаНачало;    ТретьяГруппировка.Параметры.ТГЗаМесяц = Выборка3.ЗаМесяцПриход;    ТретьяГруппировка.Параметры.ТГТМЦ = ВЫборка3.ПриходПоТоварам;    ТретьяГруппировка.Параметры.ТГСМР = Выборка3.ЗаМесяцПриход - Выборка3.ПриходПоТоварам;    ТретьяГруппировка.Параметры.ТГНаКонец = Выборка3.ПриходНаНачало + Выборка3.ЗаМесяцПриход;    ТабДок.Вывести(ТретьяГруппировка);        Выборка4= Выборка3.Выбрать(СпособОбхода, "ГруппаБаланс","Все");     Пока Выборка4.Следующий() Цикл     ЧетвертаяГруппировка.Параметры.ЧетвертаяГруппировка = Выборка4.ГруппаБаланс;     ЧетвертаяГруппировка.Параметры.ЧГНаНачало = Выборка4.ПриходНаНачало;     ЧетвертаяГруппировка.Параметры.ЧГЗаМесяц = Выборка4.ЗаМесяцПриход;     ЧетвертаяГруппировка.Параметры.ЧГТМЦ = ВЫборка4.ПриходПоТоварам;     ЧетвертаяГруппировка.Параметры.ЧГСМР = Выборка4.ЗаМесяцПриход - Выборка3.ПриходПоТоварам;     ЧетвертаяГруппировка.Параметры.ЧГНаКонец = Выборка4.ПриходНаНачало + Выборка4.ЗаМесяцПриход;     ТабДок.Вывести(ЧетвертаяГруппировка);    КонецЦикла;   КонецЦикла;   КонецЦикла;    КонецЦикла;

Выводит группировки в таком виде:

Нет ни одной полностью раскрытой группировки. Мне кажется дело в запросе, т.к. до добавления временной таблицы вывод выглядел более менее правильно

не раскрывал только два элемента Строительство и Транспортный отдел, которые имеют 4 и 3 уровня вложенности соответственно. Хотя результат в консоли запросов не изменился.Balans.epf

Yandex
Возможно, вас также заинтересует
Реклама на портале
agaga
22.11.2015 23:20Ответ № 1

Простите за некорректный ввод кода. Исправляюсь

Код ниже выводит группировки в таком виде (нет ни одной полностью раскрытой группировки):

Мне кажется дело в запросе, т.к. до добавления временной таблицы начальных остатков вывод выглядел более менее правильно, не раскрывались только

два элемента Строительство и Транспортный отдел, которые имеют 4 и 3 уровня вложенности соответственно. Хотя результат в консоли запросов не изменился.

Код 1C v 8.3
 

  ТабДок.НачатьАвтогруппировкуСтрок(); //Приход Запрос = Новый Запрос;  Запрос.Текст =   "ВЫБРАТЬ  | ГруппыБаланса.Ссылка  |ПОМЕСТИТЬ ОС  |ИЗ  | Справочник.ГруппыБаланса КАК ГруппыБаланса  |ГДЕ  | ГруппыБаланса.Ссылка В ИЕРАРХИИ(&ОС)  |;  |  |////////////////////////////////////////////////////////////////////////////////  |ВЫБРАТЬ  | СУММА(ЕСТЬNULL(ВзаиморасчетыПоКлиентамОбороты.ДеньгиРасход, 0)) КАК ДеньгиРасход,  | ВзаиморасчетыПоКлиентамОбороты.Клиент.ГруппаБаланс КАК КлиентГруппаБаланс  |ПОМЕСТИТЬ оборотыВзаиморасчеты  |ИЗ  | РегистрНакопления.ВзаиморасчетыПоКлиентам.Обороты(&НачалоПериода,КонецПериода, , ) КАК ВзаиморасчетыПоКлиентамОбороты  |  |СГРУППИРОВАТЬ ПО  | ВзаиморасчетыПоКлиентамОбороты.Клиент.ГруппаБаланс  |;  |  |////////////////////////////////////////////////////////////////////////////////  |ВЫБРАТЬ  | ВзаиморасчетыПоКлиентамОбороты.Клиент.ГруппаБаланс КАК ГруппаБаланс,  | СУММА(ЕСТЬNULL(ВзаиморасчетыПоКлиентамОбороты.ДеньгиРасход, 0)) КАК ПриходНаНачало  |ПОМЕСТИТЬ НачальныеОстатки  |ИЗ  | РегистрНакопления.ВзаиморасчетыПоКлиентам.Обороты(&НачалоВеденияУчета,КонецПериода, , ) КАК ВзаиморасчетыПоКлиентамОбороты  |  |СГРУППИРОВАТЬ ПО  | ВзаиморасчетыПоКлиентамОбороты.Клиент.ГруппаБаланс  |;  |  |////////////////////////////////////////////////////////////////////////////////  |ВЫБРАТЬ РАЗРЕШЕННЫЕ  | СУММА(ЕСТЬNULL(ПриходнаяНакладнаяТовары.Сумма, 0)) КАК ПриходПоТоварам,  | оборотыВзаиморасчеты.ДеньгиРасход КАК ЗаМесяцПриход,  | ГруппыБаланса.Ссылка КАК ГруппаБаланс,  | НачальныеОстатки.ПриходНаНачало КАК ПриходНаНачало  |ИЗ  | Справочник.Контрагенты КАК Контрагенты  |  ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыПоКлиентам.Обороты(&НачалоПериода,КонецПериода, Регистратор, ) КАК ВзаиморасчетыПоКлиентамОбороты  |   ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары  |   ПО ВзаиморасчетыПоКлиентамОбороты.Регистратор.Ссылка = ПриходнаяНакладнаяТовары.Ссылка.Ссылка  |  ПО Контрагенты.Ссылка = ВзаиморасчетыПоКлиентамОбороты.Клиент.Ссылка  |  ВНУТРЕННЕЕ СОЕДИНЕНИЕ оборотыВзаиморасчеты КАК оборотыВзаиморасчеты  |  ПО Контрагенты.ГруппаБаланс = оборотыВзаиморасчеты.КлиентГруппаБаланс  |  ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыБаланса КАК ГруппыБаланса  |   ЛЕВОЕ СОЕДИНЕНИЕ НачальныеОстатки КАК НачальныеОстатки  |   ПО ГруппыБаланса.Ссылка = НачальныеОстатки.ГруппаБаланс.Ссылка  |  ПО Контрагенты.ГруппаБаланс = ГруппыБаланса.Ссылка  |  ЛЕВОЕ СОЕДИНЕНИЕ ОС КАК ОС  |  ПО Контрагенты.ГруппаБаланс.Ссылка = ОС.Ссылка  |ГДЕ  | Контрагенты.ЭтоГруппа = ЛОЖЬ  | И НЕ ГруппыБаланса.Ссылка В  |    (ВЫБРАТЬ  |     ОС.Ссылка  |    ИЗ  |     ОС)  |  |СГРУППИРОВАТЬ ПО  | оборотыВзаиморасчеты.ДеньгиРасход,  | ГруппыБаланса.Ссылка,  | НачальныеОстатки.ПриходНаНачало  |ИТОГИ  | СУММА(ПриходПоТоварам),  | СУММА(ЗаМесяцПриход),  | СУММА(ПриходНаНачало)  |ПО  | ГруппаБаланс ТОЛЬКО ИЕРАРХИЯ";  Запрос.УстановитьПараметр("КонецПериода", КонецПер); Запрос.УстановитьПараметр("НачалоПериода", НачалоПер); Запрос.УстановитьПараметр("ОС", ОС); Запрос.УстановитьПараметр("НачалоВеденияУчета", НачалоВеденияУчета);  РезультатЗапроса = Запрос.Выполнить();   СпособОбхода = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией; ИтогНаНачалоПриход = 0; ИтогЗаМесяцПриход = 0; ИтогПоТоварамПриход = 0; ИтогиПриход.Параметры.ИПНаНачало = ИтогНаНачалоПриход; ИтогиПриход.Параметры.ИПЗаМесяц = ИтогЗаМесяцПриход; ИтогиПриход.Параметры.ИПТМЦ = ИтогПоТоварамПриход; ИтогиПриход.Параметры.ИПСМР =ИтогЗаМесяцПриход - ИтогПоТоварамПриход; ИтогиПриход.Параметры.ИПНаКонец = ИтогНаНачалоПриход + ИтогЗаМесяцПриход;  Выборка1 = РезультатЗапроса.Выбрать(СпособОбхода, "ГруппаБаланс","Все"); НомерПриход = 1; Пока Выборка1.Следующий() Цикл  ПерваяГруппировка.Параметры.Номер = НомерПриход;  ПерваяГруппировка.Параметры.ПерваяГруппировка = Выборка1.ГруппаБаланс;  ПерваяГруппировка.Параметры.ПГНаНачало = Выборка1.ПриходНаНачало;  ПерваяГруппировка.Параметры.ПГЗаМесяц = Выборка1.ЗаМесяцПриход;  ПерваяГруппировка.Параметры.ПГТМЦ = Выборка1.ПриходПоТоварам;  ПерваяГруппировка.Параметры.ПГСМР = Выборка1.ЗаМесяцПриход - Выборка1.ПриходПоТоварам;  ПерваяГруппировка.Параметры.ПГНаКонец = Выборка1.ПриходНаНачало + Выборка1.ЗаМесяцПриход;  ТабДок.Вывести(ПерваяГруппировка);  ИтогНаНачалоПриход = ИтогНаНачалоПриход + Выборка1.ПриходНаНачало;  ИтогЗаМесяцПриход = ИтогЗаМесяцПриход + Выборка1.ЗаМесяцПриход;  ИтогПоТоварамПриход = ИтогПоТоварамПриход + Выборка1.ПриходПоТоварам;     НомерПриход = НомерПриход + 1;      Выборка2= Выборка1.Выбрать(СпособОбхода, "ГруппаБаланс","Все");   Пока Выборка2.Следующий() Цикл   ВтораяГруппировка.Параметры.ВтораяГруппировка = Выборка2.ГруппаБаланс;   ВтораяГруппировка.Параметры.ВГНаНачало = Выборка2.ПриходНаНачало;   ВтораяГруппировка.Параметры.ВГЗаМесяц = Выборка2.ЗаМесяцПриход;   ВтораяГруппировка.Параметры.ВГТМЦ = ВЫборка2.ПриходПоТоварам;   ВтораяГруппировка.Параметры.ВГСМР = Выборка2.ЗаМесяцПриход - Выборка2.ПриходПоТоварам;   ВтораяГруппировка.Параметры.ВГНаКонец = Выборка2.ПриходНаНачало + Выборка2.ЗаМесяцПриход;   ТабДок.Вывести(ВтораяГруппировка);         Выборка3= Выборка2.Выбрать(СпособОбхода, "ГруппаБаланс","Все");   Пока Выборка3.Следующий() Цикл    ТретьяГруппировка.Параметры.ТретьяГруппировка = Выборка3.ГруппаБаланс;    ТретьяГруппировка.Параметры.ТГНаНачало = Выборка3.ПриходНаНачало;    ТретьяГруппировка.Параметры.ТГЗаМесяц = Выборка3.ЗаМесяцПриход;    ТретьяГруппировка.Параметры.ТГТМЦ = ВЫборка3.ПриходПоТоварам;    ТретьяГруппировка.Параметры.ТГСМР = Выборка3.ЗаМесяцПриход - Выборка3.ПриходПоТоварам;    ТретьяГруппировка.Параметры.ТГНаКонец = Выборка3.ПриходНаНачало + Выборка3.ЗаМесяцПриход;    ТабДок.Вывести(ТретьяГруппировка);        Выборка4= Выборка3.Выбрать(СпособОбхода, "ГруппаБаланс","Все");     Пока Выборка4.Следующий() Цикл     ЧетвертаяГруппировка.Параметры.ЧетвертаяГруппировка = Выборка4.ГруппаБаланс;     ЧетвертаяГруппировка.Параметры.ЧГНаНачало = Выборка4.ПриходНаНачало;     ЧетвертаяГруппировка.Параметры.ЧГЗаМесяц = Выборка4.ЗаМесяцПриход;     ЧетвертаяГруппировка.Параметры.ЧГТМЦ = ВЫборка4.ПриходПоТоварам;     ЧетвертаяГруппировка.Параметры.ЧГСМР = Выборка4.ЗаМесяцПриход - Выборка3.ПриходПоТоварам;     ЧетвертаяГруппировка.Параметры.ЧГНаКонец = Выборка4.ПриходНаНачало + Выборка4.ЗаМесяцПриход;     ТабДок.Вывести(ЧетвертаяГруппировка);    КонецЦикла;   КонецЦикла;   КонецЦикла;  КонецЦикла;
agaga
22.11.2015 23:21Ответ № 2

Что-то формат кода все равно не читаемый, вот сам отчет     

Balans.epf

E_Migachev
23.11.2015 01:09Ответ № 3

над редактором посмотрите Как добавить Код ?

К вашему вопросу - это в консоли запросов у вас не выводит? какое соединение в запросе?

agaga
23.11.2015 11:29Ответ № 4

В консоли все замечательно выводит, но при обходе результата запроса по группировкам в отчете не выводит вложенные элементы. Соединение левое.

Код 1C v 8.3
 
ТабДок.НачатьАвтогруппировкуСтрок();

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

Запрос.УстановитьПараметр("КонецПериода", КонецПер);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПер);
Запрос.УстановитьПараметр("ОС", ОС);
Запрос.УстановитьПараметр("НачалоВеденияУчета", НачалоВеденияУчета);



РезультатЗапроса = Запрос.Выполнить();

СпособОбхода = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;

Выборка1 = РезультатЗапроса.Выбрать(СпособОбхода, "ГруппаБаланс","Все");
НомерПриход = 1;
Пока Выборка1.Следующий() Цикл
ПерваяГруппировка.Параметры.Номер = НомерПриход;
ПерваяГруппировка.Параметры.ПерваяГруппировка = Выборка1.ГруппаБаланс;
ПерваяГруппировка.Параметры.ПГНаНачало = Выборка1.ПриходНаНачало;
ПерваяГруппировка.Параметры.ПГЗаМесяц = Выборка1.ЗаМесяцПриход;
ПерваяГруппировка.Параметры.ПГТМЦ = Выборка1.ПриходПоТоварам;
ПерваяГруппировка.Параметры.ПГСМР = Выборка1.ЗаМесяцПриход - Выборка1.ПриходПоТоварам;
ПерваяГруппировка.Параметры.ПГНаКонец = Выборка1.ПриходНаНачало + Выборка1.ЗаМесяцПриход;
ТабДок.Вывести(ПерваяГруппировка);
ИтогНаНачалоПриход = ИтогНаНачалоПриход + Выборка1.ПриходНаНачало;
ИтогЗаМесяцПриход = ИтогЗаМесяцПриход + Выборка1.ЗаМесяцПриход;
ИтогПоТоварамПриход = ИтогПоТоварамПриход + Выборка1.ПриходПоТоварам;   
НомерПриход = НомерПриход + 1;

Выборка2= Выборка1.Выбрать(СпособОбхода, "ГруппаБаланс","Все"); 
Пока Выборка2.Следующий() Цикл
ВтораяГруппировка.Параметры.ВтораяГруппировка = Выборка2.ГруппаБаланс;
ВтораяГруппировка.Параметры.ВГНаНачало = Выборка2.ПриходНаНачало;
ВтораяГруппировка.Параметры.ВГЗаМесяц = Выборка2.ЗаМесяцПриход;
ВтораяГруппировка.Параметры.ВГТМЦ = ВЫборка2.ПриходПоТоварам;
ВтораяГруппировка.Параметры.ВГСМР = Выборка2.ЗаМесяцПриход - Выборка2.ПриходПоТоварам;
ВтораяГруппировка.Параметры.ВГНаКонец = Выборка2.ПриходНаНачало + Выборка2.ЗаМесяцПриход;
ТабДок.Вывести(ВтораяГруппировка);

Выборка3= Выборка2.Выбрать(СпособОбхода, "ГруппаБаланс","Все");
Пока Выборка3.Следующий() Цикл
ТретьяГруппировка.Параметры.ТретьяГруппировка = Выборка3.ГруппаБаланс;
ТретьяГруппировка.Параметры.ТГНаНачало = Выборка3.ПриходНаНачало;
ТретьяГруппировка.Параметры.ТГЗаМесяц = Выборка3.ЗаМесяцПриход;
ТретьяГруппировка.Параметры.ТГТМЦ = ВЫборка3.ПриходПоТоварам;
ТретьяГруппировка.Параметры.ТГСМР = Выборка3.ЗаМесяцПриход - Выборка3.ПриходПоТоварам;
ТретьяГруппировка.Параметры.ТГНаКонец = Выборка3.ПриходНаНачало + Выборка3.ЗаМесяцПриход;
ТабДок.Вывести(ТретьяГруппировка);
Выборка4= Выборка3.Выбрать(СпособОбхода, "ГруппаБаланс","Все"); 
Пока Выборка4.Следующий() Цикл
ЧетвертаяГруппировка.Параметры.ЧетвертаяГруппировка = Выборка4.ГруппаБаланс;
ЧетвертаяГруппировка.Параметры.ЧГНаНачало = Выборка4.ПриходНаНачало;
ЧетвертаяГруппировка.Параметры.ЧГЗаМесяц = Выборка4.ЗаМесяцПриход;
ЧетвертаяГруппировка.Параметры.ЧГТМЦ = ВЫборка4.ПриходПоТоварам;
ЧетвертаяГруппировка.Параметры.ЧГСМР = Выборка4.ЗаМесяцПриход - Выборка3.ПриходПоТоварам;
ЧетвертаяГруппировка.Параметры.ЧГНаКонец = Выборка4.ПриходНаНачало + Выборка4.ЗаМесяцПриход;
ТабДок.Вывести(ЧетвертаяГруппировка);
КонецЦикла;
КонецЦикла; 
КонецЦикла; 
КонецЦикла;


В Консоли получается, выводит все 

 

В отчете непонятно как выводит ( на примере группы _Аналитический отдел не выводит группировку)

E_Migachev
24.11.2015 21:13Ответ № 5

видимо что-то с группировками в коде, попробуйте создать новую обработку - конструктор выходной формы, вставьте свой запрос 

конструктор сформирует вам код вывода по запросу.

Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.