Имя: Пароль:
1C
 
Не работает условное оформление в закрытом периоде
0 Prog_man
 
05.06.24
12:47
Добрый день

подскажите по сабжу, в открытом периоде работает УО, в закрытом нет
1 Волшебник
 
05.06.24
12:48
Сказки
2 Prog_man
 
05.06.24
12:48
&НаСервере
Процедура мУстановитьУсловноеОформлениеКонтрагента()
    
    Если ЗначениеЗаполнено(Объект.Дата) Тогда
        мДата = Объект.Дата;
    Иначе
        мДата = ТекущаяДата();
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Объект.Контрагент.мЭДО) Тогда
        Если Объект.Контрагент.мЭДО и НачалоДня(Объект.Контрагент.мНачДатаЭДО) < КонецДня(мДата) Тогда
            Элементы.Контрагент.ЦветФона = WebЦвета.Бирюзовый;  
        Иначе
            Элементы.Контрагент.ЦветФона = WebЦвета.Белый;  
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
3 Prog_man
 
05.06.24
12:49
(1) дату запрета снимаю, все работает, если устанавливаю, то УО не работает включая дату запрета
4 Prog_man
 
05.06.24
12:50
вот это тоже рабочий код, и так же в закрытом периоде не работает

    Если ЗначениеЗаполнено(Объект.Дата) Тогда
        мДата = КонецДня(Объект.Дата);
    Иначе
        мДата = КонецДня(ТекущаяДата());
    КонецЕсли;

        
    //Вставка  
    Если ЗначениеЗаполнено(Объект.Контрагент.мНачДатаЭДО) Тогда
        ЭлементУО = УсловноеОформление.Элементы.Добавить();
        КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(ЭлементУО.Поля, "Контрагент");
        ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор,
        Объект.Контрагент.мНачДатаЭДО, ВидСравненияКомпоновкиДанных.Меньше, мДата);
        ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Бирюзовый);
        //КонецВставки
    КонецЕсли;
5 Prog_man
 
05.06.24
12:51
платформа 8.3.23.1865, Бухгалтерия КОРП 3.0
6 Prog_man
 
05.06.24
12:52
Это глюк платформы?
7 Ненавижу 1С
 
05.06.24
12:55
1. сделайте отладку
2. проверьте, что другое условное оформление не перекрывает текущее
8 Ненавижу 1С
 
05.06.24
12:55
(6) с точки зрения платформы никакого закрытого периода не существует
9 Prog_man
 
05.06.24
13:00
(7) отладка показывает все правильно на сравнении дат, другое условное не перекрывает (ну или я не нашел где). в открытом периоде все норм. в закрытом УО не работает
10 Ненавижу 1С
 
05.06.24
13:05
(9) в закрытом периоде этот код вообще в отладку попадает?
11 Prog_man
 
05.06.24
13:06
странно для табличных частей УО работает
12 Prog_man
 
05.06.24
13:07
(10) да, попадает
13 Prog_man
 
05.06.24
13:12
подскажите куда копать
14 Ненавижу 1С
 
05.06.24
13:13
(13) поставить точку останова  в месте где условное оформление уже создано и посмотреть на него отладчиком
15 youalex
 
05.06.24
13:18
скорее всего доступность/толькопросмотр приоритетнее УО
16 Prog_man
 
05.06.24
13:18
(14) не совсем понял где поставить.

в строчке "Если Объект.Контрагент.мЭДО и НачалоДня(Объект.Контрагент.мНачДатаЭДО) < КонецДня(мДата) Тогда" показывает Истину
17 Prog_man
 
05.06.24
13:19
(15) т.е это ограничение платформы ?
почему тогда в ТЧ УО работает?
18 youalex
 
05.06.24
13:21
(13) попробуй например для эксперимента шрифт сделать полужирным в УО
19 Prog_man
 
05.06.24
13:37
(18) шрифт устанавливается жирным, не смотря на то, что условие не срабатывает

Объект.Контрагент.мНачДатаЭДО, ВидСравненияКомпоновкиДанных.Меньше, мДата);

мНачДатаЭДО = 01.04.2024

мДата = 01.03.2024
20 Ненавижу 1С
 
05.06.24
13:42
всё таки миста лучше отладчика
21 Prog_man
 
05.06.24
13:49
не знаю чем цвет фона не зашел, вот такой код работает
22 Prog_man
 
05.06.24
13:50
&НаСервере
Процедура мУстановитьУсловноеОформлениеКонтрагента()
    
    Если ЗначениеЗаполнено(Объект.Дата) Тогда
        мДата = КонецДня(Объект.Дата);
    Иначе
        мДата = КонецДня(ТекущаяДата());
    КонецЕсли;
        
    Если ЗначениеЗаполнено(Объект.Контрагент.мЭДО) Тогда
        Если Объект.Контрагент.мЭДО и НачалоДня(Объект.Контрагент.мНачДатаЭДО) < КонецДня(мДата) Тогда
            //Элементы.Контрагент.ЦветФона = WebЦвета.Бирюзовый;    
            Элементы.Контрагент.Шрифт = Новый Шрифт(ШрифтыСтиля.ШрифтНовостей, , , Истина); //Жирный  
        Иначе  
            Элементы.Контрагент.Шрифт = Новый Шрифт(ШрифтыСтиля.ОбычныйШрифтТекста, , , );  
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
23 Prog_man
 
05.06.24
13:52
благодарю за советы
24 youalex
 
05.06.24
13:52
(19) вот здесь возможно неправильно
ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор, Объект.Контрагент.мНачДатаЭДО ...

из описания функции:
//  ИмяПоля                 - Строка - имя поля компоновки данных (заполняется всегда).

а ты получается дату в этот параметр отдаешь
25 Prog_man
 
05.06.24
14:01
(24) может и так, почему тогда в открытом периоде работает, а в закрытом нет)) ?
26 Prog_man
 
05.06.24
14:02
+ во (2) функции УО не вызываются
27 Ненавижу 1С
 
05.06.24
14:24
(15) проверил, видимо так оно и есть
AdBlock убивает бесплатный контент. 1Сергей