- Парсер отчёта.
- Выполнен полный рефакторинг модуля.
- Все классы обзавелись методом iter взамен items для итерации по их элементам. Метод вобрал в себя функции прежнего items, а так же часть условий болтавшихся в классе `ElemList`, включая возврат "заглушек" если элемента(-ов) нет.
- В `Row` метод filter переименован в match, условия стали понятнее.
- В `Row` метод добавления колонки (графы) добавляет в словарь не значение, а именованный кортеж `Column` одно из полей которого хранит код этой колонки.
- В `Report` метод чтения заголовков создаёт список именованных кортежей `Title`, вместо обычного кортежа из двух элементов.
- Удалены бесполезные флаги.
- Список элементов распаршенной формулы контроля (`ElemList`).
- Убрана конвертация списка кодов в множество (set).
- Для единообразия, разделы теперь так же храняться в классе списком.
- Списки отдельно взятых специфик теперь храняться отдельными полями (s1, s2, s3).
- Специфики теперь подготавливаются не до чтения отчёта, а в процессе, для каждой строки.
- Механизм получения параметров и каталогов для "развертывания" специфик переехал в класс `Specific`.
- Единожды подготовленные специфики сохраняются в словарь для последующего использования.
- При чтении отчёта добавлена проверка наличия описания формата для строки, если формата нет, проверка прекращается.
- Вспомогательные классы.
- В `SchemaFormats` добавлен отдельный метод проверки наличия формата для строки. Необходим для пропуска контролей в которых указаны строки, для которых нет формата.
- В `SchemaFormats` методы получения кода и параметров специфики больше не принимают и не возвращают код колонки если не найден код специфики.
- Спорная ситуация. В формуле контроля есть специфики, но в блоке форматов нет ноды с типом S, указывающим на код колонки с атрибутом справочника.
- В `NestedDefaultdict` метод getall переименован в get, новый getall просто возвращает список всех значений.
- Везде где проводилась работа со спецификами, вместо индекса используется сам ключ специфики (s1, s2, s3).