Вход | Регистрация
 

Условное оформление в табличной части при активизации строки

Условное оформление в табличной части при активизации строки
Я
   Varlant1n
 
05.05.21 - 17:50
Здравствуйте. В табличной части документа "ЗаказКлиента" очень часто бывают строки , которые разделены стандартной фукнцией деления строки. Мне нужно для удобства пользователей добавить выделение одинаковых строк при активизации строки. То есть при выделении строки, если у строки есть вторая строка с той же номенлкатурой, то выделять обе эти строки. Для начала я добавил внизу поле количество, которое показывает общее количество выделенной строки, если есть еще одна строка  и уже с помощью нее добавил условное оформление. Проблема в том, что одинаковые строки выделяются, но после того, как я перехожу на другую строку, условное офомрление сохраняется. Посмотрите, пожалуйста на код, который я написал. Может у кого-то появятся идеи. Или может кто-то посоветует код лучше:

&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
    Если ТекущаяСтрока <> Неопределено Тогда
        ТекущаяНоменклатура = ТекущаяСтрока.Номенклатура;
        Количество = 0;
        Для каждого Строка Из Объект.Товары Цикл
            Если Строка.Номенклатура = ТекущаяНоменклатура Тогда
                Количество = Количество + Строка.Количество;  
            КонецЕсли;
        КонецЦикла;
        КоличествоВФорме = Количество;
        
        Если ТекущаяСтрока.Количество <> КоличествоВФорме Тогда
            ТекущаяНоменклатураУО = ТекущаяСтрока.Номенклатура;
            УстановитьУсловноеОформлениеВТЧ(ТекущаяНоменклатураУО);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура УстановитьУсловноеОформлениеВТЧ(ТекущаяНоменклатураУО)

    ЭлементУО = УсловноеОформление.Элементы.Добавить();
    ЭлементУО.Использование = Истина;
    ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Голубой);
    
    ЭлементОтбора = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Номенклатура");
    ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТекущаяНоменклатураУО");
    ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
    
    ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары");

КонецПроцедуры
   acht
 
1 - 05.05.21 - 20:08
А это, оказывается, популярное тестовое задание.

https://forum.infostart.ru/forum9/topic257912/
   acht
 
2 - 05.05.21 - 20:10
О, да это ж опять ты, Самир. Не берут?
   Andreyyy
 
3 - 05.05.21 - 20:34
(0) Реквизит формы, тип = номенклатура.
Условное оформление - подсветка строки, если текущая номенклатура  = добавленный реквизит.
При активизации строки заполнять добавленный реквизит формы текущей номенклатурой.
   acht
 
4 - 05.05.21 - 20:45

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.