Работа с датами в языке запросов 1С имеет свои нюансы, особенно когда нужно передать фиксированное значение или «пустую» дату. Рассмотрим основные способы.
Самый правильный и безопасный метод — передача даты через параметры объекта Запрос. Это защищает от ошибок типизации и делает код читаемым.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Продажи.Период,
| Продажи.СуммаОборотов
|ИЗ
| РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаОкончания) КАК Продажи";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ТекущаяДата()));
Если вам нужно жестко прописать конкретную дату прямо в тексте запроса (например, в консоли запросов или при разработке сложного отчета), используется литерал ДАТАВРЕМЯ.
Синтаксис: ДАТАВРЕМЯ(Год, Месяц, День, Час, Минута, Секунда)
Пример с временем: ДАТАВРЕМЯ(2026, 03, 11, 23, 59, 59)
Пример без времени: ДАТАВРЕМЯ(2026, 01, 01) (время автоматически станет 00:00:00).
|ГДЕ
| Документ.Дата > ДАТАВРЕМЯ(2026, 01, 01)
В 1С пустая дата — это 01.01.0001 00:00:00. В запросе ее можно получить двумя способами:
Литерал: ДАТАВРЕМЯ(1, 1, 1)
Специальное слово: ЗНАЧЕНИЕ(ДатаВремя.ПустаяДата)
Второй вариант считается более «красивым» стандартом разработки.
Остались вопросы?
Мы расскажем вам все про 1С в облаке, ответим на любые вопросы и поделимся полезными материалами по обучению.
Расскажите, как сервис 42Clouds помог вашему бизнесу. Отзыв будет опубликован после проверки модератором.