8.х Доступ к ячейки Табличной части в УФ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alboldinov, 4 июн 2015.

  1. TopicStarter Overlay
    alboldinov
    Offline

    alboldinov Опытный в 1С

    Регистрация:
    8 сен 2014
    Сообщения:
    183
    Симпатии:
    0
    Баллы:
    26
    Как получить доступ к ячейки табличной части, например изменить цвет, шрифт определенной ячейки?
    События ПриВыводеСтроки в УФ нет.
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Когда то писал
    Код:
    // WebЦвета.ХакиТемный этот цвет приятный на вид и при распечатки на нецветном принтеревидно хорошо видно содержимое ячейки.
    // Изменяет фон ячеек со значениями Суббота и воскресенье.
    // ................................................................................
    Процедура ИзменениеФонаЯчейкиМакета(Макет, ТабДок, ИмяДляПоиска, Префикс, КоличествоПозиций)
       
        Если Префикс = "ЗН" Тогда
            Для каждого ТекСтрока Из ИмяДляПоиска Цикл
                ИмяЯчейки = Макет.НайтиТекст(Префикс + ТекСтрока.НомерДняНедели);
                Если Лев(Прав(ИмяЯчейки.Имя, 2),1) = "C" Тогда
                    НачалоОтсчета = Число(Лев(Прав(ИмяЯчейки.Имя, 3),1));
                Иначе
                    НачалоОтсчета = Число(Лев(Прав(ИмяЯчейки.Имя, 4),1));
                КонецЕсли;
                Для i=1 По КоличествоПозиций Цикл
                    НачалоЯчейки = "R";
                    Если i=1 Тогда
                        НачалоОтсчета = НачалоОтсчета;
                    Иначе
                        НачалоОтсчета = НачалоОтсчета + 1;
                    КонецЕсли;
                    Если Лев(Прав(ИмяЯчейки.Имя, 2),1) = "C" Тогда
                        КонецЯчейки = Прав(ИмяЯчейки.Имя, 2);
                    Иначе
                        КонецЯчейки = Прав(ИмяЯчейки.Имя, 3);
                    КонецЕсли;
                    СобраннаяЯчейка = НачалоЯчейки + Строка((НачалоОтсчета)) + КонецЯчейки;
                    Ячейка = ТабДок.Область(СобраннаяЯчейка);
                    Если Ячейка <> Неопределено Тогда
                        Ячейка.ЦветФона = WebЦвета.ХакиТемный;
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
        Иначе
            Для каждого ТекСтрока Из ИмяДляПоиска Цикл
                ИмяЯчейки = Макет.НайтиТекст(Префикс + ТекСтрока.НомерДняНедели);
                Ячейка = ТабДок.Область(ИмяЯчейки.Имя);
                Если Ячейка <> Неопределено Тогда
                    Ячейка.ЦветФона = WebЦвета.ХакиТемный;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    
    КонецПроцедуры
  3. TopicStarter Overlay
    alboldinov
    Offline

    alboldinov Опытный в 1С

    Регистрация:
    8 сен 2014
    Сообщения:
    183
    Симпатии:
    0
    Баллы:
    26
    Это для макета, а для ТабличнойЧасти реквизита формы? Условное оформление формы тоже не подходит, не нашел как туда выражения встраивать
    Последнее редактирование: 4 июн 2015
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Прошу прощения. Не увидел. Под рукой нет УФ. Попозже смогу посмотреть.
  5. denris
    Offline

    denris

    Регистрация:
    15 мар 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Через условное оформление

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

    //оформляемые поля
    ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("<ИмяОформляемогоПоля>");

Поделиться этой страницей