Умовне оформлення у формах
<em>Область застосування: керований застосунок.</em>Див. також
Область застосування: керований застосунок.
Рекомендація (корисна порада)
1. Для налаштування деяких властивостей елементів керування можна використовувати умовне оформлення. Однак цей механізм також має низку обмежень.
1.1. Не слід використовувати умовне оформлення для приховування в таблиці рядків цілком. Це істотно уповільнює роботу у вебклієнті, а також призводить до некоректного відображення вмісту таблиці.
2.1. Налаштування умовного оформлення рекомендується виконувати в коді форми. Такий підхід має низку переваг перед заданням налаштувань умовного оформлення у властивостях форми:
- налаштування однотипного умовного оформлення можна винести до спільних модулів. Наприклад, є 80 форм, що мають умовне оформлення:
"якщо НЕ ХарактеристикиИспользуеются, то в полі "Характеристика" вивести текст <характеристики не використовуються>",
то можна винести це налаштування в код процедури спільного модуля; - під час об'єднання конфігурацій є можливість об'єднувати умовне оформлення (особливо це актуально за розгалуженої розробки конфігурацій);
- у разі зміни в метаданих (наприклад, перейменування значення переліку) умовне оформлення може припинити працювати. Якщо умовне оформлення налаштовується в коді конфігурації, то під час синтаксичного контролю модулів цю помилку буде виявлено. Так помилки в налаштуваннях умовного оформлення виявлятимуться засобами автоматизованої перевірки (наприклад, АПК), оскільки діагностуватиметься помилка під час спроби отримання форми.
2.2. Усі налаштування умовного оформлення мають виконуватися під час створення форми й надалі не повинні змінюватися. Винятком можуть бути випадки, коли елементи форми генеруються програмно – умовне оформлення таких елементів потрібно налаштовувати під час генерації елементів і потім не потрібно змінювати.
2.3. Виклик процедури налаштування умовного оформлення має бути вставлений в обробник ПриСозданииНаСервере до перевірки наявності параметра АвтоТест (див. Правила створення модулів форм) – тоді помилки в налаштуванні умовного оформлення виявлятимуться під час автоматизованої перевірки форм, наприклад:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); Если Параметры.Свойство("АвтоТест") Тогда Возврат; КонецЕсли; <Код обробника> КонецПроцедуры
2.4. У коді процедури встановлення умовного оформлення потрібно мінімізувати використання рядкових констант, а використовувати змінні, розіменування тощо – такий підхід дасть змогу мінімізувати кількість прихованих помилок у налаштуваннях умовного оформлення, наприклад:
&НаСервере Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); Элемент = УсловноеОформление.Элементы.Добавить(); ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыУпаковка.Имя); ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АдресноеХранение"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Ложь; ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Товар; ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Статус"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыПриходныхОрдеров.КПоступлению; Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь); КонецПроцедуры
Див. також
-
Правила створення модулів форм