Как работает условное оформление 1с
Перейти к содержимому

Как работает условное оформление 1с

  • автор:

Условное оформление в формах

Область применения: управляемое приложение.

Рекомендация (полезный совет)

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

1.1. Не следует использовать условное оформление для скрытия в таблице строк целиком. Это существенно замедляет работу в веб-клиенте, а также приводит к некорректному отображению содержимого таблицы.

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

2.1. Настройку условного оформления форм и динамических списков рекомендуется делать в коде формы. Такой подход имеет ряд преимуществ перед заданием настроек условного оформления в свойствах формы:

  • настройки однотипного условного оформления можно вынести в общие модули. Например, есть 80 форм, имеющих условное оформление:
    «если НЕ ХарактеристикиИспользуются, то в поле «Характеристика» вывести текст «,
    то можно вынести эту настройку в код процедуры общего модуля;
  • при объединении конфигураций есть возможность объединять условное оформление (особенно это актуально при разветвленной разработке конфигураций);
  • при изменении в метаданных (например, переименовании значения перечисления) условное оформление может перестать работать. Если условное оформление настраивается в коде конфигурации, то при синтаксическом контроле модулей эта ошибка будет выявлена. Так ошибки в настройках условного оформления будут выявляться средствами автоматизированной проверки (например, АПК), т.к. будет диагностироваться ошибка при попытке получения формы.

2.2. Все настройки условного оформления должны производиться при создании формы и потом не должны модифицироваться. Исключением могут являться случаи, когда элементы формы генерируются программно – условное оформление таких элементов нужно настраивать при генерации элементов и потом не нужно менять.

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

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

ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип(«ГруппаЭлементовОтбораКомпоновкиДанных»));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«АдресноеХранение»);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;

ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«Объект.Товары.ТипНоменклатуры»);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Товар;

ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«Объект.Статус»);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыПриходныхОрдеров.КПоступлению;

УФ: Программное добавление элементов условного оформления формы в 1С

Рассмотрим пример программного добавления элементов условного оформления на форму документа. Сделаем так, чтобы возможность редактирования строки таблицы грУсловияОплатыТаблица зависела от реквизита формы АктивныйСчет (тип Булево) и от реквизита таблицы Редактирование (тип Булево) (рис. 1):

УФ: Программное добавление элементов условного оформления формы в 1С

Рис. 1. Реквизиты формы, от которых будет зависеть возможность редактирования строки таблицы

Если АктивныйСчет = Истина и Объект.грУсловияОплатыТаблица.Редактирование = Ложь, тогда редактирование строки таблицы будет недоступно: установим свойство ТолькоПросмотр = Истина. Можно добавить аналогичный код для случая, когда АктивныйСчет = Истина, Объект.грУсловияОплатыТаблица.Редактирование = Истина, и включить возможность редактирования строки: установить свойство ТолькоПросмотр = Ложь.

Эти условия можно задать в свойстве формы УсловноеОформление (рис. 2 и рис. 3):

УФ: Программное добавление элементов условного оформления формы в 1С

Рис. 2. Свойство формы УсловноеОформление

УФ: Программное добавление элементов условного оформления формы в 1С

Рис. 3. Настройка условного оформления

Иногда в коде очищают свойство формы УсловноеОформление и все заданные настройки (рис. 2 и рис. 3) пропадают. В таких случаях можно программно задать нужное условное оформление.

Описание текста процедуры модуля формы для программного добавления элементов условного оформления

  1. Название процедуры может быть любым; ее вызов может быть, например, из обработчика события формы ПриСозданииНаСервере.
  2. Очищаем условное оформление формы (для примера, не обязательно).
  3. Добавляем новый элемент условного оформления ЭлементОформления.
  4. Устанавливаем свойство оформления ТолькоПросмотр = Истина.
  5. Добавляем условия (отборы), при выполнении которых будет действовать настройка.
  6. В примере это два условия И, поэтому добавляем группу элементов отбора ГруппаЭлементовОтбора с типом группы ГруппаИ, и два элемента отбора ЭлементОтбора (для АктивныйСчет = Истина и Объект.грУсловияОплатыТаблица.Редактирование = Ложь).
  7. Указываем поля, для которых будет действовать настройка.

В нашем примере это будет вся строка таблицы грУсловияОплатыТаблица, поэтому добавляем одно поле ПолеОформления с названием таблицы грУсловияОплатыТаблица.

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

Условное оформление динамического списка в 1С:Предприятии 8

Допустим, нужно в списке заказов поставщику 1С красным цветом выделить строки с заказами в иностранной валюте.
Решим эту задачу тремя разными способами.
1) Способ настройки условного оформления динамического списка в режиме предприятия системы 1С. Данный способ подойдет для “Точечной” настройки у конкретного пользователя. Настройки условного оформления, сделанные в режиме предприятия системы 1С не распространяются на других пользователей. Чтобы условное оформление применилось сразу у всех пользователей нужно настроить условное оформление в режиме конфигуратора в 1С. Об этом способы 2 и 3.
Для этого заходить в меню “Ещё” и выбираем “Настроить список 1С”:

В открывшихся настройках списка 1С переходим на закладку “Условное оформление” и нажимаем кнопку “Добавить”:

Открывается окно редактирования элемента условного оформления.
На закладке “Оформление” указываются параметры и значения для условного оформления. Эти параметры фиксированы и их можно указывать сразу несколько. Активность параметров регулируется флажком слева от параметра. В рассматриваемом примере нам нужно указать значение для параметра “Цвет фона” — красный. Флаг активности активируется автоматически после указания значения параметра.

На закладке “Условия” указываем условие, при котором сработает оформление на предыдущей закладке. Если условие не указать, то оформление применится ко всем строкам в динамическом списке 1С 8. В рассматриваемом примере нам нужно добавить условие на реквизит “Валюта”, значение которого не равно валюте рубль:

На закладке “Оформляемые поля” нужно указать поля, к которым должно применяться условное оформление. Если не указывать никаких полей, то условное оформление применится ко всем полям динамического списка 1С 8. В рассматриваемом примере это и требуется.
Сохраняем настройки элемента условного оформления, кликнув по кнопке “Ок” в правом нижнем углу формы.
Сохраняем настройки условного оформления динамического списка, кликнув по кнопке “Завершить редактирование” в правом нижнем углу формы.
Видим, что условное оформление сработало корректно.

2. Как убрать условное оформление динамического списка

Убрать условное оформление динамического списка можно двумя способами: 1) Снять флаг активности настройки условного оформления 2) Выделить настройку условного оформления и нажать кнопку “Удалить”

Для сохранения изменений нажать кнопку “Завершить редактирование”.
2) Способ настройки условного оформления динамического списка в режиме конфигуратора в 1С.
Открываем форму списка документа: Заказ поставщику и в списке реквизитов формы кликаем правой кнопкой мыши по нужному динамического списка 1С 8:

В палитре свойств динамического списка 1С 8 находим свойство “Настройки списка” и нажимаем на гиперссылку “Открыть”:

В настройках динамического списка 1С 8 переходим на закладку “Условное оформление”:

Добавляем настройки условного оформления аналогично первому способу, кроме одного нюанса — в режиме конфигуратора в 1С мы не можем явно указать элементы справочников, документов и т.д. Поэтому, в качестве поля для сравнения укажем не валюту, а код валюты (у рубля значение кода 643):

Остальные настройки аналогичны первому способу. Обращаем внимание на флаг “Включать в пользовательские настройки 1С”. Если он активен, то пользователь в режиме предприятия системы 1С сможет самостоятельно отредактировать настройки условного оформления (См. способ 1). Нажимаем кнопку “Ок” и обновляем конфигурацию базы данных.
3) Способ настройки условного оформления динамического списка в режиме конфигуратора программно. Программная работа с условным оформлением динамического списка возможно только на сервере. Сначала получим текущие настройки условного оформления динамического списка и очистим их:

Добавим новый элемент 1С условного оформления:

Зададим отбор элемента компоновки данных системы 1С

Устанавливаем значения параметра условного оформления:

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

Добавляем оформляемые поля. Если пропустить этот шаг, то условное оформление применится ко всем полям динамического списка 1С 8. Для наглядности отступим от условия задачи и подсветим красным поле “Номер”:

Видим, что настройка условного оформления динамического списка работает корректно и доступна пользователю для редактирования.
Специалист компании «Кодерлайн» Максим Кригер

Условное оформление 1С или как раскрасить документы и отчеты в 1С 8.3

1. Условное оформление в списке документов и в справочниках 1С 2. Условное оформление в отчетах 1С Программа 1С позволяет пользователям настраивать рабочие места под свои потребности: менять расположение разделов, журналов, скрывать / добавлять важную информацию и многое другое. Одной из таких настроек является условное оформление в 1С и в этой статье мы рассмотрим, как раскрасить объекты 1С на примере конфигурации 1С ERP 8.3

1. Условное оформление в списке документов и в справочниках 1С

Условное оформление в списке документов и справочниках 1С выполняется с помощью настройки «Редактирование элемента условного оформления 1С», открываемого из настроек списка 1С.

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

В меню «Еще» переходим в настройки списка 1С и в открывшемся окне открываем вкладку «Условное оформление 1С».

Задаем первое правило – если значение статуса «Не согласован» цвет фона строки должен быть зеленым.
Нажимаем кнопку «Добавить», при этом в 1С ERP 8.3 откроется окно редактирования элемента условного оформления 1С.

На вкладке «Оформление» выбираем каким образом мы хотим выделить нужные нам документы – в нашем примере это вариант «Цвет фона». Ставим галочку в первой строке и в колонке «Значение» выбираем цвет.

На вкладке «Условие» из списка доступных полей перетаскиваем поле, значение которого должно определять в 1С цвет документа в списке – поле «Статус». Указываем значение статуса – «Не согласован».

На третьей вкладке указывается для каких колонок должно действовать условное оформление. Если должна быть выделена вся строка, то ничего дополнительно заполнять не нужно — вкладка «Оформляемые поля» остается пустой.
Нажимаем «ОК» и видим списке новую строку с заполненными правилами условного оформления.

Аналогичным образом добавляем новые строки и заполняем условия для каждого статуса. В итоге должна получиться вот такая настройка

Нажимаем кнопку «Завершить редактирование» и проверяем результат. Пример второй. Для примера опять возьмем журнал «Заказы поставщикам» в 1С ERP 8.3 и выделим в нем сумму заказа на сумму выше 5 000 000 жирным красным шрифтом

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

На закладке «Условие» проставляем следующие условия: сумма документа больше 5 000 000

На вкладке «Оформляемые поля» указываем только одно поле «Сумма документа»

Сохраняем настройку — нажимаем «Ок». Завершаем редактирование настройки списка 1С и проверяем результат.

2. Условное оформление в отчетах 1С

Оформление в отчетах 1С выполняется в настройках отчета при установке расширенного вида настроек. При этом доступна вкладка «Оформление», где задаются «Элементы условного оформления отчетов 1С».

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

Под каждое правило для условного оформления необходимо создавать новый элемент («Настройка» (вид «Расширенный») → вкладка «Оформление» → «Добавить») и указывать название, поясняющее суть настройки.
Шаг 1. Настраиваем шапку отчета 1С. Заполняем название элемента, например, «Шапка отчета 1С». На вкладке «Оформление» настраиваем цвет фона, цвет текста и шрифт.
Вкладки «Условие» и «Оформляемые поля» не заполняем. На вкладке «Дополнительно» отмечаем пункт «В заголовке полей».

Для сохранения правила нажимаем клавишу «Ок». Шаг 2. Настраиваем шрифт отчета. На вкладке «Оформление» настраиваем шрифт, а на вкладке «Дополнительно» выбираем пункт «В группировке».

Шаг 3. Настраиваем выделение строки Организация и Клиент Заполняем настройку для выделения строки организации — выбираем цвет фона, в качестве оформляемого поля выбираем «Организация» и на вкладке «Дополнительно» отмечаем «В группировке».
Для выделения строки с клиентом делаем аналогичные настройки, только с другим цветом фона и оформляемое поле устанавливаем «Клиент».

Шаг 4. Настраиваем выделение фона ячейки с отрицательным значением в колонке «Сальдо долга». Задаем цвет фона. Настраиваем условие: сальдо долга меньше 0. Выбираем «Сальдо долго» в качестве оформляемого поля и вариант отображения – «В группировке».

Завершаем редактирование и проверяем результат. Не забудьте сохранить настроенный вариант отчета.

Специалист компании ООО «Кодерлайн» Косьяненко Зоя

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *