Валидация XBRL: различия между версиями

Материал из OrticonWiki
Перейти к навигации Перейти к поиску
Нет описания правки
Praktik (обсуждение | вклад)
Нет описания правки
 
(не показано 6 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{TOCright|width=0|limit=1}}
<span style="font-size: 130%">'''Контроль инстанса'''</span>
В решении контрольные соотношения реализованы в двух вариантах: валидация инстанса через формулы контрольных соотношений таксономии XBRL и внутренние контрольные соотношения, в общем и целом реализующие логику работы контрольных соотношений таксономии для экземпляра отчетных данных в системе (кнопка «Контроль отчетных данных» в форме регламентированного отчета).
Оба варианта контрольных соотношений реализуют логику работы с формулой проверки и переменными, которые в ней участвуют.


=='''КОНТРОЛЬ ИНСТАНСА'''==
Для контроля файла XBRL в решении существует механизм, который доступен из формы записи XBRL или из раздела «Лицевые счета (НФО)»:


Для контроля файла XBRL в решении существует механизм, вызываемый из формы «Формирование отчетности (XBRL)» или из интерфейса (Раздел «Лицевые счета (НФО)»).
[[Файл:2211.png|центр|750px]]


[[Файл:Val 006.jpg|800px]]
[[Файл:22111.png|центр|750px]]


Отличие в данном случае только в том, что при открытии механизма валидации из за-писи XBRL в него передается имя сохраненного файла.


[[Файл:Val 007.jpg|800px]]
'''Для того, чтобы система могла проверить инстанс, необходимо, чтобы в системе были сохранены данные слоя формул и настройка меппинга ''(даже пустая)''.'''


Отличие в данном случае только в том, что при открытии механизма валидации из записи XBRL в него передается имя сохраненного файла.
1. Для загрузки слоя формул открываем «Меппинг таксономии» («Лицевые счета (НФО) –> Сервис»), выбираем нужную точку входа и нажимаем на нее правой кноп-кой мыши и выбираем пункт «Слой формул» (либо используем кнопку «Слой фор-мул»).  
В открывшейся форме «Работа с таксономией XBRL» нажимаем кнопку «Сохранить»:


{|style="background:#F0F0F0"
|Для того, чтобы система могла проверить инстанс, необходимо, чтобы в системе были сохранены данные слоя формул и настройка меппинга (даже пустая).
Настройка меппинга нужна для того, чтобы система могла определить значения осей по умолчанию, т.к. они представлены в фильтрах формул.
|}


Процесс валидации состоит в следующем:
[[Файл:22211.png|центр|750px]]


1. Система читает выбранный файл XBRL.<br>
2. Система читает слой определений таксономии для схемы из файла XBRL.<br>
3. Система читает список формул для схемы XBRL.<br>
4. Для каждого контрольного соотношения производится выборка переменных и расчет глобальных переменных.<br>
5. Если проверка является проверкой на наличие элемента (existenceAssertion), то система проверяет, найден ли элемент. Если элементов, удовлетворяющих условию фильтра переменной нет, то система генерирует сообщение из таксономии. В противном случае считается, что проверка завершена успешно.<br>
6. Для пересекающихся измерений в части сравниваемых полей происходит оценка формулы предварительной проверки (precognition).<br>
7. Если результатом предварительной проверки является «Истина», то происходит вычисление контрольного соотношения.<br>
8. Если результатом оценки контрольного соотношения является «Ложь», то система генерирует сообщение в соответствии с таксономией.<br>
9. Проверка производится для каждого уникального набора оставшихся после фильтрации элементов осей и периода. Если в переменной указан модификатор периода или измерения, то этот период и измерение не участвует в построении ключа уникальности.


Для проверки после выбора файла нужно нажать на кнопку «Валидация». Сейчас вывод сработавших контрольных соотношений осуществляется таким образом:
Настройка меппинга нужна для того, чтобы система могла определить значения осей по умолчанию, т.к. они представлены в фильтрах формул.
 
Процесс валидации состоит в следующем:
[[Файл:Val 008.jpg|1200px]]
 
В данном случае приведено сработавшее контрольное соотношение для отчета ОКУД 0420409, Информация об отчитывающейся организации.
 
===Элементы контрольных соотношений===
 
====Формула====
 
Формула контрольного соотношения находится в атрибуте «test» основного родительского узла. Формула оперирует выражением на языке X-Formula, включая функции, условные операторы и другие элементы языка. Переменная, ссылающаяся на непустой элемент считается в логическом выражении как «Истина», если элемент пустой, то как «Ложь». Контрольное соотношение «$SomeValue» будет истинным в том случае, если переменная ссылается на какой-либо из присутствующих в файле элементов. Если в файле нет элементов, которые бы могли быть извлечены по фильтрам для этой переменной, то подобное выражение ложно.
 
В выражениях переменные записываются со знака «$» перед именем. Переменные могут быть «локальными» - выбранными фильтрами. Также переменные могут быть «глобальными», которые определяются выражением X-PATH поля «select» подобной переменной.
 
====Переменная====
 
Переменные в языке X-Formula определяются через выражение X-PATH к данным, используя общие и локальные фильтры и модификаторы. Задача процессора правильно определить, откуда взять переменную. Обычная переменная ссылается на какой-то факт, который извлекается из инстанса путем запроса к нему. Запрос использует данные концептов и элементов осей, описанных в фильтрах. Совокупность переменных с идентичными данными помещается в оцениваемые наборы, для которых производится вычисление предварительные условий и контрольного соотношения.
 
Глобальные переменные могут использоваться как внутри переменной для отбора, например, данных только с определенной датой, так и для формирования сообщения о сработавшем контрольном соотношении. Также глобальные переменные могут использоваться и в качестве переменной контрольного соотношения. Отличие только в том, что глобальная переменная не ограничена значением факта – она может ссылаться на любой элемент инстанса (схему, контекст, факт, полученный из инстанса произвольным выражением X-PATH, …), для глобальной переменной нет ограничений – она вычисляется всегда для инстанса.
 
====Предварительные условия====
 
Предварительное условие – это выражение, которое по синтаксису не отличается от контрольного соотношения, но обратно ему по смыслу. Если при вычислении предварительного условия получилась «Ложь», то контрольное соотношение не оценивается. Если «Истина», то контрольное соотношение вычисляется.
 
====Общие фильтры====
 
Общие фильтры в контрольных соотношениях работают для всех переменных сразу. Они определяют совокупность измерений для переменных и их концептов. Если в рамках заданного куба необходимо оценить совокупность всех монетарных показателей, то в переменных могут быть описаны только значения измерений (например, компоненты капитала), а совокупность оцениваемых концептов может быть вынесена в общий фильтр. Может быть и наоборот, когда общий фильтр содержит все, участвующие в оценке, элементы осей.
 
====Интерпретация результатов====
 
Для того, чтобы оценить результат валидации, в настоящее время валидатор генерирует по каждому сработавшему контрольному соотношению список входящих в него переменных. Стоит отметить, что для одного контрольного соотношения может существовать несколько наборов данных (например, данные на начало и окончание периода отчета, на сопоставимые отчетные даты предыдущих периодов и т.д.). Для каждого такого набора производится оценка.
 
Если вычисление контрольного соотношения возвратило «Ложь», данное контрольное соотношение отражается в списке сработавших контролей (в настоящее время в правом дереве формы валидации, в левом дереве отражаются ошибки, всплывшие в ходе работы процессора формул и над которыми мы работаем).
 
Давайте разберем следующий пример:
 
Контрольное соотношение: 0420154 Раздел 12 подразделы 1,5,6,9 Если заполнен показатель «стоимость дебиторской задолженности по данным бухгалтерского учета - всего», то должны быть заполнены показатели «ИНН или TIN дебитора», «Наименование дебитора», «Код страны регистрации дебитора».
 
[[Файл:Val 009.jpg|900px]]
 
В данном контрольном соотношении проверяется факт того, что для аналогичных по ключу переменных «inn_deb», «naim_deb» и «kod_strany….» (наименование дебитора, код страны и ИНН дебитора) присутствует непустое значение. В данном случае «Наименование дебитора» для этого ключа отсутствует (значение отмечено словом «DEFAULT»). Это говорит скорее всего о том, что при выгрузке имя дебитора попало в открытую ось (ООО «САНДИО») при этом в элемент XBRL Naim_Deb данные выгружены не были.
 
=='''ВНУТРЕННИЕ КОНТРОЛИ'''==
 
===Справочник «Контрольные соотношения»===
 
Внутренние контроли реализуются посредством хранимых в справочниках формул и переменных контрольных соотношений.
Формулы контролей задаются элементами иерархического справочника «Контрольные соотношения». Данный справочник в настоящее время доступен только через «Все функции».


[[Файл:Val 001.jpg|1000px]]
1. Система читает выбранный файл XBRL.


[[Файл:Val 002.jpg|800px]]
2. Система читает слой определений таксономии для схемы из файла XBRL.


Рис. Элемент справочника
3. Система читает список формул для схемы XBRL.


Поле «Выражение» содержит выражение контрольного соотношения, которое вычисляется для оценки этого соотношения. Все переменные в выражении должны быть указаны с символом «$» в начале. Если результатом выражения является логическое «Истина», то такое контрольное соотношение считается прошедшим проверку. Если же при вычислении выражения получается логическое «Ложь», то такое контрольное соотношение считается не прошедшим проверку и выводится пользователю на закладке «Контрольные соотношения» регламентированного отчета.
4. Для каждого контрольного соотношения производится выборка переменных и рас-чет глобальных переменных.


Таблица «Переменные» содержит совокупность переменных, служащих источниками для вычисления контрольного соотношения. Поле функция заполняется значением «SUM» для случаев, когда переменная является агрегатной функцией «Сумма» для указанного в нем источника (например, поле «Сумма» открытой модели данных). Агрегация будет работать только для открытых моделей. В других случаях колонку «Функция» заполнять не следует.
5. Если проверка является проверкой на наличие элемента (existenceAssertion), то си-стема проверяет, найден ли элемент. Если элементов, удовлетворяющих условию фильтра переменной нет, то система генерирует сообщение из таксономии. В против-ном случае считается, что проверка завершена успешно.


===Справочник «Переменные» (контрольных соотношений)===
6. Для пересекающихся измерений в части сравниваемых полей происходит оценка формулы предварительной проверки (precognition).


Этот справочник содержит информацию о том, где находится источник переменной и каким образом он используется при агрегации:
7. Если результатом предварительной проверки является «Истина», то происходит вычисление контрольного соотношения.


[[Файл:Val 003.jpg|1400px]]
8. Если результатом оценки контрольного соотношения является «Ложь», то система генерирует сообщение в соответствии с таксономией.


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


На картинке выше приведен пример переменной «DSKO_BB», которая ссылается на 13-ю колонку отчета «0420409. СВЕДЕНИЯ О БАНКОВСКИХ СЧЕТАХ» с информацией о сумме остатка ДС на счете на конец периода. Контрольное соотношение, приведенное выше, проверяет следующее равенство: «$DSKO_BB = $DSKO_BB2 + $DSKO_ObDt - $DSKO_ObKt». В данном конкретном случае для открытого отчета «0420409» производится проверка равенства суммы на конец периода и суммы на начало периода, к которой прибавляется сумма поступления и вычитается сумма списания.
Для проверки после выбора файла нужно нажать на кнопку «Валидация»:


Результатом работы контрольных соотношений будет следующая картина:
[[Файл:2112.png|центр|750px]]


[[Файл:Val 004.jpg|1400px]]
Пример сработавшего контрольного соотношения для отчета «0420150»:


В данном случае строка «0», «1»  не удовлетворяют условию контрольного соотношения, о чем сообщается на закладке «Контрольные соотношения» (в скобках количество сработавших контролей), нумерация строк начинается с «0». Если мы вычислим данные из верхней строки, то получим следующий результат: 5 250,00 = 0 + 419 745,00 - 416 764,00 (2 981,00).
[[Файл:1212.png|центр|750px]]
Таким образом сравнение 5 250,00 и 2 981,00 дают «Ложь», т.к. числа не равны между собой.


====Отборы в переменных:====
<span style="font-size: 130%">'''Интерпретация результата'''</span>


В переменных могут использоваться отборы. В качестве отбора указывается колонка и значение, которое в ней должно находиться. Также в случае, если в отчетах представляется информация, например, по разным ПИФ’ам, то можно указать, какую колонку считать ключом отчета (например, идентификатор ПИФ, УК или НПФ, ИНН/ТИН контрагента и т.п.).
Для того, чтобы оценить результат валидации, в настоящее время валидатор генери-рует по каждому сработавшему контрольному соотношению список входящих в него переменных. Стоит отметить, что для одного контрольного соотношения может суще-ствовать несколько наборов данных (например, данные на начало и окончание перио-да отчета, на сопоставимые отчетные даты предыдущих периодов и т.д.). Для каждого такого набора производится оценка.
Для создания отбора необходимо дважды кликнуть на колонке «Отбор»:
Если вычисление контрольного соотношения возвратило «Ложь», данное контроль-ное соотношение отражается в списке сработавших контролей (в настоящее время в правом дереве формы валидации, в левом дереве отражаются ошибки, всплывшие в ходе работы процессора формул и над которыми мы работаем).
В качестве примера давайте разберем следующий пример:
Контрольное соотношение: 0420154 Раздел 12 подразделы 1,5,6,9 Если заполнен по-казатель «стоимость дебиторской задолженности по данным бухгалтерского учета – всего», то должны быть заполнены показатели «ИНН или TIN дебитора», «Наимено-вание дебитора», «Код страны регистрации дебитора».


[[Файл:Val 005.jpg|1400px]]
[[Файл:Val 009.jpg|центр|750px]]


В данном случае выбрано поле «Вид счета кредитной организации», а в качестве отбора указано значение «Расчетный». Таким образом данная переменная будет выбирать только те строки, в которых в 6-й колонке соответствующее отбору значение.
В данном контрольном соотношении проверяется факт того, что для аналогичных по ключу переменных «inn_deb», «naim_deb» и «kod_strany….» (наименование дебито-ра, код страны и ИНН дебитора) присутствует непустое значение. В данном случае «Наименование дебитора» для этого ключа отсутствует (значение отмечено словом «DEFAULT»). Это говорит скорее всего о том, что при выгрузке имя дебитора попа-ло в открытую ось (ООО «САНДИО») при этом в элемент XBRL Naim_Deb данные выгружены не были.


[[Категория:XBRL| ]]
[[Категория:XBRL| ]]
{{DISPLAYTITLE:<span style="display:none">{{FULLPAGENAME}}</span>}}

Текущая версия от 11:21, 27 сентября 2020

Контроль инстанса

Для контроля файла XBRL в решении существует механизм, который доступен из формы записи XBRL или из раздела «Лицевые счета (НФО)»:

Отличие в данном случае только в том, что при открытии механизма валидации из за-писи XBRL в него передается имя сохраненного файла.

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

1. Для загрузки слоя формул открываем «Меппинг таксономии» («Лицевые счета (НФО) –> Сервис»), выбираем нужную точку входа и нажимаем на нее правой кноп-кой мыши и выбираем пункт «Слой формул» (либо используем кнопку «Слой фор-мул»). В открывшейся форме «Работа с таксономией XBRL» нажимаем кнопку «Сохранить»:



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

1. Система читает выбранный файл XBRL.

2. Система читает слой определений таксономии для схемы из файла XBRL.

3. Система читает список формул для схемы XBRL.

4. Для каждого контрольного соотношения производится выборка переменных и рас-чет глобальных переменных.

5. Если проверка является проверкой на наличие элемента (existenceAssertion), то си-стема проверяет, найден ли элемент. Если элементов, удовлетворяющих условию фильтра переменной нет, то система генерирует сообщение из таксономии. В против-ном случае считается, что проверка завершена успешно.

6. Для пересекающихся измерений в части сравниваемых полей происходит оценка формулы предварительной проверки (precognition).

7. Если результатом предварительной проверки является «Истина», то происходит вычисление контрольного соотношения.

8. Если результатом оценки контрольного соотношения является «Ложь», то система генерирует сообщение в соответствии с таксономией.

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

Для проверки после выбора файла нужно нажать на кнопку «Валидация»:

Пример сработавшего контрольного соотношения для отчета «0420150»:

Интерпретация результата

Для того, чтобы оценить результат валидации, в настоящее время валидатор генери-рует по каждому сработавшему контрольному соотношению список входящих в него переменных. Стоит отметить, что для одного контрольного соотношения может суще-ствовать несколько наборов данных (например, данные на начало и окончание перио-да отчета, на сопоставимые отчетные даты предыдущих периодов и т.д.). Для каждого такого набора производится оценка. Если вычисление контрольного соотношения возвратило «Ложь», данное контроль-ное соотношение отражается в списке сработавших контролей (в настоящее время в правом дереве формы валидации, в левом дереве отражаются ошибки, всплывшие в ходе работы процессора формул и над которыми мы работаем). В качестве примера давайте разберем следующий пример: Контрольное соотношение: 0420154 Раздел 12 подразделы 1,5,6,9 Если заполнен по-казатель «стоимость дебиторской задолженности по данным бухгалтерского учета – всего», то должны быть заполнены показатели «ИНН или TIN дебитора», «Наимено-вание дебитора», «Код страны регистрации дебитора».

В данном контрольном соотношении проверяется факт того, что для аналогичных по ключу переменных «inn_deb», «naim_deb» и «kod_strany….» (наименование дебито-ра, код страны и ИНН дебитора) присутствует непустое значение. В данном случае «Наименование дебитора» для этого ключа отсутствует (значение отмечено словом «DEFAULT»). Это говорит скорее всего о том, что при выгрузке имя дебитора попа-ло в открытую ось (ООО «САНДИО») при этом в элемент XBRL Naim_Deb данные выгружены не были.