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