- Создатель Синицын Владислав (доб.130), отредактировано 01 дек. 2023
Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим просмотр истории страницы
« Предыдущий Версия 19 Следующий »
Описание работы с дополнительными КС
Общие правила для КС
Модуль расширенной валидации выполняется только вместе с основной валидацией. Все контрольные соотношения созданные в в модуле расширенной валидации применяются исключительнок данным находящимся в основном табличном слое,т.е. только для текущего ренд слоя.
Для переменных обявленных в КС, действует правило группировки. Т.е. переменные связанные с показателями открытых осей будут схлопнуты до уровня переменной с минимальным кол-вом измерений.
Так же в Кс можно использовать функции. Список доступных функций с описанием досткпень в меню слева
Список опереаторов доступный в контрольных соотношениях :
> - больше
>= - больше либо равно
< - меньше
<= - меньше либо равно
= - равно
!= - не равно
<> - не равно
! - отритцание
& - объединение условий по и
| - объединение условий по или
Функция fill
fill - функция проверяет существует ли хотя бы одно значение в указанной форме[таблице], если есть значение, функция вернет - истина, иначе ложь.
Параметры вызова :
formCode - код формы, в которой нужно проверить наличие значений, обязательно
tableCode - код таблицы в форме formCode, в которой нужно проверить наличие значений, не обязательно
Примеры вызова:
fill('formCode') - проверяет наличие хотя бы одного значения во всех таблицы принадлежащих форме formCode
fill('formCode', 'tableCode') - проверяет наличие хотя бы одного значения в конкретной форме и таблице принадлежащей этой форме.
Функция match
match - проверяет на соответствие регулярному выражению значения передаваемого в переменной.
Параметры вызова :
- Expression - регулярное выражение(можно использовать любое, мы рассмотрим на примере '^\d+(\.\d+)?$' )
- varName - имя переменной
Примеры вызова:
match('^\d+(\.\d+)?$', varName) - проверяем, что в переменной varName, записано именно число, возможно дробное, но точно не отрицательное.
- Название КС (ext_va_) (?) : Validation_match.
- Форма (?) : FR_2_001_01c_01.
- Таблица (?) : FR_2_001_01c_01.
- Описание КС (?) Проверяет на соответствие регулярному выражению значения передаваемого в переменной.
- Контрольное выражение (?): match('^\d+(\.\d+)?$', V1)
- Сообщение об ошибке (?): Ошибка.
- № п/п Название переменной: Выбрали монетарную ячейку "FR_2_001_01c_01=>FR_2_001_01c_01=>R__6C__3"
- Присвоили переменную: v1
Валидация:
Т.к в ячейке занесено отрицательное число (-1), то сработал наш контроль.
Функция in
in - проверяет что значение переменной, соответствует хотя бы одному из значений содержащийся в списке, переданным вторым параметром
Параметры вызова :
- varName - имя переменной.
- listValues - список допустимых значений.
Примеры вызова:
- in(varName, ['mem-int:Strana_004AfgAfganistanMember', 'mem-int:Strana_008AlbAlbaniyaMember', 'mem-int:Strana_010AtaAntarktidaMember']) - проверяем, что в переменной записана страна из допустимого списка
Пример в XBRLCA
- Название КС (ext_va_) (?) : Validation_IN
- Форма (?) : FR_1_001_01c_01
- Таблица (?) : FR_1_001_01c_01
- Описание КС (?) проверяет что значение переменной, соответствует хотя бы одному из значений содержащийся в списке, переданным вторым параметром
- Контрольное выражение (?): in(v1, ['mem-int:VTysyachaxRossijskixRublejMember'])
- Сообщение об ошибке (?): Ошибка.
- № п/п Название переменной: Выбрали монетарную ячейку "FR_2_001_01c_01=>FR_2_001_01c_01=>R__6C__3"
- Присвоили переменную: v1
Функция floor
Функция floor
floor - округляет значение к наименшему целому, т.е.
- floor(5.2) = 5
- floor(5.8) = 5
Параметры вызова :
- varName - имя переменной, обязательно
Примеры вызова:
- floor(varName) - где varName содержит значение показателя монетарного/дробного/целочисленного/процентного типа
- Название КС (ext_va_) (?) : Validation_floor
- Форма (?) : FR_2_001_01c_01.
- Таблица (?) : FR_2_001_01c_01.
- Описание КС (?) округляет значение к наименьшему целому
- Контрольное выражение (?):floor(v1) = 5 ( КС сработает т.к в ячейке указано значение "4.55" с помощью функции floor округлится до 4.00 и не будет равняться 5)
- Сообщение об ошибке (?): Ошибка.
- № п/п Название переменной: Выбрали монетарную ячейку "FR_2_001_01c_01=>FR_2_001_01c_01=>R__6C__3"
- Присвоили переменную: v1
Валидация
КС сработает т.к в ячейке указано значение "4.55" с помощью функции floor округлится до 4.00 и не будет равняться 5)
Функция ceil
Функция ceil
ceil - округляет значение к наибольшему целому, т.е.
ceil(5.2) = 6
ceil(5.8) = 6
Параметры вызова :
varName - имя переменной, обязательно
Примеры вызова:
ceil(varName) - где varName содержит значение показателя монетарного/дробного/целочисленного/процентного типа
Функция round
Функция round
round - округляет значение с заданной точностью, если точность не задана, округляет до 2-х знаков после точки
Параметры вызова :
varName - имя переменной, обязательно
precision - точность, не обязательно, по умолчанию = 2
Примеры вызова:
round(varName, 4) - где varName содержит значение показателя монетарного/дробного/целочисленного/процентного типа
Примеры
Простое математическое не равенство
var1 + var2 > var3 - var4
Простое математическое равенство с использованием функции
var1 + var2 > round(var3 - var4)
Группировка условий с использованием оператора & (и). Такое КС истинно когда есть значение в var3 и выполняется неравенство var1 + var 5 < var7
(var1 + var 5 < var7) & match('.+', var3)
Группировка условий с использованием оператора | (или). Такое КС истинно когда есть значение в var3 или выполняется неравенство var1 + var 5 < var7
(var1 + var 5 < var7) | match('.+', var3)
- Нет меток