Раскрасить даты календаря 1С 8.2

Раскрасить даты календаря 1С 8.2

// Процедура-обработчик события При выводе периода
// реквизита формы Календарь
&НаКлиенте
Процедура КалендарьПриВыводеПериода(Элемент, ОформлениеПериода)
 Попытка 
  МассивДат = ПолучитьМассивРегламентированныхДат(ФинансовыйГод);
  Для Каждого ДатаПериода Из ОформлениеПериода.Даты Цикл
   Если МассивДат.Найти(ДатаПериода.Дата) <> Неопределено Тогда
    ДатаПериода.ЦветФона = webЦвета.БледноЗеленый;
   КонецЕсли;
   Если ДеньНедели(ДатаПериода.Дата)>=6 Тогда
    ДатаПериода.ЦветТекста = webЦвета.Красный; 
   КонецЕсли;
  КонецЦикла;
 Исключение
 КонецПопытки;

КонецПроцедуры

Обратите внимание, в процедуре-обработчике события ПриВыводеПериода реквизита формы типа Дата с заданным видом: Поле календаря мы задаем оформление бледно-зеленым цветом для дат, находящихся в массиве регламентированных дат и красим красным выходные.

Выходные по умолчанию также красятся красным цветом, однако это оформление сбрасывается для тех месяцев, в которых будут найдены регламентированные даты.

Также для удобства пользователей Вы можете воспользоваться событием ПриАктивизацииДаты:

// Процедура-обработчик события При активизации даты
// реквизита формы Календарь
&НаКлиенте
Процедура КалендарьПриАктивизацииДаты(Элемент)
 
 // попробовать менять подсказку при активизации даты
 Если Элементы.Календарь.ВыделенныеДаты.Количество() = 1 Тогда
  Для Каждого ДатаКалендаря Из Элементы.Календарь.ВыделенныеДаты Цикл
   ИнформацияОДате = ПолучитьИнформациюОДате(ДатаКалендаря);
   Прервать; 
  КонецЦикла;
 Иначе
  ИнформацияОДате = “Выделено несколько дат.”;
 КонецЕсли;
 
КонецПроцедуры