Инициирует событие ПриВыводеПериода для всех видимых в календаре месяцев.
Синтаксис
Обновить()Примеры платформы
ЭлементыФормы.ПроизводственныйКалендарь.Обновить();Полное описание, параметры и ограничения
ПолеКалендаря.Обновить (CalendarBox.Refresh)
ПолеКалендаря (CalendarBox)
Обновить (Refresh)
Доступен, начиная с версии 8.0.
Синтаксис:
Обновить()
Описание:
Инициирует событие ПриВыводеПериода для всех видимых в календаре месяцев.
Доступность:
Толстый клиент.
Пример:
ЭлементыФормы.ПроизводственныйКалендарь.Обновить();
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Обновить оформление собственного учебного дня
Обновить повторно вызывает ПриВыводеПериода для видимых месяцев. В обработчике оформляем только 6 октября, правильно раскрывая КлючИЗначение.
Где и как запускать
Полный модуль собственной обычной формы внешней обработки. Только толстый клиент с обычными формами.
Подготовка
Создайте отдельную внешнюю обработку с обычной формой в учебной базе. Только толстый клиент с обычными формами: не управляемая форма и не веб-клиент.
Создайте реквизит УчебныйСтатус (Строка 20) и элемент ПолеСтатуса именно вида ПолеВыбора, свяжите его Данные с этим реквизитом. Добавьте самостоятельное ПолеКалендаря с именем УчебныйКалендарь и обычную кнопку УчебнаяКоманда.
Свяжите ПриОткрытии формы и действие кнопки с одноимёнными процедурами из полного модуля. Каждый урок заменяет модуль только своей копии формы.
Поля относятся только к этой учебной форме. Нет чтения рабочих справочников, записи документов, изменения производственного календаря или передачи данных.
Только для этого урока свяжите событие ПриВыводеПериода элемента УчебныйКалендарь с процедурой УчебныйКалендарьПриВыводеПериода из модуля. Без этой связи метод Обновить не вызовет ваш обработчик.
Процедура ПриОткрытии()
УчебныйСтатус = "draft";
Поле = ЭтаФорма.ЭлементыФормы.ПолеСтатуса;
Варианты = Новый СписокЗначений;
Варианты.Добавить("draft", "Черновик");
Варианты.Добавить("published", "Опубликован");
Поле.СписокВыбора = Варианты;
Календарь = ЭтаФорма.ЭлементыФормы.УчебныйКалендарь;
Календарь.НачалоПериодаОтображения = Дата(2026, 10, 1);
Календарь.КонецПериодаОтображения = Дата(2026, 10, 31);
Календарь.ТекущаяДата = Дата(2026, 10, 4);
КонецПроцедуры
Процедура УчебнаяКоманда(Кнопка)
Календарь = ЭтаФорма.ЭлементыФормы.УчебныйКалендарь;
Календарь.Обновить();
Сообщить("Запрошено оформление всех видимых месяцев собственного календаря");
КонецПроцедуры
Процедура УчебныйКалендарьПриВыводеПериода(ОформлениеПериода)
УчебныйДень = Дата(2026, 10, 6);
Если УчебныйДень < ОформлениеПериода.НачалоПериода Или УчебныйДень > ОформлениеПериода.КонецПериода Тогда
Возврат;
КонецЕсли;
ОформлениеПериода.Доступность = Истина;
ОформлениеПериода.ЦветТекста = Новый Цвет(24, 40, 60);
ОформлениеПериода.ЦветФона = Новый Цвет(250, 252, 255);
ОформлениеПериода.Шрифт = Новый Шрифт(ОформлениеПериода.Шрифт, , 11, Ложь);
Пара = ОформлениеПериода.Даты.Получить(УчебныйДень);
Если Пара = Неопределено Тогда
ВызватьИсключение "В собственном периоде нет оформления 6 октября";
КонецЕсли;
Оформление = Пара.Значение;
Если ТипЗнч(Оформление) <> Тип("ОформлениеДаты") Тогда
ВызватьИсключение "Ожидалось оформление собственной даты";
КонецЕсли;
Оформление.Доступность = Истина;
Оформление.ОтображатьКакВыходнойДень = Истина;
Оформление.Подсказка = "Учебный день, не запись производственного календаря";
Оформление.ЦветТекста = Новый Цвет(24, 40, 60);
Оформление.ЦветФона = Новый Цвет(255, 240, 200);
Оформление.Шрифт = Новый Шрифт(Оформление.Шрифт, , 11, Истина);
Сообщить(Пара.Ключ = УчебныйДень И Оформление.Дата = УчебныйДень);
Сообщить(Оформление.ЦветФона = Новый Цвет(255, 240, 200));
Сообщить("Дат в периоде оформления: " + Строка(ОформлениеПериода.Даты.Количество()));
КонецПроцедуры
Разбор по шагам
У календаря событие ПриВыводеПериода имеет один параметр ОформлениеПериода. Это не три аргумента начала/конца/массива.
Обновить инициирует это событие для всех видимых месяцев; число вызовов зависит от размера календаря.
НачалоПериода и КонецПериода readonly. Условие отбирает только период, содержащий собственный 6 октября.
Даты.Получить(Дата) возвращает КлючИЗначение: ключ — дата, значение — ОформлениеДаты, а не сразу оформление.
Результат проверяется до чтения Значение и затем по типу. Цвет, подсказка и признак выходного относятся только к изображению учебного дня.
Никаких документов, регистров календаря и реальных выходных дней этот обработчик не изменяет.
Как проверить результат
При отображении собственного октября: проверки оформления Истина и сообщение количества дат периода.
После кнопки обработчик вызывается снова; число сообщений не зашито.
6 октября получает учебную подсказку и выделенный фон, не запись в производственном календаре.
Ожидаемый результат
Метод обновления связан с реальным событием и безопасным раскрытием результата КлючИЗначение.
На что обратить внимание
Не обращайтесь к ЦветФона прямо у результата Получить: сначала нужно получить его Значение.
В данном примере ОтображатьКакВыходнойДень — только учебный стиль, не решение об учёте рабочего времени.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.