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