Как настроить распознавание текста в 1С:Документооборот 2.1 при ошибке 'Не удалось распознать картинку'?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот
← На главную

При работе с конфигурацией 1С:Документооборот 8, редакция 2.1 (для диагностики пригодится выгрузка прикрепленных файлов для 1С:Документооборот), пользователи часто сталкиваются с трудностями при настройке распознавания текста. Одной из распространенных проблем является появление сообщения об ошибке: "Не удалось распознать картинку. Возможно она не содержит текста для распознавания". В этом руководстве мы подробно разберем, почему возникает такая ошибка, и предложим комплексные шаги по ее устранению, охватывая все необходимые настройки и проверки.

Процесс распознавания текста в 1С:Документооборот опирается на внешние компоненты. Важно понимать, что успешная загрузка компоненты распознавания, такой как CuneiFormLoaderAddIn, еще не гарантирует корректную работу самого механизма распознавания. Сообщение "Не удалось распознать картинку" указывает на проблему уже на этапе обработки изображения внешним распознавателем, а не на ошибку загрузки компоненты в 1С.

Давайте рассмотрим подробнее каждый шаг, который поможет нам настроить распознавание текста.

1. Проверка загрузки внешней компоненты CuneiForm

Прежде всего, давайте проанализируем начальный этап, связанный с загрузкой внешней компоненты CuneiFormLoaderAddIn. В коде 1С, который отвечает за эту операцию, мы можем увидеть примерно такую конструкцию:


КомпонентаЗагрузкиCuneiForm = Неопределено;
Попытка
    КодВозврата = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаЗагрузкиCuneiForm", "CuneiFormLoaderAddIn", ТипВнешнейКомпоненты.Native);
    КомпонентаЗагрузкиCuneiForm = Новый("AddIn.CuneiFormLoaderAddIn.AddInNativeExtension");    
Исключение
    ОписаниеОшибки = НСтр("ru = 'Не удалось загрузить компоненту загрузки CuneiForm'");
    Возврат "Ошибка";
КонецПопытки;

Если в результате выполнения этого кода переменная КодВозврата оказывается пустой строкой (""), это не является ошибкой. Наоборот, это свидетельствует об успешной загрузке компоненты в систему. В случае реальной проблемы с загрузкой, мы бы получили исключение, и в ОписаниеОшибки содержалась бы дополнительная информация о причинах неудачи. Таким образом, если компонента загрузилась, проблема заключается в некорректной работе самого механизма распознавания, а не в его подключении к 1С.

2. Установка и настройка стороннего программного обеспечения

Для корректной работы распознавания в 1С:Документооборот нам понадобятся три основных сторонних компонента. Каждый из них играет свою роль в цепочке обработки изображений:

  1. CuneiForm: Это основной движок для оптического распознавания символов (OCR), который непосредственно занимается извлечением текста из графических файлов. Несмотря на то, что проект считается заброшенным, 1С:Документооборот 2.1 продолжает его использовать.
  2. ImageMagick: Этот мощный инструмент используется для преобразования различных форматов графических файлов. В контексте распознавания, ImageMagick преобразует, например, PDF-документы или другие изображения в форматы, пригодные для обработки CuneiForm.
  3. Ghostscript: Это интерпретатор PostScript и PDF-файлов. Ghostscript является обязательной зависимостью для ImageMagick при работе с PDF-документами. Без него ImageMagick не сможет корректно обрабатывать и конвертировать PDF-файлы.

Важно: Все эти программы должны быть установлены на том сервере (в случае клиент-серверного варианта 1С) или на том клиентском компьютере (в файловом варианте), где будет выполняться процесс распознавания. Установка должна быть произведена под тем пользователем, от имени которого работает сервер 1С:Предприятия. Это критически важно для корректной работы и доступа к ресурсам.

3. Обеспечение необходимых прав доступа

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

  1. Права доступа к каталогу установки CuneiForm: Предоставьте пользователю, от имени которого работает сервер 1С:Предприятия (или пользователь, выполняющий распознавание на клиенте), полные права доступа к каталогу установки CuneiForm (например, "C:\Program Files (x86)\Cognitive\CuneiForm"). Это необходимо, поскольку CuneiForm во время работы создает временные файлы, такие как internal.vit, а иногда и диагностические set????.tmp.err. Без прав на запись в этот каталог, программа не сможет функционировать. Также, необходимо предоставить права на создание файлов для обычных пользователей и права на их изменение и удаление для СОЗДАТЕЛЯ-ВЛАДЕЛЬЦА.
  2. Права доступа к веткам реестра: Рекомендуется проверить и, при необходимости, дать пользователям полные права доступа к ветке реестра HKEY_CLASSES_ROOT\CuneiformFace.Document\CLSID и к соответствующему ей CLSID (например, {5D1A…}). Хотя влияние этих настроек может быть не всегда очевидным, это может решить некоторые специфические проблемы совместимости.

4. Настройки в 1С:Документооборот

После установки внешних компонент и настройки прав доступа, мы переходим к конфигурации самой программы 1С:Документооборот:

  1. Перейдите в раздел "Настройка и администрирование" – "Настройка программы" – "Работа с файлами".
  2. Включите опцию "Использовать распознавание". Без активации этой опции, система не будет пытаться распознавать текст.
  3. В настройках распознавания (которые станут доступны после включения опции) необходимо активировать использование ImageMagick и указать полный путь к исполняемому файлу magick.exe. Этот файл обычно находится в директории установки ImageMagick (например, "C:\Program Files\ImageMagick\magick.exe"). В некоторых случаях, если ImageMagick был установлен корректно, очистка пути в настройках 1С:Документооборот и повторное его указание может помочь системе "увидеть" исполняемый файл.

5. Разрядность компонентов для извлечения текста из PDF

Если ваша задача включает извлечение текста непосредственно из PDF-файлов (а не только распознавание изображений, полученных из PDF (поможет создание качественных копий документов со смартфона)), крайне важно убедиться, что разрядность сервера 1С:Предприятия и установленного ifilter совпадает. То есть, если сервер 1С работает в 64-битном режиме, то и ifilter должен быть 64-битным. И наоборот для 32-битной среды. Несоответствие разрядности может привести к тому, что извлечение текста из PDF будет некорректно работать или вообще не будет происходить.

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

6. Проверка и запуск регламентных заданий

Процесс распознавания в 1С:Документооборот управляется регламентными заданиями. Мы должны убедиться, что они активны и работают:

  1. Основное регламентное задание для распознавания изображений называется "Файлы: Распознавание изображений" — его работу поможет отслеживать контроль выполнения регламентных заданий с уведомлениями. Оно доступно в подсистеме "Автоматическая обработка". В клиент-серверном режиме это задание запускается автоматически по расписанию. Убедитесь, что оно включено и имеет адекватное расписание выполнения.
  2. Для извлечения текста из офисных файлов существует отдельное регламентное задание: "Файлы: Извлечение текста (из офисных файлов)".
  3. В файловом режиме работы 1С:Предприятия, регламентные задания не запускаются автоматически фоновым процессом. Для их выполнения требуется запуск отдельного сеанса обработки регламентных заданий (обычно через тонкий клиент или специальную обработку).

7. Диагностика и проверка работоспособности

Чтобы убедиться, что все сторонние компоненты установлены и настроены корректно, мы можем выполнить несколько проверок:

  1. Проверка ImageMagick с Ghostscript через командную строку: Откройте командную строку (cmd) на сервере 1С (или клиентском компьютере) и попробуйте выполнить команду convert. Эта команда является частью ImageMagick. Укажите путь к PDF-файлу и путь для сохранения результирующего PNG-файла. Например:
    
    convert "C:\path\to\your_document.pdf" "C:\path\to\output.png"
    
    Если команда выполнится успешно и будет создан PNG-файл, это означает, что ImageMagick и Ghostscript работают корректно и могут конвертировать PDF. Если возникнут ошибки, проверьте установку Ghostscript и убедитесь, что путь к его исполняемым файлам добавлен в системную переменную PATH.
  2. Проверка через клиентскую обработку "Автоматическое распознавание": В некоторых случаях настройка распознавания на клиентском компьютере может быть проще, чем на сервере. Попробуйте запустить обработку "Автоматическое распознавание" или "Автоматическое извлечение текста" на клиенте, чтобы проверить, работает ли функциональность локально. Это может помочь изолировать проблему, определив, связана ли она с серверной средой или с общими настройками.

8. Альтернативные решения и современные подходы

Если, несмотря на все усилия, проблемы с CuneiForm продолжаются, или вам требуется более современное и эффективное решение, существуют альтернативные варианты:

  1. Сервис распознавания документов от 1С: Начиная с версии 1С:Документооборот 2.1.19, фирма "1С" предлагает свой "Сервис распознавания документов" — для этого есть обработка для извлечения данных из PDF и фото с помощью ИИ. Этот сервис поддерживает распознавание русского языка и работает в тестовом режиме, предлагая более простую интеграцию и, возможно, лучшую стабильность. Мы можем рассмотреть возможность его использования, если версия вашей конфигурации позволяет.
  2. Платные решения: Для разработчиков и компаний с высокими требованиями к качеству и скорости распознавания, существует возможность подменить встроенный механизм, используя платные решения, такие как ABBYY Recognition Server или Content AI (ранее ABBYY). Эти решения часто интегрируются через внешние компоненты или специальные сервисы.
  3. Бесплатные библиотеки OCR: Можно рассмотреть интеграцию с бесплатными библиотеками, такими как Tesseract OCR. Для этого потребуется разработка собственной внешней компоненты, которая будет взаимодействовать с этой библиотекой и предоставлять результаты распознавания в 1С.
  4. Облачные сервисы распознавания: Современные облачные платформы предлагают мощные API для распознавания текста. К ним относятся Google Cloud Vision, Yandex Vision и даже функционал извлечения текста из изображений в Google Docs. Интеграция с такими сервисами может быть осуществлена через внешние компоненты или прямые HTTP-запросы, что позволит использовать передовые алгоритмы распознавания без необходимости установки локального ПО.
  5. "1С: Распознавание первичных документов": Это специализированное решение от 1С, которое предназначено для автоматического ввода первичных документов и часто использует более продвинутые механизмы распознавания — для этой задачи есть сервис автоматического распознавания первичных документов для 1С.

В случае, если распознать документ так и не удается, 1С:Документооборот присвоит файлу статус "Не удалось распознать". Это означает, что система попыталась обработать файл, но не смогла извлечь из него текст, что может быть связано как с техническими проблемами, так и с низким качеством исходного изображения.

Тщательно следуя этим шагам, мы можем значительно повысить шансы на успешную настройку распознавания текста в 1С:Документооборот 2.1 и избежать распространенных ошибок.

← На главную