Начало интервала задается датой за несколько дней до рабочей даты, конец интервала - через несколько дней после рабочей даты.
Полное описание, параметры и ограничения
ВариантГраницыИнтервала.Смещение (IntervalBoundVariant.BeforeAfter)
ВариантГраницыИнтервала (IntervalBoundVariant)
Смещение (BeforeAfter)
Доступен, начиная с версии 8.0.
Описание:
Начало интервала задается датой за несколько дней до рабочей даты, конец интервала - через несколько дней после рабочей даты.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Получить семь дней до рабочей даты и два дня после неё
Строим окно просмотра относительно уже действующей рабочей даты, не подменяя её в сеансе пользователя.
Где и как запускать
Полный модуль управляемой формы собственной обработки, только толстый клиент.
Подготовка
Собственная учебная база 8.5.1.1343, толстый клиент Windows. Создайте внешнюю обработку с управляемой формой, командой Выполнить и её кнопкой; вставьте весь модуль выбранного урока в форму.
НастройкаПериода доступна толстому клиенту, не тонкому/веб-клиенту и не серверу. Урок не подключается к спискам документов и не меняет их отбор.
Для урока с Редактировать нужен режим конфигурации, допускающий модальные вызовы. Не включайте его в рабочей конфигурации ради примера: выберите собственный учебный стенд с подходящим режимом.
Фиксированные даты относятся к сентябрю 2026 года. В уроке со смещениями рабочая дата только читается, не изменяется.
&НаКлиенте
Процедура Выполнить(Команда)
Рабочая = РабочаяДата;
Период = Новый НастройкаПериода;
Период.ВариантНастройки = ВариантНастройкиПериода.Интервал;
Период.ВариантНачала = ВариантГраницыИнтервала.Смещение;
Период.ВариантОкончания = ВариантГраницыИнтервала.Смещение;
Период.СмещениеНачала = 7;
Период.СмещениеОкончания = 2;
Сообщить(Период.СмещениеНачала = 7);
Сообщить(Период.СмещениеОкончания = 2);
Сообщить(Период.ПолучитьДатуНачала() = НачалоДня(Рабочая - 7 * 86400));
Сообщить(Период.ПолучитьДатуОкончания() = КонецДня(Рабочая + 2 * 86400));
Сообщить(РабочаяДата = Рабочая);
Сообщить(СтрШаблон("Опорная рабочая дата: %1", Формат(Рабочая, "ДФ=dd.MM.yyyy")));
КонецПроцедурыРазбор по шагам
РабочаяДата — глобальное свойство текущего сеанса. Урок лишь сохраняет его значение в локальную переменную.
Положительное СмещениеНачала=7 означает семь дней ДО рабочей даты, а СмещениеОкончания=2 — два дня ПОСЛЕ неё.
Смещения имеют смысл именно для варианта Смещение. Вариант КонкретнаяДата не применяет их к ДатаНачала.
86400 используется для фиксированного числа секунд в арифметике значения Дата 1С; это не расчёт UTC-интервала с часовыми поясами.
Как проверить результат
Первые пять проверок ожидаются Истина, затем показана фактическая рабочая дата.
Дата может отличаться от календарной даты компьютера. Урок не должен изменять её или подстраивать под заранее обещанный день.
Ожидаемый результат
Показано относительное окно вокруг рабочей даты с независимыми положительными смещениями начала и окончания.
На что обратить внимание
Не ставить -7 в СмещениеНачала для получения семи дней назад: знак уже заложен в назначение свойства.
Рабочая дата и ТекущаяДата не обязаны совпадать; не заменять одно другим без требования задачи.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.