Запрос 1С 7.7

Тема в разделе "1C и всё что с ней связано", создана пользователем leory, 21 июн 2009.

  1. leory

    leory Гость

    Здравствуйте. Подскажите пожалуйста. Каким образом можно подсчитать сумму реализаций в данном запросе, например с СТ00000008 по СТ00000013 (см скриншот). Вообще в идеале планируется сделать так. Справа добавляется еще одна колонка. И в ней напротив каждой реализации выводится сумма всех реализаций, которые были до нее раньше по времени, включительно. Вот текст запроса
    //*******************************************
    // Процедура генерации запроса Сформировать.
    //
    Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Покупатель = Регистр.ЗарплатаМенеджера.Покупатель;
    |ДокументыУчета = Регистр.ЗарплатаМенеджера.ДокументРеализация, Регистр.ЗарплатаМенеджера.ДокументСтрВыпБанкаПриход;
    |СуммаРеализация = Регистр.ЗарплатаМенеджера.СуммаРеализация;
    |СуммаСтрВыпБанкаПриход = Регистр.ЗарплатаМенеджера.СуммаСтрВыпБанкаПриход;
    |Функция РеализацияСумма = Сумма(СуммаРеализация);
    |Функция СтрВыпБанкаПриходСумма = Сумма(СуммаСтрВыпБанкаПриход);
    |Группировка Покупатель упорядочить по Покупатель.Наименование;
    |Группировка Документ;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
    // Заполнение полей Покупатель
    Таб.ВывестиСекцию("Покупатель");
    Пока Запрос.Группировка(2) = 1 Цикл
    // Заполнение полей Документ
    Таб.ВывестиСекцию("Документ");
    КонецЦикла;
    КонецЦикла;
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
    КонецПроцедуры

    Скриншот запроса и сам отчет прилагаю. Конфигурация типовая ТиС 7.7. ЗарплатаМенеджера-это регистр оборотов.
     

    Вложения:

    • Unbenannt.JPG
      Unbenannt.JPG
      Размер файла:
      79,1 КБ
      Просмотров:
      33
    • 00______.rar
      Размер файла:
      7 КБ
      Просмотров:
      16
  2. has

    has Гость

    объявить переменную какую нибудь и накапливать ее в цикле

    Код (Text):
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
    // Заполнение полей Покупатель
    Таб.ВывестиСекцию("Покупатель");
    СуммаРеализаций= 0;
    Пока Запрос.Группировка(2) = 1 Цикл
    СуммаРеализаций= СуммаРеализаций+ Запрос.СуммаРеализация;
    // Заполнение полей Документ
    Таб.ВывестиСекцию("Документ");
    КонецЦикла;
    КонецЦикла;
    если я правильно понял...
     
  3. leory

    leory Гость


    Has, спасибо за помощь. Я сделал так, как вы написали, тогда выдает ошибку "Поле агрегатного объекта не обнаружено (СуммаРеализаций)". Что это может значить?
     
  4. leory

    leory Гость

    Все, все работает. Я сам затупил, вы все правильно поняли и написали. Еще раз спасибо!
     
Загрузка...

Поделиться этой страницей