ВариантСтандартнойДатыНачала

Темы платформы · StandardBeginningDateVariant

Содержит возможные варианты стандартных дат начала.

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

ВариантСтандартнойДатыНачала (StandardBeginningDateVariant)

ВариантСтандартнойДатыНачала (StandardBeginningDateVariant)

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

Значения
НачалоПрошлогоГода (BeginningOfLastYear)
НачалоПрошлогоДня (BeginningOfLastDay)
НачалоПрошлогоКвартала (BeginningOfLastQuarter)
НачалоПрошлогоМесяца (BeginningOfLastMonth)
НачалоПрошлогоПолугодия (BeginningOfLastHalfYear)
НачалоПрошлойДекады (BeginningOfLastTenDays)
НачалоПрошлойНедели (BeginningOfLastWeek)
НачалоСледующегоГода (BeginningOfNextYear)
НачалоСледующегоДня (BeginningOfNextDay)
НачалоСледующегоКвартала (BeginningOfNextQuarter)
НачалоСледующегоМесяца (BeginningOfNextMonth)
НачалоСледующегоПолугодия (BeginningOfNextHalfYear)
НачалоСледующейДекады (BeginningOfNextTenDays)
НачалоСледующейНедели (BeginningOfNextWeek)
НачалоЭтогоГода (BeginningOfThisYear)
НачалоЭтогоДня (BeginningOfThisDay)
НачалоЭтогоКвартала (BeginningOfThisQuarter)
НачалоЭтогоМесяца (BeginningOfThisMonth)
НачалоЭтогоПолугодия (BeginningOfThisHalfYear)
НачалоЭтойДекады (BeginningOfThisTenDays)
НачалоЭтойНедели (BeginningOfThisWeek)
ПроизвольнаяДата (Custom)

Описание:

Содержит возможные варианты стандартных дат начала.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

См. также:
СтандартнаяДатаНачала, свойство Вариант

Использование в версии:

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

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

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

Выбрать стандартную дату начала и явно перейти к конкретной дате

СтандартнаяДатаНачала задаёт одну границу, не полный период. Присваивание Дата переключает Вариант в ПроизвольнаяДата; это проверяется в коде.

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

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

Подготовка

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

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

Пустая = Новый СтандартнаяДатаНачала;
Сообщить(Пустая.Вариант = ВариантСтандартнойДатыНачала.ПроизвольнаяДата);
Сообщить(Не ЗначениеЗаполнено(Пустая.Дата));
Относительная = Новый СтандартнаяДатаНачала(ВариантСтандартнойДатыНачала.НачалоЭтогоМесяца);
Вычисленная = Относительная.Дата;
Сообщить(Вычисленная = НачалоМесяца(Вычисленная));
Сообщить(Относительная.Вариант = ВариантСтандартнойДатыНачала.НачалоЭтогоМесяца);
Относительная.Дата = Дата(2024, 2, 5, 10, 30, 0);
Сообщить(Относительная.Вариант = ВариантСтандартнойДатыНачала.ПроизвольнаяДата);
Сообщить(Относительная.Дата = Дата(2024, 2, 5, 10, 30, 0));
Фиксированная = Новый СтандартнаяДатаНачала(Дата(2024, 2, 1));
Сообщить(Фиксированная.Вариант = ВариантСтандартнойДатыНачала.ПроизвольнаяДата);
Сообщить(Фиксированная.Дата = Дата(2024, 2, 1));
Фиксированная.Вариант = ВариантСтандартнойДатыНачала.НачалоЭтогоМесяца;
Сообщить(Фиксированная.Дата = НачалоМесяца(Фиксированная.Дата));

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

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

  2. Сохраняем прочитанную относительную дату в переменную для проверки формы границы, не подменяя текущую дату фиксированным месяцем.

  3. Присваиваем 5 февраля 10:30. Вариант автоматически становится ПроизвольнаяДата; время сохраняется, не округляется самовольно до полуночи.

  4. Другой объект создаём сразу по дате 1 февраля. Затем Вариант переключаем обратно на относительное начало месяца.

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

  1. Девять логических сообщений дают Истина.

  2. После присваивания Дата прежний относительный вариант сменился на ПроизвольнаяДата; сохранилось время 10:30.

  3. Пустая дата не превращается в текущую сама собой.

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

Разобраны все три конструктора стандартной даты начала и переключение режима.

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

  1. СтандартнаяДатаНачала не имеет ДатаОкончания; для интервала нужен СтандартныйПериод или отдельно согласованная конечная граница.

  2. Не пытайтесь сохранить относительный вариант и одновременно присвоить Дата: присваивание намеренно меняет Вариант.

  3. Дата начала может содержать время. Если нужен целый календарный день, явно применяйте НачалоДня по требованиям задачи.

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

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

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

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

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