Использовать даты, установленные в качестве периода.
Полное описание, параметры и ограничения
ВариантСтандартногоПериода.ПроизвольныйПериод (StandardPeriodVariant.Custom)
ВариантСтандартногоПериода (StandardPeriodVariant)
ПроизвольныйПериод (Custom)
Доступен, начиная с версии 8.1.
Описание:
Использовать даты, установленные в качестве периода.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Не запускать отбор с пустым или перевёрнутым периодом
Конструктор без аргументов не выбирает сегодняшний день. Сначала видим пустые границы, затем заполняем собственную неделю и проверяем порядок дат.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Выполняйте в серверном общем модуле новой учебной базы. Стандартные периоды здесь создаются в памяти и не читают бизнес-данные.
Дата в этих упражнениях имеет точность до секунды. Пустая дата не означает текущий день. Часовые пояса и часовой пояс внешнего API — отдельная часть контракта.
Период = Новый СтандартныйПериод;
Сообщить(Период.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод);
Сообщить(Не ЗначениеЗаполнено(Период.ДатаНачала));
Сообщить(Не ЗначениеЗаполнено(Период.ДатаОкончания));
Если Не ЗначениеЗаполнено(Период.ДатаНачала) Или Не ЗначениеЗаполнено(Период.ДатаОкончания) Тогда
Сообщить("Пустой период: отбор ещё не выполняем");
КонецЕсли;
Период.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод;
Период.ДатаНачала = Дата(2024, 2, 5);
Период.ДатаОкончания = КонецДня(Дата(2024, 2, 11));
Если Не ЗначениеЗаполнено(Период.ДатаНачала) Или Не ЗначениеЗаполнено(Период.ДатаОкончания) Тогда
ВызватьИсключение "Заполните обе границы учебного периода";
КонецЕсли;
Если Период.ДатаНачала > Период.ДатаОкончания Тогда
ВызватьИсключение "Начало не должно быть позже окончания";
КонецЕсли;
Сообщить(Период.ДатаНачала = Дата(2024, 2, 5, 0, 0, 0));
Сообщить(Период.ДатаОкончания = Дата(2024, 2, 11, 23, 59, 59));
Сообщить("Границы заполнены и согласованы; теперь их можно передать нужному алгоритму");Разбор по шагам
Без аргументов получаем произвольный период с пустыми датами, а не относительный вариант Сегодня.
Не ЗначениеЗаполнено обнаруживает незаданные границы до запроса. В этой части пример только сообщает об отсутствии данных.
Явно выбираем произвольный вариант и присваиваем начало 5 февраля, окончание конца дня 11 февраля.
Перед использованием повторно проверяем заполнение и порядок. Непустая дата сама по себе не означает корректный интервал.
Как проверить результат
Пять логических сообщений дают Истина; сначала видно предупреждение о пустом периоде, затем готовность границ.
Замените дату начала на 12 февраля: получите контрольное исключение Начало не должно быть позже окончания. Верните 5 февраля для положительного прохода.
Ожидаемый результат
Готовый шаблон проверки произвольного периода до выполнения отбора.
На что обратить внимание
Не подменяйте отсутствующие пользовательские границы текущим месяцем незаметно: это изменяет смысл отчёта.
Это проверка интервала, а не права чтения данных и не подтверждение наличия документов в периоде.
Для относительного варианта задавайте Вариант; не смешивайте его с произвольными границами без явного переключения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.