• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы lira89
  • Дата начала
L

lira89

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

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

vbs

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

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

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

Hryv

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

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

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


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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!