Имя: Пароль:
1C
 
Как раскрасить поле календаря?
0 Kate123
 
11.09.08
16:42
Есть поле календаря на нем нужно выделять даты разными цветами, в зависимости от выбранного значения некоторого реквизита.Возможно ли это?
1 Kate123
 
11.09.08
16:51
И если можно то как? У меня полностью все даты перекрашиваются(((
2 asady
 
11.09.08
17:21
(0) СП читал?
Элемент управления "Поле календаря" предназначен для показа календаря и выбора даты.
Оформление календаря (отличное от стандартного) выполняется в теле процедуры-обработчике события ПриВыводеПериода.
3 ymv
 
11.09.08
17:26
Вариации на тему:

Процедура ПолеКалендаряПриВыводеПериода(Элемент, ОформлениеПериода)
   
   Для каждого ТекДата Из ОформлениеПериода.Даты Цикл
       
       //Пятницо!!! День программиста!!!
       Если ТекДата.Дата = Дата("20080912") ИЛИ
            ТекДата.Дата = Дата("20080913") ИЛИ
            ТекДата.Дата = Дата("20080914") Тогда
           
           ТекДата.ЦветФона = Новый Цвет(255, 0, 0); //Красный день календаря    
           
       //Понедельник - как мне плохо!!!
       ИначеЕсли ТекДата.Дата = Дата("20080915") Тогда
           
           ТекДата.ЦветФона = Новый Цвет(0, 255, 0); //Зеленее не бывает    
           
       КонецЕсли;    
       
   КонецЦикла;    
   
КонецПроцедуры
4 Kate123
 
12.09.08
11:38
(3) так то оно работает, но только не совсем так как мне надо.
Делаю так, но при выборе следующего значения уже выделенные окрашиваются в новый цвет.
   Если ВидДня = Перечисления.ВидДня.Работа Тогда
       ПолеКалендаря.ЦветФонаВыделения = ЦветРаботы;    
   ИначеЕсли ВидДня = Перечисления.ВидДня.Выходной Тогда
       ПолеКалендаря.ЦветФонаВыделения = ЦветВыходного;    
   ИначеЕсли ВидДня = Перечисления.ВидДня.Учеба Тогда
       ПолеКалендаря.ЦветФонаВыделения = ЦветУчебы;
   ИначеЕсли ВидДня = Перечисления.ВидДня.Отпуск Тогда
       ПолеКалендаря.ЦветФонаВыделения = ЦветОтпуска;
   ИначеЕсли ВидДня = Перечисления.ВидДня.Прогул Тогда
       ПолеКалендаря.ЦветФонаВыделения = ЦветПрогула;
   КонецЕсли;
А хотелось бы , чтоб выделенные остались со своим цветом, а новые(которые буду выделять) окрашивались в другой цвет.
Подскажите, пожалуйста, как это сделать.
5 Kate123
 
12.09.08
12:00
Совсем никто с таким не сталкивался чтоль?
6 Kate123
 
12.09.08
14:42
А еще вот так сделала и опять не работает,
Процедура ПолеКалендаря2ПриВыводеПериода(Элемент, ОформлениеПериода)
   ЦветРаботы        = Новый Цвет(0,0,255); //синий
   ЦветВыходного    = Новый Цвет(255,0,0); //красный
   ЦветУчебы        = Новый Цвет(0,152,0); //заленый
   ЦветОтпуска    = Новый Цвет(255,204,153);  //жёлтый
   ЦветПрогула    = Новый Цвет(0,0,0); //черный
       
       Для каждого ТекДата  Из ОформлениеПериода.Даты Цикл
           Если ВидДня = Перечисления.ВидДня.Работа Тогда
               ТекДата.ЦветТекстаВыделения = ЦветРаботы;    
           
           ИначеЕсли ВидДня = Перечисления.ВидДня.Выходной Тогда
               ТекДата.ЦветТекстаВыделения = ЦветВыходного;
               
           ИначеЕсли ВидДня = Перечисления.ВидДня.Учеба Тогда
               ТекДата.ЦветТекстаВыделения = ЦветУчебы;    
               
           ИначеЕсли ВидДня = Перечисления.ВидДня.Отпуск Тогда
               ТекДата.ЦветТекстаВыделения = ЦветОтпуска;
               
           ИначеЕсли ВидДня = Перечисления.ВидДня.Прогул Тогда
               ТекДата.ЦветТекстаВыделения = ЦветПрогула;
           КонецЕсли;
       КонецЦикла;

   КонецПроцедуры
Подскажите, что еще можно сделать
7 Bober
 
12.09.08
15:23
"Нарисовать" свой календарь в поле табличного документа.
8 Bober
 
12.09.08
15:28
Но лучше писать код правильно -)

Для Каждого ОформлениеДаты Из ОформлениеПериода.Даты Цикл
   
Если ОформлениеДаты.Дата = Дата("20080901000000") Или
 ОформлениеДаты.ЦветФона = WebЦвета.БледноЗеленый;
КонецЕсли;
КонецЦикла;


Удачи
Закон Брукера: Даже маленькая практика стоит большой теории.