Расширение для загрузки в 1С сканов документов, pdf файлов, распознанных с помощью OCR





Подсистема, предназначенная для автоматического разбора распознанного файла, извлечение из него полезной информации и загрузки данных в 1С.

Предисловие

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

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

Так как данное ПО, в принципе, рабочее, то введена система лицензирования, что бы заодно и её протестировать. Пока доступен только триальный ключ на 30 дней. Но проверка на то, что он выдаётся 1 раз — отключена, следовательно если ключ закончился/слетел, то получайте ещё.

Требования

Платформа не менее 8.3.12, режим совместимости не менее 8.3.12. Система Windows.

Описание

Программа использует различные варианты распознавания. Tesseract, ABBY FineReader, ABBY Hot Folder, ABBY Recognition Server, ABBYY Cloud OCR SDK. Выбор продукта зависит от количество документов и удобства использования в целом. Выбор пал именно на продукты ABBY, так как именно они выдают результат с наиболее приемлемым качеством распознавания и, самое важное, сохраняют структуру исходного файла. 

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

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

Ограничение №1: Шапка таблицы должна быть только горизонтальная

Ограничение №2: Строки таблицы не должны быть многоуровневыми

Ограничение №3: Таблица должна распознаться, следовательно в исходном документе должна быть явно выделена

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

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

Пользователю выводится список файлов, на каждый вид документа есть своя настройка загрузки. По этой настройке данные загружаются в 1с. 

Порядок установки, работы и нюансы более подробно в документации.

Пример

Счет из Демо-базы УТ

При распознавании данного файла получим следующий результат.

Загрузим в «Приобретение услуг и прочих активов». Сделаем следующие настройки.

Создадим документ.

Осталось проверить корректность загрузки и заполнить требуемые поля.

Достоинства

— Документы передаются только к ABBY и только при облаке, в остальных случаях всё распознается на стороне пользователя, что подразумевает полную конфиденциальность информации

— Полностью своя разработка, в том числе, подсистема лицензирования, что подразумевает простоту и дешевизну, если, конечно, произойдет коммерциализация

— Гибкие настройки под нужны пользователей

— Загрузка нетиповых документов без затрат на супердорогие решения

7 Comments

  1. duck

    Добрый день! А на каких условиях используются решения ABBYY? Это ведь наверняка коммерческие продукты.

    Reply
  2. trim89

    (1) добрый. Пользователь сам достаёт продукт Abby любым удобным для него способом и пользуется им сам. Лишних пару млн для покупки ядра, для встраиванья в решение, у меня нет.

    Reply
  3. batonbrest

    Добрый день!

    Выбрал вариант работы через API.

    попробовал распознать счет из pdf летит ошибка, взял картинку png из статьи, та же ошибка:

    Распознование Текста, {ОбщийМодуль.ДлительныеОперации.Модуль(534)}: Ошибка при вызове процедуры ВыполнитьМетодКонфигурации общего модуля ДлительныеОперации.

    Ошибка разбора XML: — [1,1]

    Фатальная ошибка:

    Extra content at the end of the document

    не подскажите в чем может быть проблема?

    Reply
  4. trim89

    (3) Добрый. Я это тестировал больше полугода назад. Тогда они отсылали ответ в формате xml. Возможно что-то поменялось. В декабре-январе хотел перетестировать данную функцию.

    Reply
  5. batonbrest

    (4) Я как то получить код модуля можно? Можете в личку ответить…

    Reply
  6. trim89

    (5)нельзя. Имеет смысл перенести получение самого файла в общий модуль, а парсер оставить в закрытом. Как закончу, на яндекс диск выложить и в личку написать. Выложил бы тут, но я не знаю как бесплатным сделать. Всегда требует какую то сумму.

    Reply
  7. batonbrest

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

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *