Условное оформление в управляемых формах

Публикация № 181336 05.04.13

Разработка - Работа с интерфейсом

Для условного оформления в списках и формах
в обычном приложении использовалось событие ПриПолученииДанных() или ПриВыводеСтроки(),
где через "ячейку" в зависимости от данных строки устанавливали нужное свойство.
С приходом нового режима работы платформы возможности условного оформления расширились.
В данной статье разберем основные аспекты.

Итак начнем.

1. Условное оформление в упр. формах настраивается как в режиме конфигуратора, так и в режиме пользовательском.

- в конфигураторе условное оформление существует на уровне самой формы (как в формах объекта, так и списка):

В форме

 

В формах списка условное оформление существует и на уровне самого динамического списка:

 

2

Добавлять элементы условного оформления можно не прибегая к программированию, но конечно есть возможность и программного добавления элементов, который мы рассмотрим чуть ниже.

- в пользовательском режиме настройки оформления доступны для динамических списков, все настройки оформления в форме документа необходимо выполнять в режиме конфигуратора. Для настройки переходим во все действия списка и выбираем настроить список:

 3

 

 2. Программная работа с условным оформлением (УО).

Начнем с того, что работа с УО доступна только:

&НаСервере

Для Добавления элемента УО в списке нужно обратится к списку и добавить элемент УО:

ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();

Для УО формы добавление происходит через прикладной объект УсловноеОформление:

ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

Далее алгоритмы будут похожими. Для УО нам нужно задать условие отбора, задать значение свойства УО и добавить оформляемые поля.

// Создаем условие отбора
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); // имя поля
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой
//**** Значение для отбора
ЭлементОтбора.ПравоеЗначение = ЗначениеДляОтбора;
// следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка
ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
//****
ЭлементОтбора.Использование = Истина;

Значение свойства УО:

// Установка значения элемента УО
// Возможно обращение как по индексу так и установка через метод
//1.
Элемент = ЭлементОформления.Оформление.Элементы[0];
Элемент.Значение = Цвет;
//2.
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);

Элемент.Использование = Истина;

Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:

// Создаем поля оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления);
ПолеОформления.Использование = Истина;

В качестве ИменПолей нужно передавать строковое представление ИМЕНИ реквизита.

3. Все настройки УО хранятся для каждого пользователя отдельно.

4. Пример.

Очень часто сталкивался с проблемой настройки свойства АвтоОтметкаНезаполненного в ТЧ  по условиюВ обычных формах все решалось в процедурах упомянутых выше, а здесь таких событий нет. А решается это все конечно при помощи УО. Заходим в форме объекта в Условное оформление и видим свойство - Отметка незаполненного. Ну а дальше настроииваем как надо.

4

 

Выводы:

     - Простое условное оформление пользователь может настроить и сам, если его научить :). Это будет сложно конечно, но возможно.

     - УО в табличной части можно задать в конфигураторе через УО формы.

     - Программная работа с УО требуется в случае сложного условия отбора, в таких случаях лучше создавать процедуру в общем модуле использования в различных документах и списках.

Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. KonstB 180 05.04.13 23:24 Сейчас в теме
Выводы:

- Простое условное оформление пользователь может настроить и сам, если его научить :). Это будет сложно конечно, но возможно.


Спасибо, КЭП! )
user603532_fan_club_chelsea; +1 1 Ответить
2. son_v 2 04.07.13 10:29 Сейчас в теме
Доброе время суток. А у меня вопрос к автору. Добавляю условное оформление в Настройку списка в конфигураторе (пример 2 пункта 1 статьи) дополнительно к типовым настройкам (формы списка документа Заказы покупателей и спр. Договоры контрагентов, Управление торговлей ред.11 платформа 8.2.17.169), а в режиме предприятия настройки не обновляются. Куда смотреть, что делать, к кому бежать? чистка кэша не помогает, да и не вариант.
3. AllexSoft 04.07.13 10:33 Сейчас в теме
(2) son_v, есть справочник настройки пользователей как то так, его можно открыть в режиме предприятия через справочник Пользователи.. ну и очистить настройки форм там надо
4. son_v 2 04.07.13 10:42 Сейчас в теме
(3) СПАСИБО!!!!!!!! Сами бы еще годами думали ))
54. svilsa 11 03.08.22 09:39 Сейчас в теме
(3) О боги, это действительно рабочее решение почему не работает условное оформление формы списка управляемых форм, когда добавляешь поле и по его значению раскраску табличной части в уже существующей рабочей базе!
5. Znef 24.09.13 14:08 Сейчас в теме
Спасибо, помогло. Только почему то работает только для Формы, а для таблицы или дерева нет.
Прикрепленные файлы:
6. psa247 18 24.11.13 10:42 Сейчас в теме
(5) Znef, скорее всего, у Вас более свежая платформа. У меня тоже такого нет
7. AllexSoft 24.11.13 14:19 Сейчас в теме
Условное оформление бывает только для формы! Оно включает и условное оформление всех элементов связанных с этой формой, в том числе и таблиц, дерева. Хотя для динамических списков оно может быть отдельно в динамическом списке, с ними сложнее.
(6) psa247, от платформы не зависит, зависит от конфигурации.
rendalina; +1 Ответить
8. psa247 18 24.11.13 14:26 Сейчас в теме
(7) AllexSoft, да, так и есть, спасибо за ответ. Уже кое-чего примитивное настроил на уровне конфы.
для управления оформлением программно в динамическом списке вот так сделал:



&НаСервере
Процедура НастроитьУсловноеФорматирование()
Для Каждого СтрокаДанных Из Объект.СписокКлиентов Цикл
// Условное оформление - Номер первой строки
СтрокаДанных.ВерсияППОтображение = ПолучитьНомерВерсииПП(СтрокаДанных.НоваяВерсия);

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

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

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СписокКлиентов.НоваяВерсия");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(Справочники.ВерсияПП.ПустаяСсылка());
КонецЦикла;
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
НастроитьУсловноеФорматирование();
КонецПроцедуры

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
НастроитьУсловноеФорматирование();
КонецПроцедуры
9. AllexSoft 24.11.13 14:33 Сейчас в теме
(8) psa247, зачем?) чем не подошло условное оформление самого динамического списка ? если оно не обновляется нужно добавить какой нибудь реквизитик (колонку в дин список) сохранить, открыть и проверить условное оформление, потом удалить эту ненужную колонку
PCcomCat; +1 Ответить
10. psa247 18 24.11.13 14:38 Сейчас в теме
(9) AllexSoft, нее, я часа три убил на то, что в толстом клиенте делается 3 минуты
24. PCcomCat 31.05.17 21:31 Сейчас в теме
Вот это трюк в (9) с добавлением реквизита в динамический список! И работает же!
11. AllexSoft 24.11.13 14:43 Сейчас в теме
(10) psa247, в УФ немного приловчится и в принципе многое проще чем в обычных формах. Ну правда дин. список очень очень сырой, как минимум из того что мне уже неоднократно было нужно это:
1. невозможность вывести итоговую сумму в подвал дин. списка.
2. нельзя использовать пакеты запросов в произвольном запросе дин. списка.
12. psa247 18 24.11.13 14:52 Сейчас в теме
1С - Недоступно, но всерьез ? ))
13. AllexSoft 24.11.13 14:55 Сейчас в теме
14. Tapochki-tmn 43 18.02.15 08:21 Сейчас в теме
Спасибо, очень помогло.

От себя добавлю, если вдруг кому пригодится:

Надо было в таблице на форме сравнить две колонки.
В одной колонке значения типа Справочник.ЦеновыеГруппы.
Во второй колонке значения типа Строка.
Сравнивать надо было наименование справочника первой колонки и строку из второй колонки.
Через УсловноеОформление формы посмотрел - нельзя обратиться к свойствам поля, нету их.
Создал в реквизитах у этой таблицы еще одно поле ЦеновыеГруппыНаименование, элемент в форме не создавал.
Программно задал условие:

ИмяПоляОформления = "ЗагружаемыеДанныеЦеновыеГруппы";
	ПутьКПолюОтбора = "ЗагружаемыеДанные.ЦеновыеГруппыНаименование";
	ПутьКПолюСравнения = "ЗагружаемыеДанные.ЦеновыеГруппыПоставщика";
	
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементыФормы[ИмяПоляОформления].Имя);

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

Не пинайте, если через Ж...
Полдня искал как сделать нормально...
yak127; agent00mouse; Lapitskiy; freeek; frkbvfnjh; +5 Ответить
15. HboTfd12 24.02.15 15:25 Сейчас в теме
(14) Да Вы батенька некрофил! :)
agent00mouse; mikki_1C; +2 4 Ответить
35. agent00mouse 236 24.04.20 15:42 Сейчас в теме
(14)
Отличный код. Великолепное шаманство. Нужно было сравнить в документе Колонки Количество и КоеоходимоеКоличество. Через стандартное оформление не взлетело.
Хорошо, что так можно напилить.
16. chmv 24.06.15 15:14 Сейчас в теме
17. jaroslav.h 175 06.01.16 22:48 Сейчас в теме
&НаСервере 
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
    ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Абонимент");
    ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтобора.ПравоеЗначение = Перечисления.Абонимент.Premium;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.ЗеленаяЛужайка);
    ЭлементОтобора.Использование = Истина;
    
    ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
    ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Абонимент");
    ПолеОформления.Использование = Истина;
    
КонецПроцедуры
Показать

скажите, мне нужно ЦветФона изменить, такой Параметр есть но если указываю ЦветФона то никакого результата, а вот когда указываю ЦветТекста то работает
18. Igor Igorevich 21.01.16 10:43 Сейчас в теме
Спасибо за статью. Ранее настраивал условное оформление на форме через свойство "Условное оформление" и не работало. И как всегда списал на глюк 1с.
Но после прочтения статьи решил все перепроверить - и нашел ошибку в условии. Исправил и все заработало.
1с - на высоте. А если у кого не работает, то будьте внимательны и ищите свои ошибки.
Designer1C; +1 Ответить
19. dklp 41 22.04.16 16:15 Сейчас в теме
подскажите, а можно ли в принципе применять условное оформление из внешней обработки к форме владельца.
параметр ВладелецФормы на сервере выдает ошибку, а на клиенте условное оформление недоступно.

заполняю из внешней обработки ТЧ документа, нужно для текста ячеек в одной колонке установить свойство: ГоризонтальноеПоложение - Право.
может, у кого-нибудь есть идеи как это сделать?
типовую Конфигурацию менять нельзя.
21. stranger_1 01.11.16 19:44 Сейчас в теме
(19) dklp, А если засунуть форму в расширение и в расширении сделать как нужно?
20. Nickon 22.08.16 21:02 Сейчас в теме
Понимал, что что-то такое есть на УФ. Даже процедуру написал. Но благодаря статье решилось все за 5 минут!
22. klaos 9 21.12.16 09:20 Сейчас в теме
1С:Предприятие 8.3 (8.3.9.1818), Розница, редакция 2.2 (2.2.4.33) , не могу найти Условное оформление.Есть ли оно там вообще?
23. Debugg3R 16.02.17 11:15 Сейчас в теме
На форме есть дерево значений. У дерева значений один из реквизитов - таблица значений. И вот для этой таблицы значений, которая для каждого элемента своя, не работает условное оформление.
Либо я не понимаю как его настроить
В отборе стоит "
ДеревоНаФорме.ТаблицаЭлемента.ИмяРеквизита = ЗначениеРеквизита
".
В оформлении стоит "
ИмяЭлементаФормыРеквизитаТаблицыЭлемента
"

Грубо говоря, есть дерево задач, у каждой задачи список исполнителей в виде таблицы и нужно определённых исполнителей подсветить.
25. OksDallas 22 01.03.18 04:11 Сейчас в теме
Условное оформление на форме. Как в оформляемые поля полностью занести строку табличной части не перечисляя реквизиты табличной части?
26. t.v.s. 106 01.03.18 05:54 Сейчас в теме
(25) Добавить имя табличной части как оно есть на форме
27. OksDallas 22 02.03.18 04:18 Сейчас в теме
(26)Пробовала - не получилось.
28. t.v.s. 106 02.03.18 06:44 Сейчас в теме
29. OksDallas 22 02.03.18 08:26 Сейчас в теме
30. Serge_ASB 20.04.18 07:00 Сейчас в теме
А если мне нужно оформить цвет фона в табличной части формы в одной колонке в зависимости от значения (значение - элемент справочника) , тогда как?
pbahushevich; +1 Ответить
31. Ivanov_OM 38 16.05.18 18:06 Сейчас в теме
32. Sergey_1C_ttt 20 20.09.18 14:06 Сейчас в теме
Спасибо! Очень помогло быстро сделать.
33. sinto 25.02.19 14:52 Сейчас в теме
Добрый день. Интересует такая тема. В поле ТЧ на форме добавил сумму. Вычисляется она банальненько, как "строка.Цена*Строка.Количество". Так как в УФ нет таких обработчиков, как "ПриПолученииДанных" или "ПриВыводеСтроки" необходимо проделать следующее:

1. собственно вычислить эту сумму для каждой строки для разных случаев, будь то изменение номенклатуры или цены или количества. Опять же изменение может быть отовсюду, как из строки ТЧ непосредственно, так и из внешних обработок заполнения. Поэтому - возможно ли вычислить сумму через настройку условного оформления, в идеале - непрограммно. Т.е. условно устанавливать текст ячейки равным сумме=цена*количество
2. Показать такую сумму в подвале

ут 11.4.6.188

буду благодарен за вразумительный ответ
34. PLAstic 290 12.04.19 12:03 Сейчас в теме
Возможно, пропустил, но есть один нюанс при программном добавлении условного оформления.
Реквизиты в условии УО указываются по пути через "Объект.ххх...", а в оформляемых полях УО - по имени элемента формы.

Подробно описано здесь: https://its.1c.ru/db/pubv8devui/content/239/hdoc/_top/%D1%83%D1%81%D0%BB%D0­%BE%D0%B2%D0%BD%D0%BE%D0%B5%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0­%BB%D0%B5%D0%BD%D0%B8%D0%B5.%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B.%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C
VAAngelov; a.babenko; tps_01; LosevI; +4 Ответить
55. VAAngelov 335 08.12.22 10:52 Сейчас в теме
(34) Это самая полезная ссылка. Прочел внимательно. Все сразу взлетело.
36. fixin 4180 24.04.20 20:33 Сейчас в теме
Поделюсь своим случаем сложного - добавляю реквизит в табличную часть Товары и настраиваю условное оформление.

&НаСервере
Процедура _РасчитатьКоличествоПоСериям() Экспорт
    //Осипов 2020-04-24
    
    НастройкиФормыУжеПроизведены = ложь;
    ИдентификаторПользовательскойНастройки = "_ОКПоСериям";
    Для Каждого ЭлементОформления ИЗ УсловноеОформление.Элементы Цикл
        Если ЭлементОформления.ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки Тогда
            НастройкиФормыУжеПроизведены = истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    
    //При первом вызове добавляем реквизиты и форму
    Если НЕ НастройкиФормыУжеПроизведены Тогда
        
        //Добавляем реквизит в ТЧ
        НовыеКолонки = Новый Массив;
        РеквизитФормы =  Новый РеквизитФормы("ОКПоСериям", Новый ОписаниеТипов("Булево"), "Объект.Товары");
        НовыеКолонки.Добавить(РеквизитФормы);
        ИзменитьРеквизиты(НовыеКолонки);
    
        //Добавляем условное оформление, отсюда:   https://infostart.ru/public/181336/
        ЭлементОформления = УсловноеОформление.Элементы.Добавить();
        ЭлементОформления.Использование = истина;
        ЭлементОформления.ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки;
        ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Новый ПолеКомпоновкиДанных("Объект.Товары.ОКПоСериям")); // имя поля
        //ЭлементОтбора.ЛевоеЗначение = ложь; // имя поля
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой
        ЭлементОтбора.ПравоеЗначение = ложь;
        ЭлементОтбора.Использование = Истина;
        
        //Оформление
        Элемент = ЭлементОформления.Оформление.Элементы[0]; //цвет фона
        Элемент.Значение = WebЦвета.ТусклоРозовый;
        Элемент.Использование = Истина; //Временно не используем
        Элемент = ЭлементОформления.Оформление.Элементы[1]; //цвет текста
        Элемент.Значение = WebЦвета.Красный;
        Элемент.Использование = Истина;
        
        // Создаем поля оформления
        ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
        ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТоварыНоменклатура");
        ПолеОформления.Использование = Истина;
        
    КонецЕсли;
    
    //Проверяем на корректность соответствия количества товаров и серий
    ТТовары = Объект.Товары.Выгрузить(, "Номенклатура, Количество, НомерСтроки");
    ТСерии = Объект.Серии.Выгрузить(, "Номенклатура, Количество");
    З = Новый Запрос(
    "ВЫБРАТЬ
    |    Т.Номенклатура КАК Номенклатура,
    |    Т.Количество КАК Количество,
    |    Т.НомерСтроки КАК НомерСтроки
    |ПОМЕСТИТЬ ТТовары
    |ИЗ
    |    &ТТовары КАК Т
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    Т.Номенклатура КАК Номенклатура,
    |    Т.Количество КАК Количество
    |ПОМЕСТИТЬ ТСерии
    |ИЗ
    |    &ТСерии КАК Т
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    ТСерии.Номенклатура КАК Номенклатура,
    |    СУММА(ТСерии.Количество) КАК Количество
    |ПОМЕСТИТЬ ТСерииИтоги
    |ИЗ
    |    ТСерии КАК ТСерии
    |
    |СГРУППИРОВАТЬ ПО
    |    ТСерии.Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    ТТовары.Номенклатура КАК Номенклатура,
    |    СУММА(ТТовары.Количество) КАК Количество
    |ПОМЕСТИТЬ ТТоварыИтоги
    |ИЗ
    |    ТТовары КАК ТТовары
    |
    |СГРУППИРОВАТЬ ПО
    |    ТТовары.Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    ТТовары.НомерСтроки КАК НомерСтроки,
    |    ВЫБОР
    |        КОГДА ТТоварыИТоги.Количество = ТСерииИтоги.Количество
    |            ТОГДА ИСТИНА
    |        ИНАЧЕ ЛОЖЬ
    |    КОНЕЦ КАК ОК
    |ИЗ
    |    ТТовары КАК ТТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ ТТоварыИтоги КАК ТТоварыИТоги
    |        ПО (ТТоварыИТоги.Номенклатура = ТТовары.Номенклатура)
    |        ЛЕВОЕ СОЕДИНЕНИЕ ТСерииИтоги КАК ТСерииИтоги
    |        ПО (ТСерииИтоги.Номенклатура = ТТовары.Номенклатура)");
    З.УстановитьПараметр("ТТовары", ТТовары);
    З.УстановитьПараметр("ТСерии", ТСерии);
    Выборка = З.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Объект.Товары[Выборка.НомерСтроки - 1].ОКПоСериям = Выборка.ОК;
    КонецЦикла;
    
КонецПроцедуры
Показать
sdaf; tdml; TipsyKID; user591389_aska_rabota; +4 Ответить
37. TyurinArt 71 25.10.20 12:18 Сейчас в теме
Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:


Пытался делать как в статье не работало, нашёл ответ в ИТС:

Книга "Разработка интерфейса" В.А. Ажеронок, часть 3, глава 3.1.5
"Напоследок хочется сделать еще одно небольшое замечание. В отличие от динамических списков, в условном оформлении формы обязательно нужно указывать оформляемые поля. Если хочется выделить всю строку табличной части, нужно указать все поля, которые в ней содержатся."

Отредактируйте статью.
38. enter_123 27.10.20 16:31 Сейчас в теме
(37) На практике проверено, работает.
39. TyurinArt 71 27.10.20 17:03 Сейчас в теме
(38)Если работает в ТЧ, то просьба привести пример работающего кода. Если это ДС, то всё верно - работает.
40. SlavaKron 27.10.20 17:15 Сейчас в теме
(39) Позволю себе ответить на вашу просьбу.
ЭлементУО = УсловноеОформление.Элементы.Добавить();
	
ОтборУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТабличнаяЧасть1.Реквизит1");
ОтборУО.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборУО.ПравоеЗначение = "1";
	
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТабличнаяЧасть1");
	
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.БледноЗеленый);
Показать
Прикрепленные файлы:
ВнешняяОбработка1.epf
kabantus; Paphnuty; iLonmaks; Andrei_Ivanov; Andreich88; TyurinArt; +6 Ответить
41. TyurinArt 71 27.10.20 17:49 Сейчас в теме
Я до этого просто перечислял все поля строки, а надо было указать ТЧ.

(40)
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТабличнаяЧасть1");


+1
56. PLAstic 290 09.12.22 11:15 Сейчас в теме
(37) Может, когда-то так и было, но у меня всегда работает указание просто таблицы, а не конкретных полей.
42. Andreich88 27.01.21 00:07 Сейчас в теме
(40) Всем привет.
Я так понимаю это работает только для табличной части? Пробую перенести на таблицу значений нет результата. Как можно тоже проделать с таблицей значений?
43. SlavaKron 27.01.21 08:17 Сейчас в теме
(42) С таблицей значений все работает точно так же как с табличной частью. Приведите свой код, который не работает.
44. Andreich88 27.01.21 11:49 Сейчас в теме
Делаю так
ЭлементУО = УсловноеОформление.Элементы.Добавить();
    
	ОтборУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.цифры.Значение");
	ОтборУО.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборУО.ПравоеЗначение = "0";
	//ОтборУО.ЛевоеЗначение = Ложь;
	ОтборУО.Использование = Истина;
	
	ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("цифры");
	    
	ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.БледноЗеленый);
Показать
45. lobster 460 27.01.21 15:39 Сейчас в теме
тут некорректно поле задано
ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.цифры.Значение");


вот так надо

ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("<ИмяТаблицы>.<ИмяРеквизита>");
46. Andreich88 27.01.21 18:46 Сейчас в теме
Правильно? Тоже не работает.


ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("цифры.Значение");
47. lobster 460 28.01.21 09:53 Сейчас в теме
Вот пример с таблицей значений как с реквизитом формы.
Прикрепленные файлы:
ПримерУО.epf
1c_nik923; iLonmaks; Риф; +3 Ответить
48. Andreich88 30.01.21 15:13 Сейчас в теме
(47) Спасибо большое. Все заработало. Буду разбираться в чем был затык.
49. пользователь 21.06.21 09:13
Сообщение было скрыто модератором.
...
50. Pim 172 16.08.21 09:49 Сейчас в теме
Добрый день. Прочитав статью и комментарии, не нашёл своей ситуации. М.б., кто-нибудь встречался. В конфигурации настроено условное оформление дин. списка в форме списка справочника. Мне надо его переопределить в расширении. При создании на сервере очищаю условное оформление формы и списка, задаю новое (аналогично того, что приведено в статье) и... не работает. Оформление остаётся заданное из конфигурации, а не расширения. :-(. Проверяю в отладчике условное оформление (уже после открытия формы) -- значения мои. Открываю настройку списка в предприятии, не мои данные.

Буду очень благодарен за наводку.
52. iLonmaks 8 07.03.22 22:14 Сейчас в теме
(50)установить стандартные настройки при открытии формы списка
53. Pim 172 08.03.22 10:15 Сейчас в теме
51. user1129453 19.08.21 03:49 Сейчас в теме
Всем доброго времени суток. А кто знает как в отборе проверить на тип Значения, что-то типа
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ТипЗнч(дзДеревоСвязейДокументов.Документ))
вообще есть такая возможность?
Оставьте свое сообщение

См. также

Чистка пользовательских настроек динамического списка после удаления полей

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

После программной модификации, а именно удаления полей динамического списка, в пользовательском режиме, если у пользователя по этим полям были свои настройки списка (отборы, сортировки и т.д.) получаем ошибку о недоступности Полей: Параметры отбора, сортировки, группировки или список отображаемых полей заданы неверно.

20.02.2023    547    dovolos    0    

15

Использование языковой модели GPT3 для создания интерфейса 1С на естественном языке

Работа с интерфейсом Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

Я взял типовую конфигурацию УТ редакции 11.5 Немного доработал запрос к языковой модели GPT-3 и получил возможность обращаться к учетной системе на естественном языке

15.01.2023    9015    mkalimulin    121    

73

Визуализация таблицы значений на управляемой форме

Универсальные функции Работа с интерфейсом Платформа 1С v8.3 Россия Бесплатно (free)

Данная публикация описывает способ отражения на управляемой форме таблицы значений, с произвольным составом колонок, полученной на сервере. Как частный случай рассматривается отражение двумерного массива, с преобразованием его в таблицу значений.

02.11.2022    1343    bvb    2    

9

Разбор ошибок заполнения реквизитов формы объекта (мой топ-3)

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Идея статьи родилась в момент исправления очередной ошибки с заполнением реквизитов формы и особенно реквизитов табличных частей. Решил накидать небольшую шпаргалку и отсылаться к ней при необходимости.

30.08.2022    1828    zeltyr    4    

18

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

{UI/UX} Свой всплывающий информер у элемента формы

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Питничная фантазия на возможности в разработке интерфейсов формы с помощью Платформы 1С - делаем свою подсказку. Публикация содержит готовую библиотеку программного формирования данной подсказки.

12.08.2022    4500    rpgshnik    36    

81

Динамическая кнопка VS Комбинация клавиш

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Часто требуется ко всем формам или к списку форм привязать новые действия. Но как это сделать не меняя каждую форму и в идеале не меняя конфигурацию? Ниже будет описано, как запрограммировать новые действия через расширение (т.е. не меняя конфигурации) и сделать это универсально (не меняя каждую форму).

08.08.2022    5392    sapervodichka    33    

76

Программный вывод таблицы значений в таблицу на управляемой форме

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Функционал данного механизма служит для программного вывода "Таблицы значений" в реквизит управляемой  формы с типом "ДанныеФормыКоллекция". Может быть полезен в задачах, где состав колонок выгружаемой таблицы значений может меняться.

15.04.2022    4903    ns_bulatov    5    

11

Восстановление пропавшего меню в интерфейсе с обычными формами без полной чистки кеша

Работа с интерфейсом Платформа 1С v8.3 Украина Бесплатно (free)

Как многим известно, пользователь в обычных формах может убрать любую панель из интерфейса так, что восстановить ее можно только чисткой кеша. Но как быть, если кеш жалко :?

21.12.2021    1571    bulpi    4    

13

Программный интерфейс для доработки форм

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    6311    AtamanovYS    19    

119

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом)... То вам - сюда.

08.10.2021    3523    e-9    13    

21

Как читать чужой код? Часть 4. Программный интерфейс. Исправление чужих доработок

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во всех вакансиях есть требование - умение читать чужой код. Но ни на одних курсах специально этому не учат. Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

20.09.2021    4439    biimmap    9    

51

Перенос расшифровки в пользовательские настройки

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Как перенести данные расшифровки в пользовательские настройки.

11.08.2021    1047    scientes    1    

9

Изменение размера картинок "на лету" с помощью NGINX

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Пример использования nginx и image_filter для сжатия картинок.

26.05.2021    2861    malikov_pro    21    

29

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Динамический список и поиск... неприятностей

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Страх и ненависть в поиске по динамическому списку, или "Кое-что о неоптимальном отборе".

17.03.2021    10318    Yashazz    37    

50

Пример работы с диаграммой Ганта в 1С

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Пример работы с очень нужным и важным, по моему мнению, объектом в 1С «Диаграммой Ганта».

24.02.2021    13132    JIEX@    4    

32

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Большое количество динамических списков на форме, большое количество условий, долгое интерактивное добавление условий, оформление по значению элементов справочников - всё это не позволяет использовать интерактивный режим назначения условного оформления динамического списка. В публикации с открытым кодом детально разберем программное решение назначения условного оформления, создадим универсальную функцию для оформления списка.

30.11.2020    15026    SizovE    6    

45

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    12958    leobrn    82    

105

Быстрая кодогенерация программной доработки форм

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Данная статья является описанием идеи по быстрому получению кода для программной доработки форм. А также приглашением к участию в реализации данной идеи (даже звездочке на гите буду рад).

12.10.2020    3030    huxuxuya    29    

21

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Цветовая схема конфигуратора в стиле OneScript

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Цветовая схема конфигуратора 1С максимально приближенная к стандартной цветовой схеме OneScript в VS Code.

01.10.2020    2117    DmitrySinichnikov    4    

11

Рендеринг элементов управляемого интерфейса

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Россия Бесплатно (free)

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    4902    kalyaka    5    

39

[Общий модуль] Динамическое формирование интерфейса

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Библиотека готовых функций для разработки интерфейса формы и размещения на нём элементов формы с помощью программного кода.

28.08.2020    28281    rpgshnik    87    

274

Медленно формируются отчеты в БП 3, способ исправления

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

При формировании любых отчетов, но в особенности оборотно-сальдовой ведомости в бухгалтерии 3, очень долго формировался отчет, ПОЯВЛЯЛСЯ ЖЕЛТЫЙ КОТ, разумеется у бухгалтера невроз, да и у меня тоже. Что только ни делал: тестирование и исправление с пересчетом итогов, настройка SQL, отключение фоновых заданий, обновление платформы и конфигурации, а толку нет, регламентные операции по скулю тоже сделал. И что же сделал, а вот что:

21.07.2020    4860    VID1234    10    

10

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

В курсе обобщен опыт работы аналитика на проектах в течение пяти лет, в нескольких фирмах. Подходы к написанию документов унифицированы и по возможности не привязаны к конфигурациям 1С.

3 500 рублей

Программное открытие отчета

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Памятка, как быстро создать простенький отчет, открываемый программно и с расшифровкой. Толстый/тонкий клиент.

28.06.2020    9499    da_1c    4    

9

Форма выбора (подбор) в управляемых формах

Универсальные функции Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    164025    user5300    37    

275

Форма выбора для реквизита с составным типом данных

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Возник вопрос: как открыть форму выбора для реквизита, имеющего составной тип данных, да еще и отображаемый в виде надписи?

11.03.2020    10584    rule_2    6    

20

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

18.02.2020    8257    randomus    20    

75

[Шпаргалка] Предустановка типа для составного реквизита

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Для реквизита составного типа необходимо ограничить список выбора типов.

18.02.2020    12589    rpgshnik    6    

25

СКД. Шаг 3. Используем макеты для оформления отчета

Работа с интерфейсом Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

В данной публикации рассмотрим базовый подход к использованию собственных макетов в СКД на примере формирования небольшого отчета.

13.01.2020    66737    aximo    23    

194

Добавление собственного поля и состояния в настройки доступности по состоянию в 1С:Документооборот

Работа с интерфейсом Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного поля и состояния в функционал настройки доступности по состоянию в 1С:Документооборот.

30.12.2019    8852    pavelpribytkin96    2    

23

Добавление собственного виджета в 1С:Документооборот

Работа с интерфейсом Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного виджета для функционала отсутствий в 1С документооборот.

14.12.2019    7406    pavelpribytkin96    2    

34

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

[СКД] Вывод картинки в результат любого отчета на СКД

Работа с интерфейсом Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    15570    John_d    17    

119

Лайфхаки 1С. Настройка списков (Часть 3)

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Новая порция лайфхаков по работе с интерфейсом 1С. На этот раз разбираем работу со списками - учимся их упорядочивать, сортировать, создавать новые и перемещать старые. Это очень полезное дополнение к уже имеющимся знаниям по интерфейсу 1С.

03.12.2019    28708    VachKirp    14    

21

В новой платформе пропала кнопка "Печать". Имитируем БСП

Работа с интерфейсом Платформа 1С v8.3 Россия Бесплатно (free)

"Приятным" сюрпризом для многих пользователей 1С стало то, что при обновлении платформы (начиная с 8.3.15) полностью поменялся интерфейс. Можно долго спорить о целесообразности этого новшества, но самым главным минусом стало то, что пропали стандартные кнопки на панели инструментов. Разработчики предполагают повсеместное использование БСП, но что делать тем, кто давно и успешно использует самописные конфигурации, в которых формирование печатной формы происходит по ТабДок.Показать(), и не желает их "утяжелять"? Добавим общую форму с нужными нам кнопками.

03.12.2019    12064    Vlan    44    

24

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Вносим изменения в типовые формы объектов (документы, справочники, журналы, обработки, общие формы). Не снимая с поддержки эти формы. Создаем программно элементы из общего модуля. Для примера рассмотрю добавление колонки "Скрепка" в форму списка документа. Если к документу привязан файл, то в списке в новой колонке должна отображаться "скрепка".

12.11.2019    20605    John_d    29    

122

Локализация интерфейсов конфигураций. Практика и инструментарий 1Ci

Работа с интерфейсом Локализация решений Платформа 1С v8.3 Бесплатно (free)

В последнее время компания 1С International все увереннее заявляет о себе на международном рынке. Но для успешного продвижения в этом направлении необходима локализация интерфейсов конфигураций 1С. О том, как выглядит процесс перевода, какие инструменты для этого есть, где брать переводчиков и как проверять их работу, на конференции Infostart Event 2018 Education рассказал руководитель группы локализации компании 1Ci Сергей Поликарпов.

05.11.2019    7288    user1069006    2    

15