8.х Программное изменение цвета определенных ячеек

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

Статус темы:
Закрыта.
  1. TopicStarter Overlay
    Poverina
    Offline

    Poverina

    Регистрация:
    14 фев 2014
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. В процедуре ТабличнаяЧасть1ПриОкончанииРедактирования нужно подсветить ячейку цветом или изменить цвет фона. Поняла, как можно выделить весть столбец:

    Код:
    Элементыформы.ТабличнаяЧасть1.Колонки["Колонка" + Строка(Счетчик)].ЦветТекстаПоля = Новый Цвет(255, 0, 0);
    
    Как ограничится только одной ячейкой?

    ЗЫ - как установить цвет фона ячейки?
    ЗЫ2 - как получить данные текущей ячейки?
    Последнее редактирование: 14 мар 2014
  2. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Я вам рекомендую использовать событие ПриПолученииДанных,
    где
    Код:
    Для каждого Оформления Из ОформленияСтрок Цикл
            //Здесь же можно задать условие раскраски
            //Например,
            //Если Оформления.ДанныеСтроки.ВашРеквизитТабЧасти = КакомуТоЗначению Тогда
            //Оформления .Ячейки.ИмяВашейЯчейки.ЦветФона = WebЦвета.Красный;
            //КонецЕсли;
            
            //Если просто раскрасить ячейки во всех строках
            Оформления .Ячейки.ИмяВашейЯчейки.ЦветФона = WebЦвета.Красный;
        КонецЦикла;
    
    Poverina нравится это.
  3. Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    Или ПриВыводеСтроки используйте.
  4. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    При выводе не используйте, большая и необоснованная нагрузка
  5. TopicStarter Overlay
    Poverina
    Offline

    Poverina

    Регистрация:
    14 фев 2014
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Что-то не туда я подставила х_х

    Код:
    Процедура ТабличнаяЧасть1ПриПолученииДанных(Элемент, ОформленияСтрок)
        Для Счетчик = 1 По 31 Цикл
            Для каждого ТекущаяСтрока ИЗ ТабличнаяЧасть1 Цикл
                Для каждого Оформления Из ОформленияСтрок Цикл
                    Если ТекущаяСтрока["Колонка" + Строка(Счетчик)] = "Б" // тут нужно проверить содержимое ячейки, а не колонки, как это сделать?
                    Тогда
                        ОформленияСтрок.Ячейки["Колонка" + Строка(Счетчик)].ЦветФона = WEBЦвета.Зеленый;
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецПроцедуры
    
    Выдает ошибку:

  6. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Как то так
    Код:
    Для каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл
    Для каждого Ячейка Из ОформлениеСтроки.Ячейки Цикл
    Если ОформлениеСтроки.ДанныеСтроки.ИмяКолонки = "Б" Тогда // тут нужно проверить содержимое ячейки, а не колонки, как это сделать?
    Ячейка.ЦветФона = WEBЦвета.Зеленый;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    ОформлениеСтроки.ДанныеСтроки - содержит непосредственно данные строки, посмотрите отладчиком
    В вашем случае можно и вот так
    Код:
    Для каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл
    Если ОформлениеСтроки.ДанныеСтроки.ИмяКолонки = "Б" Тогда // тут нужно проверить содержимое ячейки, а не колонки, как это сделать?
    ОформлениеСтроки.Ячейки[ИмяЯчейки].ЦветФона = WEBЦвета.Зеленый;
    КонецЕсли;
    КонецЦикла;
    Это будет работать быстрее
    Poverina нравится это.
  7. TopicStarter Overlay
    Poverina
    Offline

    Poverina

    Регистрация:
    14 фев 2014
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Получилось, спасибо!
Статус темы:
Закрыта.

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