8.х Изменение цвета фона строки табличного поля

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

  1. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Просмотрел ранее созданные темы этой тематики, но так и не понял, как это все делается... помогите разобратся)
    УТ 10.3
    Внешня обработка... в ней табличное поле, в которое выводится список документов из запроса...
    добавлена колонка Флаг тип булево...
    Необходимо сделать:
    пользователь выбирает нужные ему документы, поставив в колонке флаг значение истина...
    когда флагу устанавливается значение истина, должна происходить проверка по этому документу...
    если в ТЧ документа есть номенклатуры у которых количество в документе превышают остатки на складе, то цвет фона строки должен стать красным и выдать сообщение с названием этих номенклатур. А если количество на складе превышает или равно указанному количеству номенклатуры в документе, то цвет фона должен стать например синим...
  2. DmitryS
    Offline

    DmitryS Опытный в 1С

    Регистрация:
    20 июл 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Используй обработчик события табличного поля "ПриВыводеСтроки".
    В обработчик передается текущая выводимая строка "ДанныеСтроки". Для управления оформлением используй параметр "ОформлениеСтроки". Подробней в синтакс-помощнике.
  3. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!

    Вот так, работает на 100%

    Код:
    Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
    Если ОформлениеСтроки.ДанныеСтроки.Соответствие Тогда
    Для каждого ОформлениеЯчейки из ОформлениеСтроки.Ячейки Цикл
    ОформлениеЯчейки.ЦветФона = WebЦвета.Аквамарин;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    
    Цвет изменяется в зависимости от значения в колонке Соответствие - булево

    Вложения:

    • 111.JPG
      111.JPG
      Размер файла:
      94,5 КБ
      Просмотров:
      469
  4. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    такой вариант и у меня работает=))) проблема состоит в том, что мне нужно нужно делать ещё одну проверку, как сказанно в первом моем сообщении...
    когда я указываю вторую проверку и указываю ещё один цвет, то происходит следующее:
    выбираю один документ, он подсвечивается голубым, как и должен... затем выбираю второй документ, он должен подсвечиватся красным и он подсвечивается красным, только вместе с этим начинают красным подсвечиватся все строки у которых стоит флаг - истина...
  5. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Код форматирования свойств строки выкладывай. Дело в том что обработка срабатывает для всех строк при изменении одной строки, я гляну что у тебя там, и твой код подправлю.
  6. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    я вообще делал так:
    Код:
    Процедура ТабличноеПолеПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ДанныеСтроки.Флаг Тогда
    Если ПроверкаПоОстаткам() Тогда
    ОформлениеСтроки.ЦветФона = WebЦвета.Красный;
    Иначе
    ОформлениеСтроки.ЦветФона = WebЦвета.Голубой;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    
    
    но как я понимаю, необходимо как то обращатся к текущей строке и менять оформление конкретно для неё...
  7. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Код:
    Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
    
    Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
    Если ОформлениеСтроки.ДанныеСтроки.Соответствие Тогда
    Для каждого ОформлениеЯчейки из ОформлениеСтроки.Ячейки Цикл
    Если ОформлениеСтроки.ДанныеСтроки.Комментарий = "" Тогда
    ОформлениеЯчейки.ЦветФона = WebЦвета.Аквамарин; 
    Иначе
    ОформлениеЯчейки.ЦветФона = WebЦвета.БледноЗолотистый;
    Конецесли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    
    КонецПроцедуры
    
    
    
    Оформите все правильно, и все у Вас работать будет.
    Процедуру видите которую я использую, перебираются все строки, текущая не нужна, результат в скрине, пробуйте.

    Далее по аналогии. Удачи!

    Вложения:

    • 112.JPG
      112.JPG
      Размер файла:
      28,9 КБ
      Просмотров:
      308
  8. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого ОформлениеСтроки из ОформленияСтрок Цикл        
    Если ОформлениеСтроки.ДанныеСтроки.Флаг Тогда            
    Для каждого ОформлениеЯчейки из ОформлениеСтроки.Ячейки Цикл
    Если ПроверкаПоОстаткам() Тогда                    
    ОформлениеЯчейки.ЦветФона = WebЦвета.Аквамарин;                 
    Иначе                    
    ОформлениеЯчейки.ЦветФона = WebЦвета.БледноЗолотистый;                
    Конецесли;            
    КонецЦикла;        
    КонецЕсли;    
    КонецЦикла;
    КонецПроцедуры
    
    
    
    
    
    Первый шаг:
    Посмотреть вложение 2687
    Второй шаг:
    Посмотреть вложение 2688
    Третий шаг:
    Посмотреть вложение 2689
    Четвертый шаг:
    Посмотреть вложение 2690
    Пятый шаг:
    Посмотреть вложение 2691
    т.е. первые 3и шага, выбираю строки по отдельности...
    потом выбираю две строки...
    и на пятом шаге должен быть результат: 1я и 3я строки золото, а 2я - аквамарин...
    но имеем, что имеем=))


    блин, почему то картинки не показываются... позже ещё раз прикреплю

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      46,9 КБ
      Просмотров:
      249
    • 2.JPG
      2.JPG
      Размер файла:
      45 КБ
      Просмотров:
      246
    • 3.JPG
      3.JPG
      Размер файла:
      45,4 КБ
      Просмотров:
      186
    • 4.JPG
      4.JPG
      Размер файла:
      45 КБ
      Просмотров:
      162
    • 5.JPG
      5.JPG
      Размер файла:
      43,6 КБ
      Просмотров:
      122
  9. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Всех благодарю за помощь!!!
    разобрался)) Реализовал через Событие ПриВыводеСтроки
    :unsure:

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