Группировка в запросе 1с77

Тема в разделе "1C и всё что с ней связано", создана пользователем lira89, 11 фев 2011.

  1. lira89

    lira89 Well-Known Member

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

    Пока Запрос.Группировка(1)=1 Цикл
    СуммаПрихода =Запрос.СуммаВ;
    ДатаДокумента = Запрос.Док.ДатаДок;
    НомерДокумента = Запрос.Док.НомерДок;
    Если Запрос.Док.Вид() = "ОплатыСтудентов" Тогда
    ВидДокум = "Оплата";
    ИначеЕсли Запрос.Док.Вид() = "СправкаОПереносе" Тогда
    ВидДокум = "Справка";
    КонецЕсли;
    Таб.ВывестиСекцию("Данные");
    КонецЦикла;
     
  2. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Попробуй добавить в запрос

    Функция СуммаВсего = КонОст(СуммаВ);

    Хотя я ночью уже неважно соображаю <_<
     
  3. Hryv

    Hryv Гость

    Скорее
    Функция СуммаВсего = Приход(СуммаВ);// или Расход(СуммаВ), смотря что док с регистром делает


    а если "всегда Группировка(1)=0", то на регистре нет того что вы ищете
    причины могут быть самые разные
    наиболее вероятно:
    - неправильно заданы параметры Нач, Кон, ВыбрСтудент
    - неправильно проведен документ

    я иногда практикую
    Код ( (Unknown Language)):
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ, 0, 0);
    ТЗ.ВыбратьСтроку()
    сразу будет видно все, что в запросе выбралось
     
  4. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    Точно, пропустила, ужас какая невнимательность. Спасибо большое.
     
Загрузка...

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