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

Арифметические опперации с результатами запроса

Автор Diakon, 17 июл 2012, 15:55

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

Diakon

Добрый день. Такое дело, мне надо написать отчет, который будет выводить долг контрагента по разным договорам (у одного контрагента несколько договоров). Данные хранятся в регистре ВзаиморасчетыСКонтрагентамиОстаткиИОбороты. У меня отчет выводит данные в разрезе договоров. Иными словами сейчас все выглядит так:
Контрагент                 Договор                             Долг
Фирма Астр                Основной договор               100
Фирма Астр                Розничный договор              50

Бухгалтенра хотят что бы выводился сумарный долг по каждому контрагенту, т.е. :
Контрагент         Долг
Фирма Астр        150

Вот у меня и возникает вопрос, как складывать значения...
Текст процедуры:






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



Долг хранится в Стр.Долг


Заранее спасибо всем кто поможет!

Klyacksa

Чтобы получить остаток без детализации по договору - уберите договор из полей запроса, тогда итоги получатся только в разрезе Контрагентов, то есть получите общий долг, без детализации по договору.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Diakon

Да, большое спасибо! Что то я совсем туплю - можнож в запросе в группировках добиться этого :)
Спасибо и +

Теги:

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

Рейтинг@Mail.ru

Поиск