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