Рассчитать границы месяца для условия запроса

Учебные задачи

Используйте интервал от начала месяца включительно до начала следующего месяца исключительно. Это позволяет не подбирать последнюю секунду месяца. В запросе условие имеет вид: Дата >= &Начало И Дата < &Конец.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Исходная дата фиксирована: 15 сентября 2026 года.

  2. Используется полуоткрытый интервал: начало включено, конец исключён.

ИсходнаяДата = Дата(2026, 9, 15, 12, 30, 0);
НачалоПериода = НачалоМесяца(ИсходнаяДата);
КонецПериода = ДобавитьМесяц(НачалоПериода, 1);

Сообщить(Формат(НачалоПериода, "ДФ=dd.MM.yyyy HH:mm:ss"));
Сообщить(Формат(КонецПериода, "ДФ=dd.MM.yyyy HH:mm:ss"));

Разбор по шагам

  1. НачалоМесяца обнуляет время и устанавливает первый день.

  2. ДобавитьМесяц получает начало следующего месяца.

  3. Формат применяется только для отображения; сравнивать даты нужно как даты.

Как проверить результат

  1. Границы: 01.09.2026 00:00:00 и 01.10.2026 00:00:00.

  2. Для декабря верхняя граница должна перейти на 1 января следующего года.

Ожидаемый результат

01.09.2026 00:00:00
01.10.2026 00:00:00

На что обратить внимание

  1. В условии запроса используйте >= начало и < конец.

  2. Не заменяйте верхнюю границу на последний день без учёта времени.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.