ВариантСтандартногоПериода.ПроизвольныйПериод

Свойства · Custom

Использовать даты, установленные в качестве периода.

Полное описание, параметры и ограничения

ВариантСтандартногоПериода.ПроизвольныйПериод (StandardPeriodVariant.Custom)

ВариантСтандартногоПериода (StandardPeriodVariant)

ПроизвольныйПериод (Custom)

Доступен, начиная с версии 8.1.

Описание:
Использовать даты, установленные в качестве периода.
Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Не запускать отбор с пустым или перевёрнутым периодом

Конструктор без аргументов не выбирает сегодняшний день. Сначала видим пустые границы, затем заполняем собственную неделю и проверяем порядок дат.

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

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

Подготовка

  1. Выполняйте в серверном общем модуле новой учебной базы. Стандартные периоды здесь создаются в памяти и не читают бизнес-данные.

  2. Дата в этих упражнениях имеет точность до секунды. Пустая дата не означает текущий день. Часовые пояса и часовой пояс внешнего API — отдельная часть контракта.

Период = Новый СтандартныйПериод;
Сообщить(Период.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод);
Сообщить(Не ЗначениеЗаполнено(Период.ДатаНачала));
Сообщить(Не ЗначениеЗаполнено(Период.ДатаОкончания));
Если Не ЗначениеЗаполнено(Период.ДатаНачала) Или Не ЗначениеЗаполнено(Период.ДатаОкончания) Тогда
    Сообщить("Пустой период: отбор ещё не выполняем");
КонецЕсли;
Период.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод;
Период.ДатаНачала = Дата(2024, 2, 5);
Период.ДатаОкончания = КонецДня(Дата(2024, 2, 11));
Если Не ЗначениеЗаполнено(Период.ДатаНачала) Или Не ЗначениеЗаполнено(Период.ДатаОкончания) Тогда
    ВызватьИсключение "Заполните обе границы учебного периода";
КонецЕсли;
Если Период.ДатаНачала > Период.ДатаОкончания Тогда
    ВызватьИсключение "Начало не должно быть позже окончания";
КонецЕсли;
Сообщить(Период.ДатаНачала = Дата(2024, 2, 5, 0, 0, 0));
Сообщить(Период.ДатаОкончания = Дата(2024, 2, 11, 23, 59, 59));
Сообщить("Границы заполнены и согласованы; теперь их можно передать нужному алгоритму");

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

  1. Без аргументов получаем произвольный период с пустыми датами, а не относительный вариант Сегодня.

  2. Не ЗначениеЗаполнено обнаруживает незаданные границы до запроса. В этой части пример только сообщает об отсутствии данных.

  3. Явно выбираем произвольный вариант и присваиваем начало 5 февраля, окончание конца дня 11 февраля.

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

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

  1. Пять логических сообщений дают Истина; сначала видно предупреждение о пустом периоде, затем готовность границ.

  2. Замените дату начала на 12 февраля: получите контрольное исключение Начало не должно быть позже окончания. Верните 5 февраля для положительного прохода.

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

Готовый шаблон проверки произвольного периода до выполнения отбора.

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

  1. Не подменяйте отсутствующие пользовательские границы текущим месяцем незаметно: это изменяет смысл отчёта.

  2. Это проверка интервала, а не права чтения данных и не подтверждение наличия документов в периоде.

  3. Для относительного варианта задавайте Вариант; не смешивайте его с произвольными границами без явного переключения.

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

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

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

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

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