Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 02:47

Помогите с группировкой данных

Автор Ditli, 26 сен 2016, 11:08

0 Пользователей и 1 гость просматривают эту тему.

Ditli

Всем привет!

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

   Запрос.УстановитьПараметр("СчетДт", ПланыСчетов.ЕПСБУ.РасходыТекущегоГода);
   Запрос.УстановитьПараметр("СчетКт", ПланыСчетов.ЕПСБУ.РасходыТекущегоГода);
   Запрос.УстановитьПараметр("КЭК", Справочники.КОСГУ.НайтиПоКоду("241"));
   Запрос.УстановитьПараметр("ХарактеристикаДвижения", фКонтрагент);

   Результат = Запрос.Выполнить();
   
   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьШапкаТаблицы1 = Макет.ПолучитьОбласть("ШапкаТаблицы1");
   ОбластьОборотыДокумента1 = Макет.ПолучитьОбласть("ОборотыДокумента1");
      ОбластьИтогОборотов1 = Макет.ПолучитьОбласть("ИтогОборотов1");
   ОбластьСверткаОборотов1 = Макет.ПолучитьОбласть("СверткаОборотов1");
   ОбластьСальдоКонечное1 = Макет.ПолучитьОбласть("СальдоКонечное1");
   ОбластьПусто = Макет.ПолучитьОбласть("Пусто");
   ОбластьШапкаТаблицы2 = Макет.ПолучитьОбласть("ШапкаТаблицы2");
   ОбластьОборотыДокумента2 = Макет.ПолучитьОбласть("ОборотыДокумента2");
   ОбластьИтогОборотов2 = Макет.ПолучитьОбласть("ИтогОборотов2");
   ОбластьСверткаОборотов2 = Макет.ПолучитьОбласть("СверткаОборотов2");
   ОбластьСальдоКонечное2 = Макет.ПолучитьОбласть("СальдоКонечное2");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   

   ТабДок = Новый ТабличныйДокумент;
   ТабДок.ПолеСлева = 10;
   ТабДок.ПолеСправа = 10;   
   ТабДок.АвтоМасштаб=Истина;
   
   ТабДок.Очистить();

   ОбластьЗаголовок.Параметры.Контрагенты=фКонтрагент.НаименованиеПолное;//ВыборкаОбщийИтог.Контрагент;
   ОбластьЗаголовок.Параметры.НачПериода=формат(НачПериода,"ДЛФ=ДД");
   ОбластьЗаголовок.Параметры.КонПериода=формат(КонПериода,"ДЛФ=ДД");
   ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапкаТаблицы1);
   ТабДок.НачатьАвтогруппировкуСтрок();   
   

   Ном=0;       
   ДтСуммаИтог=0;
   КтСуммаИтог=0;
   
   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            
      Ном=Ном+1;   
      
      ОбластьОборотыДокумента1.Параметры.Ном=Ном;
      ОбластьОборотыДокумента1.Параметры.ДатаПервичногоДокумента=СокрЛП (формат(ВыборкаДетальныеЗаписи.Регистратор.Дата,"ДЛФ=Д"));
      ОбластьОборотыДокумента1.Параметры.НомерПервичногоДокумента=СокрЛП (формат(ВыборкаДетальныеЗаписи.Регистратор.Номер));
      ОбластьОборотыДокумента1.Параметры.СчетКт=СокрЛП(ВыборкаДетальныеЗаписи.СчетКт.Код);
      Если ВыборкаДетальныеЗаписи.СчетДт=ПланыСчетов.ЕПСБУ.РасходыТекущегоГода Тогда
         ОбластьОборотыДокумента1.Параметры.ДтСумма=ВыборкаДетальныеЗаписи.Сумма;
         ОбластьОборотыДокумента1.Параметры.КтСумма=0;         
         ДтСуммаИтог=ДтСуммаИтог+ВыборкаДетальныеЗаписи.Сумма;      
      КонецЕсли;
      Если ВыборкаДетальныеЗаписи.СчетКт=ПланыСчетов.ЕПСБУ.РасходыТекущегоГода Тогда
         ОбластьОборотыДокумента1.Параметры.КтСумма=ВыборкаДетальныеЗаписи.Сумма;
         ОбластьОборотыДокумента1.Параметры.ДтСумма=0;
         КтСуммаИтог=КтСуммаИтог+ВыборкаДетальныеЗаписи.Сумма;         
      КонецЕсли;
      
      
      ТабДок.Вывести(ОбластьОборотыДокумента1);
     КонецЦикла;
   ОбластьИтогОборотов1.Параметры.ДтСуммаИтог=формат(ДтСуммаИтог,"ЧЦ=10; ЧДЦ=2");
   ОбластьИтогОборотов1.Параметры.КтСуммаИтог=формат(КтСуммаИтог,"ЧЦ=10; ЧДЦ=2");
   
   ТабДок.Вывести(ОбластьИтогОборотов1);
Перечитала полно всего, но не могу найти ничего дельного:(

alexandr_ll

Выгрузите результаты запроса в таблицу значений и сверните ее по нужным колонкам.

Ditli

Спасибо за подсказку, сейчас попробую:)
Добавлено: 27 сен 2016, 09:45


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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск