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

lira89

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

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

vbs

Well-Known Member
18.02.2007
1 708
3
#2
Попробуй добавить в запрос

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

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

Hryv

Гость
#3
Попробуй добавить в запрос

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

Хотя я ночью уже неважно соображаю :facepalm:
Скорее
Функция СуммаВсего = Приход(СуммаВ);// или Расход(СуммаВ), смотря что док с регистром делает


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

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

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