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

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

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

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

Запрос по регистрам

  • Автор темы Guest
  • Дата начала
G

Guest

Уважаемые профи, решите пожалуйста ребус, теоретически должно работать, а не работает.
Методом "ВыбратьДвижения" всё показывает, а запросом нет.

Процедура СформироватьЗапрос()

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Наименование = Регистр.Остатки.Товар.Наименование;
|Кол = Регистр.Остатки.Количество;
|Группировка Наименование;
|Группировка Кол;
|"//}}ЗАПРОС
;

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

Пока Запрос.Группировка(1) = 1 Цикл
Сообщить(Запрос.Наименование);

Пока Запрос.Группировка(2) = 1 Цикл
Сообщить(Запрос.Кол);
КонецЦикла;

КонецЦикла;
КонецПроцедуры
 
M

mialord

Если хотите чтобы люди начали вам отвечать, то для начала укажите необходимые параметры системы<Версия, Конфига для начала>. :(
 
P

puh14

Процедура СформироватьЗапрос()

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

// если регистр оборотов, то там можно узнать только сумму |Функция КолКон = Сумма(Кол); и остатки
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка(1) = 1 Цикл
Сообщить(Запрос.Наименование);

Пока Запрос.Группировка(2) = 1 Цикл
Сообщить(Запрос.КолНач);
Сообщить(Запрос.КолПрих);
Сообщить(Запрос.КолРасх);
Сообщить(Запрос.КолКон);
КонецЦикла;

КонецЦикла;
КонецПроцедуры
 
G

Guest

Спасибо Puh, очень подробно ответили! теперь ясно, что основная причина была в отсутствии интервала периода, но очень хотелось чтобы всю базу лопатил, вот осознанно даты не указывал.
Но с Вашими пояснениями теперь хоть в голове устаканилось!
 
V

vitfil

Неужели после прочтения книжки ничего не устаканивалось? Там же русским по белому написано: при выполнении запроса к регистрам в обязательном порядке должна быть функция...
 
G

Guest

Неужели после прочтения книжки ничего не устаканивалось? Там же русским по белому написано: при выполнении запроса к регистрам в обязательном порядке должна быть функция...

Ну всё и не упомниш из книг, там же столько всего )
 
Мы в соцсетях:

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