В предыдущей части пытались разбираться с таксономией (тут). Если получать готовый отчет XBRL из учетной системы, то нам необходимо как-то его проверить (валидировать) по определенным в таксономии правилам (база формул). Это можно сделать в ПО "Анкета-редактор XBRL". Но это не удобно: создавать пакет, загружать, проверять...
Увидев что Анкета-редактор проверяет отчет вызовом arelleCmdLine.exe через командную строку, возникла идея получать и обрабатывать log-файл об ошибках самим.
Как это делает ПО "Анкета-редактор XBRL" (пример):
C:\Program Files (x86)\Anketa-redaktor XBRL\bin\anketa-assets\arelleCmdLine.exe -f <путь отчета>.xml -v --packages <путь таксономии>final_1_2.zip --parameters {http://parameters}param_min1=2017-12-28,{http://parameters}PriorPeriod-1Start=2015-01-01,{http://parameters}CurrentPeriodStart=2016-01-01,{http://parameters}param_min3=2017-06-28,{http://parameters}param_min2=2017-09-28,{http://parameters}startRepYear=2017-12-31,{http://parameters}PriorPeriod-2Start=2014-01-01,{http://parameters}refPeriodEnd=2018-02-28,{http://parameters}refPeriodStart=2016-01-01,{http://parameters}PriorPeriod-2End=2016-02-28,{http://parameters}startQuart=2017-12-29,{http://parameters}PriorPeriod-1End=2015-12-31,{http://parameters}CurrentPeriodEnd=2018-02-28,{http://parameters}startMonth=2018-01-31 --logFile <путь лога>.xml --export --exportDir <путь выгрузки ролей> --uiLang ru --labelLang ru-RU --calcDecimal --infoset --formula run --formulaUnsatisfiedAsser --logFormat "%(messageCode)s DIVIDER %(message)s DIVIDER %(file)s DIVIDER %(refs)s DIVIDER %(levelname)s DIVIDER %(args)s ENDOFROW"
Посмотрев help к arellecmdLine.exe выясняем что часть параметров лишняя:
--parameters: используются для базы таблиц, в проверках не используются (может и ошибаюсь, но не нашел где в формулах используется).В версии таксономии 1.3 используется.- --export: видимо используют для создания ссылок на таблицы из список ошибок. Нам это не нужно.
- --infoset: не используем.
Просто убрать --parameters нельзя,т.к. будут выходить ошибки при загрузке/проверки базы таблиц. Необходимо исключать файлы *-rend.xml, *-lab.xml:
--skipLoading "*-rend.xml|*-lab.xml"
Так же в логах идет ошибка с кодом "err:XPTY0004", ее можно пропускать через параметр --logCodeFilter.
Проверять отчет можно через arelleCmdLine.exe как от Анкеты-редактора так и от сайта arelle.org.
Важно!!! Результаты проверки через Анкету-редактор (1.0.345) и arelle.org (2018-03-16) разные:
- не совпадают количество ошибок;
- есть ошибки которые присутствуют в Анкете, но нет в arelle.org и наоборот;
- не совпадают описание переменных.
Представленная обработка показывает пример запуска проверки отчета и вывод лог-файла в виде отчета.
На следующих двух скринах показано различие в описании переменных по одной и той же ошибке.
На вкладке "Подробности" xml-тексты для информации.
Инструкция к обработке:
1. Указываем пути к arelleCmdLine.exe, файлу таксономии (zip), отчету XBRL. Кнопка "Проверить и сформировать отчет проверки". Если файл-лог не был указан, то создается новый в том же каталоге что и отчет XBRL. Если указан, то перезаписывается.
2. Если хотим вывести отчет по уже существующему файлу-логу, указываем его и кнопка "Вывести отчет по логу-файлу".
Если вы получаете готовый отчет из учетной системы и у вас нет базы формул, то используемый метод позволит пользователю проверить отчет без запуска Анкеты-редактора
Обновление вер. 1.2: После выпуска таксономии версии 1.3 пришлось включить выбор периода для установки параметров проверки.
Замечание: при проверке бухгалтерской отчетности используется установленная для фактов разрядность "-3", что не очень удобно,т.к. в отчет проверки суммы выходят округленные до тыс.рублей. Поэтому мы обычно для проверки готовим xbrl-отчет с разрядностью "2".
Обновление 07.09.2018: с последней версией Анкета-редактор обработка не работает, т.к. разработчики запретили запускать проверку через командную строку (ключ key). Занялся обработкой базы формул, уже получается проверять по части формул. Готовиться статья по разбору базы формул таксономии...