Имя: Пароль:
1C
 
Получить остатки на указанную пользователем дату
0 1С: Новичок
 
23.09.04
08:54
Возвращаюсь к вчерашнему. В базе имеется регистр накопления Остатки, имеющий два измерения (Товар, Склад) и один ресурс (Количество). Делаю отчет по остаткам с данными на форме:
а) ДатаНач - дата, на которую нужно получить остатки,
б) ВыбТовар - товар (группа товаров), по которому получают остатки,
в) ВыбСклад - склад.
Текст запроса выглядит так:

Запрос = Новый Запрос("
|Выбрать Товар, Количество
|ИЗ РегистрНакопления.Остатки
|ГДЕ Склад = &ВыбСклад И (Товар = &ВыбТовар ИЛИ Товар В ИЕРАРХИИ (&ВыбТовар))
|ИТОГИ СУММА(Количество)
|ПО Товар
|АВТОУПОРЯДОЧИВАНИЕ");
Запрос.УстановитьПараметр("ВыбСклад", ЭлементыФормы.ВыбСклад.Значение);
Запрос.УстановитьПараметр("ВыбТовар", ЭлементыФормы.ВыбТовар.Значение);
   Запрос.УстановитьПараметр("ДатаНач", ЭлементыФормы.ДатаНач.Значение);

Как мне в запросе правильно указать выбор остатков на желаемую пользователем дату?
1 Волшебник
 
23.09.04
09:00
Лучше поднимать старую ветку, а не создавать новую.

Почему ты не любишь виртуальные таблицы?
v8: Запрос к регистру накопления

Твой запрос методически неправилен, потому что выдает последние остатки с учетом всех движений (в том числе будущим числом) и обрабатывает весь регистр, а не только нужные данные.
2 1С: Новичок
 
23.09.04
09:06
Замечание обязательно учту. Сейчас попробую еще раз с виртуальными таблицами. Вчера экспериментировал с МоментомВремени, вроде заработало, а при дальнейшем рассмотрении оказалось, что работало некорректно.
3 1С: Новичок
 
23.09.04
09:35
Переделал запрос:

Запрос = Новый Запрос("
|Выбрать *
|ИЗ РегистрНакопления.Остатки.Остатки(&ДатаНач, Склад = &ВыбСклад И (Товар =   &ВыбТовар ИЛИ Товар В ИЕРАРХИИ (&ВыбТовар)))");

Все выводится правильно, но как только добавляю ИТОГИ СУММА(Количество) ПО Товар возникает ошибка "Поле Количество не найдено". Куда мне его еще нужно прописать? Прописываю в метод "Остатки(Дата, Отбор, Измерение, Ресурс)" тоже возникает ошибка.
4 Волшебник
 
23.09.04
10:12
Тебе не нужны итоги.
А если все-таки нужны, то по полю КоличествоОстаток
5 лето
 
23.09.04
10:47
в продолжение темы.... подскажите, когда описываешь параметры, надо по всем измерениям ставить значения? если нет значения, то просто запятая? что-то ругается на параметры в выражении:
РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты(&ДатаНач,&ДатаКон,Материал = &ВыбТовар , ,Склад = &ВыбСклад,) КАК ОстаткиМатериалов
6 Волшебник
 
23.09.04
10:49
нужно примерно так:
РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты(&ДатаНач,&ДатаКон,,,Материал = &ВыбТовар И Склад = &ВыбСклад)
7 лето
 
23.09.04
10:58
Вот! а что значат эти  пропуски с запятыми? измерения регистра, не включаемые в фильтр? или что? ...
кстати, не работает и такой вариант запроса((
8 Волшебник
 
23.09.04
10:59
(7) Посмотри параметры виртуальной таблицы в синтакс-помощнике.