← Назад к вопросам
Запрос на выборку товаров с остатком больше нуля
1.0 Junior🔥 241 комментариев
#Запросы и оптимизация#Регистры
Условие
Напишите запрос на выборку товаров, у которых остаток больше 0.
Дано:
- Справочник "Номенклатура"
- Регистр накопления "ОстаткиТоваров" (тип: Остатки) с измерением "Номенклатура" и ресурсом "Количество"
Пример результата
| Номенклатура | Остаток |
|---|---|
| Товар 1 | 50 |
| Товар 2 | 25 |
Подсказка
Используйте виртуальную таблицу "Остатки" регистра накопления.
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Решение
Для выборки товаров с остатком больше нуля используем виртуальную таблицу 'Остатки' регистра накопления. Это самый эффективный и правильный способ в 1С:Предприятие.
Способ 1: С помощью запроса (язык 1С)
\n
Способ 2: Более компактный вариант (с учётом правильного имени ресурса)
\n
Ключевые моменты:
Виртуальная таблица 'Остатки':
- Автоматически считает остатки на дату-время выполнения запроса
- Умеет использовать фильтры по измерениям для оптимизации
- Включает все движения регистра до указанной даты
- Синтаксис параметров:
Параметры в примере:
- Первый параметр (дата) — пуст, значит берём текущий момент
- Второй параметр — "Номенклатура" (периодичность — берём последнее значение за период)
- Третий параметр — дополнительный фильтр по измерениям (здесь не используется)
Ресурс "Количество":
- Это накопляемый ресурс регистра ОстаткиТоваров
- Значение вычисляется как сумма всех приходов и расходов
Альтернатива — использование ВЛОЖЕННЫЙ ЗАПРОС (для сложных сценариев):
\n
Почему НЕ используем прямое чтение из регистра:
- Производительность — виртуальная таблица кэшируется БД
- Корректность — автоматически считает остатки с учётом всех движений
- Простота — не нужно самостоятельно складывать приходы и расходы
- Надёжность — берётся окончательный остаток, исключая ошибки округления
Этот способ — standard best practice в 1С при работе с регистрами накопления типа 'Остатки'.