Организовать автоматизированную проверку форм можно разными способами.
Наиболее простой в реализации способ – написать специализированную обработку, которая перебирает формы и элементы форм, и для каждого элемента выполняет проверку значения свойств непосредственно выполняя свой модуль.
Например, для проверки ширины формы в цикле применялся код:
… Если ФормаПроверки.Ширина > 780 Тогда Сообщить("Форма имеет слишком большую ширину"); КонецЕсли; … |
Такую обработку достаточно просто написать для проверки одного правила, но для проверки следующего правила, на основе уже существующей обработки придется написать уже новую со своим блоком проверки значений свойств.
Так как блок перебора свойств формы и элементов управления остается для всех обработок примерно одним и тем же, то взамен множества обработок, выполняющих каждая свою одну проверку, можно написать одну обработку, которая будет вычислять выражения в форме и сравнивать полученный результат с заданным значением.
Такая обработка позволила проверить свойства формы и свойства известных по именам элементов формы, но в то же время обладала серьезными ограничениями:
- узкая область проверки
- невозможность специализации проверки на элементах управления конкретного типа (ов)
- можно проверить только простые правила - на равенство, больше или меньше.
Мы можем значительно увеличить область проверки, если будем вместо произвольного выражения вычислять логическое, так как сможем проверить не одно, а несколько условий в различных сочетаниях. Так как нас интересует выполняется ли правило для формы или нет, очевидно, что выражения без ущерба может быть логическим, а результат – БУЛЕВО : усложнится лишь сама обработка.
Переход от произвольных выражений к логическим имеет и еще одно существенное преимущество: кроме общепринятых логических операторов И, ИЛИ, НЕ мы можем ввести свои - главное, чтобы результат их работы был БУЛЕВО. Этим мы и воспользуемся: к существующим логическим операторам добавим свой оператор:
ЕСЛИ <условие1> ТОГДА <условие2> КОНЕЦЕСЛИ
, который вычисляется как ЛОЖЬ, только в том случае, когда <условие1> - ИСТИНА, а <условие2> - ЛОЖЬ
Но область проверки можно увеличить и еще больше, если задавать для правила свою специальную область проверки, а конкретнее
- форма (как и ранее),
- элементы управления в форме определенного типа (например, проверить все поля ввода, или все рамки и надписи)
- колонки табличного поля и элементы управления в них
- кнопки командной панели
В общем виде схема выполнения проверок можно представить так:
Такая методика позволяет охватить автоматизированной проверкой количество стандартов достаточное для того, чтобы использовать автоматизированную проверку в повседневной практике.
Обработка "Контроль свойств в формах"
Обработка «Контроль свойств в формах» состоит из конфигуратора правил и проверочного ядра.
Конфигуратор правил позволяет задать несколько независимых правил. Все правила хранятся в виде таблицы, можно отметить все, одно, или несколько правил как задание для проверки. Правила можно сохранить в файл и загрузить позже.
Для проверки можно пометить одну, все или часть форм для проверки. Также можно пометить все формы, принадлежащие объектам одно типа метаданных или принадлежащими по конкретным объектам метаданных.
Результаты проверки выводятся в окно сообщений – полученный результат можно разбить на части и разослать для исправления коллегам
Выражение составляем также как логические выражения в «1С:Предприятие 8.0»
Текущая версия обработки:
КонтрольСвойствВФормах.epf (на диске в директории 1CIts\EXE\Razrabotka\КонтрольСвойствВФормах)
(скопировать)
Дата: 2018-11-18, просмотров: 268.