Семинар партнеров фирмы «1С» Автоматизированная проверка форм на соответствие правилам стандарта Олег Бессонов – методист, «Фирма 1С» 30 сентября – 2 октября 2005 г. Автоматизированная проверка форм Сокращение затрат на проверку Основные усилия при проверке форм тратятся на выполнение простых проверок: Размеры формы и элементов формы Имена элементов формы Привязки Значения остальных свойств и их комбинации Если простые проверки научится выполнять автоматически, остается только проверять: компоновку формы управление доступом к форме и элементам формы небольшое количество остальных правил, формализация которые затруднительна Автоматизированная проверка форм Почему формы можно проверять автоматически Основное количество свойств мы задаем на этапе конфигурирования, другие задаются в процессе работы формы В форме мы имеем доступ к большинству свойств формы, остается только прочитать их значения – проверяем форму: ЭтаФорма.Ширина ЭтаФорма.ТолькоПросмотр Проверяем элементы управления в форме: ЭлементыФормы.Номер.АвтоОтметкаНезаполненого Проверяем колонки табличного поля: ЭлементыФормы.Услуги.Колонки.Номер.Видимость Проверяем кнопки командной панели: ЭлементыФормы.ДействияФормы.Кнопки.Сформировать.Имя Автоматизированная проверка форм Как построить проверку На первом этапе мы писали обработки, которые перебирали формы и/или элементы форм и для каждого элемента проверки проверяли условие, реализованное в коде Например, для проверки ширины формы в цикле применялся код: ….. Если ФормаПроверки.Ширина > 780 Тогда Сообщить(«Форма имеет слишком большую ширину»); КонецЕсли; …. Автоматизированная проверка форм Вычисление выражений в форме На втором этапе мы написали обработку, которая вычисляла выражения в форме Позволила проверить свойства формы Позволила проверить свойства известных по именам элементов формы Такая обработка обладала серьезными ограничениями Узкая область проверки Невозможность специализации проверки на элементах управления конкретного типа (ов) Можно проверить только простые правила - на равенство, больше, меньше Автоматизированная проверка форм Вычисление условий в форме Вместо выражений произвольного типа вычисляем логические выражения Если результат ИСТИНА, правило выполняется Если результат ЛОЖЬ, правило не выполняется – сообщаем об ошибке Преимущества: Логические выражения могут содержать сразу несколько условий Кроме общепринятых логических операторов И, ИЛИ, НЕ можем ввести свои - главное, чтобы результат их работы был БУЛЕВО Вводим оператор ЕСЛИ <условие1> ТОГДА <условие2> КОНЕЦЕСЛИ, который вычисляется как ЛОЖЬ, только в том случае, когда <условией> - ИСТИНА, а <условие2> - ЛОЖЬ Автоматизированная проверка форм Разные области проверки Следующий шаг – несколько областей проверки, т. е. для правила задается область проверки Форма, как и ранее Элементы управления в форме определенного типа, например, проверить все поля ввода, или все рамки и надписи Колонки табличного поля и и элементы управления в них Кнопки командной панели Автоматизированная проверка форм Общая схема проверки. КОНФИГУРАТОР ПРАВИЛ (Форма.Ширина<=780)И… ПРАВИЛА ПРОВЕРОЧНОЕ ЯДРО КОНФИГУРАЦИЯ ФОРМЫ Перевод выражения в ОПЗ Вычисления выражения Вычисления значения • в форме • элементе формы, • колонке табличного поля • кнопке командной панели Автоматизированная проверка форм Обработка Текущий версия обработки проверки Конфигуратор правил Проверочное ядро Правила хранятся в виде таблицы, можно отметить все, одно, или несколько правил как задание для проверки Правила можно сохранить в файл и загрузить позже Можно отметить одну, все или часть форм для проверки, в том числе и по типу метаданных и по конкретным объектам метаданных Результаты проверки выводятся в окно сообщений – полученный результат можно разбить на части и разослать для исправления коллегам Автоматизированная проверка форм Составление выражений Выражение составляем также как логические выражения в «1С:Предприятие 8.0» Разбор выражений производится в соответствии с приоритетами операций: Оператор Приоритет ( 0 ) 1 ЕСЛИ…ТОГДА 2 И, ИЛИ 3 = 4 <, >, <=, >=, <> 5 СУЩЕСТВУЕТ 6 Автоматизированная проверка форм Конфигурирование правил Даем название Составляем выражение Формулируем замечание для случая невыполнения правила Если проверяется не форма, то отмечаем в списке какие элементы управления проверять Автоматизированная проверка форм Простые логические операции И Ложь Ложь Ложь Ложь Истина Ложь Истина Ложь Ложь Истина Истина Истина Ложь Ложь Ложь Ложь Истина Истина Истина Ложь Истина Истина Истина Истина Ложь Ложь Истина Ложь ИЛИ НЕ Автоматизированная проверка форм ЕСЛИ … ТОГДА … КОНЕЦЕСЛИ Часто нужно проверить значение при наступлении определенных условий Например проверить установку флага «АвтоВыборНезаполненного» в случае, если у поля ввода установлен флаг «АвтоОтметкаНезаполненного» Результат операции ЕСЛИ <условие1> ТОГДА <условие2> КОНЕЦЕСЛИ отрицательный (ЛОЖЬ) только в случае, когда <условие1> выполняется, а <условие2> не выполняется ЕСЛИ … ТОГДА ТОГДА … КОНЕЦЕСЛИ РЕЗУЛЬТАТ Ложь Ложь Истина Ложь Истина Истина Истина Ложь Ложь Истина Истина Истина Автоматизированная проверка форм Оператор СУЩЕСТВУЕТ В некоторых случаях требуется проверять свойства в зависимости от того, существует ли элемент формы с определенным именем или существует ли у него какое то свойство Используем оператор существования СУЩЕСТВУЕТ(<строка>), который истинен тогда, когда существует «путь» в форме, указанный в строке Примеры «путей»: ЭлементыФормы.ОсновныеДействияФормы ЭлементыФормы.ДействияФормы.Кнопки.Сформировать ЭлементыФормы.ОсновнаяПанель.Страницы.СвойстваИКатегории Автоматизированная проверка форм Пример 1. Проверка размеров формы Правило стандарта «Разработка интерфейсов и форм» Значит правильный размер формы должен быть такой: Ширина <= 780 Высота <= 450 Составляем выражение (Форма.Ширина <= 780) И (Форма.Высота <= 450) Автоматизированная проверка форм Пример 2. Проверка «Автовыбор не заполненного» Правило стандарта «Разработка интерфейсов и форм» Значит в для всех полей ввода нужно проверить: если установлен флаг "Автоотметка незаполненного" , тогда должен быть установлен флаг "Автовыбор незаполненного". Правило будет работать с полями ввода, а не с формой – помечаем в списке «Тип ЭУ» строку с «Поле ввода» Составляем выражение Если АвтоОтметкаНезаполненного Тогда АвтоВыборНезаполненного КонецЕсли Автоматизированная проверка форм Пример 3. Проверка источника картинок Правило стандарта «Разработка интерфейсов и форм» Значит в для всех картинок нужно проверить свойство «Вид»: Пустая ИзБиблиотеки Абсолютная – правило выполняется – правило выполняется – правило не выполняется Правило будет работать с кнопками, панелями, полями выбора, полями ввода, полями картинки и надписями , а не с формой – помечаем в списке «Тип ЭУ» соответствующие строки Значения свойств при проверке правил преобразуются в строку Составляем выражение: (Картинка.Вид=«Пустая»)ИЛИ(Картинка.Вид=«ИзБиблиотеки») Автоматизированная проверка форм Развитие Каскадирование правил – составление выражений из правил Замена выражения на сценарий выполнения правила Увеличение количества правил для проверки форм Разработка методики проверки групп элементов управления В скором времени предполагаем распространять обработку и набор правил Увеличение области проверки на другие составляющие конфигурации Семинар партнеров фирмы «1С» Спасибо за внимание! Ждем Ваших вопросов и предложений на адрес V8@1C.RU Олег Бессонов – методист, «Фирма 1С» 30 сентября – 2 октября 2005 г.