Синтаксис и применение Условие в платформе 1С:Предприятие. Описание и примеры кода.
Полное описание, параметры и ограничения
Условие
Условие (необязательный)
Конструкция языка запросов. Указывается условие на языке запросов. Условие может оперировать полями регистра накопления. Оно будет использовано для ограничения состава записей, по которым будут выбираться итоги. То есть условие будет применяться к исходным записям, а не к уже отобранным.
Если параметр не задан, анализируются все активные записи регистра.
Методическая информация
Практические примеры
Получить остаток учебного товара на включающей границе
Граница с видом Включая явно включает движение, попавшее точно на заданный момент.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В отдельной учебной конфигурации создайте документ УчебноеДвижение с разрешённым проведением и автонумерацией. Реквизиты: Артикул (Строка 20), Количество (Число 15.3), Приход (Булево), Комментарий (Строка 100).
Создайте регистр накопления УчебныеОстатки, вид Остатки. Измерение Артикул (Строка 20), ресурс Количество (Число 15.3), реквизит Комментарий (Строка 100). Регистратор — УчебноеДвижение; включите регистр в движения документа.
В отдельной учебной конфигурации создайте общий реквизит УчебныйИсточник типа Строка 20. Разделение данных — Не использовать. В составе явно включите только учебный объект этого урока; использование — Использовать.
Если общий реквизит не выведен на форму, его пустое строковое значение допустимо. Запрос всё равно покажет именованную колонку УчебныйИсточник. Это не разделитель данных и не механизм ограничения доступа.
Общий реквизит УчебныйИсточник включите в состав именно регистра УчебныеОстатки. Виртуальные таблицы итогов этого урока его не используют: обычный неразделяющий реквизит там не является измерением.
В модуль объекта документа вставьте отдельный обработчик проведения ниже. Обновите только учебную базу.
Вручную проведите два учебных документа: 01.10.2026 12:00:00, Артикул КНИГА, Количество 10, Приход Истина, Комментарий Поступление; 02.10.2026 12:00:00, тот же артикул, Количество 3, Приход Ложь, Комментарий Продажа. Других движений КНИГА в этом учебном регистре не должно быть.
Основной код запроса запускайте в отдельной серверной процедуре учебной обработки, не внутри проведения. Запрос ничего не пишет и не перепроводит.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Данные.Артикул, Данные.КоличествоОстаток
|ИЗ РегистрНакопления.УчебныеОстатки.Остатки(&Граница, Артикул = &Артикул) КАК Данные";
Запрос.УстановитьПараметр("Граница", Новый Граница(Дата(2026, 10, 2, 12), ВидГраницы.Включая));
Запрос.УстановитьПараметр("Артикул", "КНИГА");
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Для Каждого Колонка Из Результат.Колонки Цикл
Сообщить(Колонка.Имя + ": " + Строка(Выборка[Колонка.Имя]));
КонецЦикла;
КонецЦикла;Проведение учебного движения
Документы → УчебноеДвижение → Модуль объекта
Выполняется только при ручном проведении подготовленных учебных документов.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.УчебныеОстатки.Записывать = Истина;
Запись = Движения.УчебныеОстатки.Добавить();
Запись.Период = Дата;
Запись.Активность = Истина;
Запись.Артикул = Артикул;
Запись.Количество = Количество;
Запись.Комментарий = Комментарий;
Запись.УчебныйИсточник = "Урок";
Если Приход Тогда
Запись.ВидДвижения = ВидДвиженияНакопления.Приход;
Иначе
Запись.ВидДвижения = ВидДвиженияНакопления.Расход;
КонецЕсли;
КонецПроцедурыРазбор по шагам
Параметр Граница имеет тип Граница, а не просто Дата.
Включая учитывает запись точно на времени границы.
Условие по артикулу ограничивает записи, по которым считается остаток.
Как проверить результат
На 02.10.2026 12:00:00 с Включая показан остаток 7.
Замените Включая на Исключая на том же времени: расход 3 не входит, остаток равен 10.
Ожидаемый результат
Остаток получен с явно выбранным правилом включения граничной записи.
На что обратить внимание
У простой даты в параметре Остатки другое поведение на самой границе; не теряйте различие между Дата и Граница.
Таблица Остатки существует для регистра остатков, не для регистра оборотов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.