Компонент «Межформенные проверки»

Компонент «Межформенные проверки» позволяет задавать правила проверки данных, вводимых в формы и реестры задания сбора.

Список форм и отчетов, которые содержат проверяемые данные

Перейти на страницу настройки правил проверки можно по кнопке «Межформенные проверки» в нижней части паспорта шаблона сбора.

_images/a87.png

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

_images/a88.png

Правила проверки

Под списком находится текстовое поле «Правила», где можно написать необходимые межформенные проверки. Для задания какого-либо правила нужно указать, на какую ячейку оно накладывается. Ячейка задается следующим образом: сначала указывается код таблицы, затем через точку номер ячейки. Ячейки нумеруются так же, как в MS Excel: строки цифрами, начиная с первой, а столбцы большими буквами латинского алфавита (A, B, C…)

Например, если нам нужна первая ячейка первой строки в таблице с кодом «form_1», то она запишется так:

form_1.A1

Если нужен столбец, то он задается буквой и звездочкой, строка задается звездочкой и цифрой - номером строки:

form_1.C*
form_1.*1

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

Примеры:

form_1.L1=form_2.C1
form_1.M1=form_2.D1
form_1.N1>=form_3.R1+form_2.P1+form_6.D1+form_1.B1
form_1.C*>form_2.C*+100
form_1.*1=1

Если необходимо, чтобы ячейка (или столбец/строка) обязательно были заполнены, нужно написать условие с восклицательным знаком после знака сравнения вида:

f1.A3=!f1.A3
f2.B*=!f2.B*

Также работают условия вида:

f1.A9>=!f1.A11

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

Правило «IF-THEN-ELSE»

Конструкция IF-THEN-ELSE:

Если условие 1 истинно, то выполняется условие 2, иначе условие 3 (если form1.C2 = «БАЛАНС», то form2.A1 = form2.A1 + form2.A2, иначе form2.A2 = form2.A1 + form2.A2).

Примеры:

if form1.C2 = "БАЛАНС"
then form2.A1 = form2.A1 + form2.A2 | "НЕ СХОДИТСЯ СУММА"
else form2.A2 = form2.A1 + form2.A2 | "СХОДИТСЯ"

В межформенных проверках нельзя присваивать значение ячейке, у пустых ячеек по умолчанию значение нуль.

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

Оператора «И» (AND) нет в синтаксисе межформенных проверок. Для реализации оператора «И» необходимо два раза прописать условие.

Пример:

form1.A*=!form1.A* | "Введите отсутствующие данные!"
form1.B*=!form1.B* | "Введите отсутствующие данные!"

Сохранение заданных правил проверки

После задания всех необходимых межформенных проверок их необходимо сохранить, нажав кнопку «Принять» под полем с правилами.

_images/a89.png

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

Выполнение проверок по заданным правилам

Межформенные проверки выполняются в момент выполнения задания (изменения статуса с «Новое» на «Выполнено») или при нажатии «Проверить задание». Если данные в ячейках таблиц не соответствуют межформенным проверкам, то задание не может быть выполнено.