Распознавание текста и сравнение документов

20.11.25

Интеграция - Нейросети

Статья описывает практический подход к автоматизации сравнения документов с применением технологий OCR и локальных языковых моделей. Рассматриваются этапы настройки и интеграции Tesseract OCR, LM Studio и внешней обработки 1С для создания автономного решения.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Распознавание текста и сравнение документов
.epf 7,90Kb
1 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Бухгалтеры и юристы ежедневно сталкиваются с задачей сравнения версий договоров, актов и счетов. Ручное сравнение отнимает значительное время и повышает риск ошибок. Современные технологии оптического распознавания символов (OCR) и больших языковых моделей (LLM) позволяют автоматизировать этот процесс. После ухода с рынка решения 1С-ABBYY Comparator возникла необходимость поиска альтернативных инструментов. В результате анализа была выявлена перспективная связка открытых технологий: Tesseract OCR для распознавания текста и LM Studio для интеллектуального анализа различий.

 

Цель и архитектура решения

Цель статьи — продемонстрировать практическую реализацию автоматического распознавания и сравнения документов с использованием открытых технологий.
Архитектура решения включает три основных компонента:

  • Tesseract OCR — библиотека распознавания текста из изображений
  • LM Studio — локальный сервер LLM с REST API
  • Внешняя обработка 1С — интерфейс загрузки файлов и отображения результатов

 

Этап 1. Установка и настройка Tesseract OCR

Tesseract — это открытая библиотека оптического распознавания символов, поддерживаемая Google. Она работает с форматами PNG, TIFF, JPEG и требует предварительной конвертации PDF в изображения. Поддерживает более 130 языков с кодировкой Unicode, включая кириллицу.

Основные форматы вывода:

  • TXT — простой текст
  • hOCR — HTML с координатами элементов
  • TSV — табличный формат
  • PDF — PDF с текстовым слоем
  • ALTO XML — формат для архивов

Установка на Windows:

  1. Скачать установщик с https://github.com/UB-Mannheim/tesseract/wiki
  2. Выбрать языковые пакеты (русский и английский)
  3. Добавить путь в переменную среды PATH

Запустите скачанный exe-файл и следуйте мастеру установки:

  1. Выберите язык установщика и нажмите OK
  2. Нажмите Next для продолжения
  3. Примите лицензионное соглашение Apache License 2.0, нажав I Agree
  4. Выберите, для какого пользователя устанавливать (текущий или все пользователи)
  5. В разделе Choose Components обязательно выберите нужные языковые пакеты в секции Additional language data. Для распознавания русского текста выберите Russian в списке языков. Я выбрала еще Английский.
  6. Укажите папку установки (по умолчанию C:\Program Files\Tesseract-OCR) и обязательно запомните этот путь
  7. Выберите папку в меню "Пуск" для ярлыков или отключите создание ярлыков
  8. Нажмите Install и дождитесь завершения установки
  9. Нажмите Finish

Далее переходим к установке переменных сред. Необходимо добавить Tesseract в переменную PATH для доступа из командной строки:

  1. Откройте поиск Windows и введите "переменные среды" или "environment variables"
  2. Выберите Изменение системных переменных среды
  3. Нажмите кнопку Переменные среды в нижней части окна
  4. В разделе Системные переменные найдите переменную Path и нажмите Изменить.
  5. Нажмите Создать и вставьте путь к папке установки Tesseract (например, C:\Program Files\Tesseract-OCR).
  6. Нажмите OK для сохранения изменений

 

 

Если вы установили Tesseract в нестандартную папку или если Tesseract не может найти файлы языковых данных, необходимо Создание переменной TESSDATA_PREFIX

Аналогично заходим в переменные среды:

 

Через командую строку проверяем версию. Команда tesseract -v

 

 

Если остались ошибки, ознакомьтесь с подробной статьей по установке на Windows Подробная установка на английском – по ссылке https://docs.coro.net/featured/agent/install-tesseract-windows/

!!! После добавления переменных обязательно перезапустите командную строку или PowerShell.

  • Настройка языковых пакетов (русский + английский)

Если вы не выбрали языковые пакеты при установке, их можно добавить.

    1. https://github.com/tesseract-ocr/tessdata - скачиваем необходимые языки.
    2. Скачанные файлы *.traineddata (например, rus.traineddata для русского языка) нужно поместить в папку tessdata. Для Windows: C:\Program Files\Tesseract-OCR\tessdata или /usr/local/share/tessdata/. Если путь нестандартный, установите переменную окружения TESSDATA_PREFIX на родительскую папку для tessdata (делали выше).
    3. Проверяем установленные языки по команде: tesseract --list-langs

 

 

Для указания языка при запуске Tesseract используется флаг -l с кодом языка:

русский: tesseract image.png output -l rus

английский: tesseract image.png output -l eng

Можно комбинировать несколько языков: tesseract image.png output -l rus+eng

  • Запускаем  Командную строку (cmd/PowerShell): пробуем распознать текст из картинки png, проверяем вывод в папу Output по команде:

tesseract imagename outputbase [-l lang] [--oem ocrenginemode] [--psm pagesegmode] [configfiles...]

Моя команда: tesseract C:\output\test1.png C:\output\outputfile1 -l rus+eng
где C:\output\test1.png – файл картинки imagename

C:\output\outputfile1 – католог вывода файла outputbase

 

 

Файл распознан в текст и сохранен в указанную папку с указанным именем:

 

 

Этап 2. Развертывание LM Studio

LM Studio — это платформа для работы с локальными языковыми моделями (LLM). Сервис устанавливается на Windows, Mac или Linux и может работать как REST API сервер. Преимущество — полная автономность и конфиденциальность работы: документы не покидают ваш компьютер.

Настройка и запуск:

  1. Скачать с https://lmstudio.ai/
  2. Выбрать модель saiga_llama3_8b_gguf
  3. Настроить контекст до 8192 токенов
  4. Запустить сервер REST API

Развертывание LM Studio:

  • Установка LM Studio на локальный компьютер (ссылка выше)
  • Выбор и загрузка подходящей модели. Почитала и выбрала saiga_llama3_8b_gguf

Ограничения модели:

 

 

8.192 токена у этой модели. Для  обработки больших объемов информации это мало.
У меня настроено 4096 токенов, можно выставить по максимум.

Я загружала 2 страницы изображения текста договора Аренды помещения, при этом 1 страница составляет 3420символов. На это я потратила 3279токенов.

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

Может, стоит подумать, как загружать договоры по-странично, чтобы выбирать меньше токенов?!.

  • Запуск в режиме REST API сервера – запускаем Status Runing, теперь наша AI может принимать rest-запросы
  • Настройка endpoint

Теперь можем отправлять Http – запросы к LLM.

Пример промпта для сравнения:

«У меня есть два договора. Тебе надо их сравнить и найти различия. Сравнение вывести в таблицу, состоящей из 4 столбцов: номер строки (и пункта договора), данные из Договора 1, данные из Договора 2, различия. Если различий нет, то в колонке «Различия» ничего не указывается. Цвет текста в колонке «Различия» должны быть красным. Эту в таблицу со сравнением договоров поместить в документ в формате html. Ответ предоставь только в формате html без комментариев».

 

Этап 3. Создание внешней обработки 1С

Для удобства создается внешняя обработка 1С, объединяющая OCR, LLM и визуализацию результата в одном интерфейсе.

Основные элементы:

  • Два поля выбора файлов
  • Кнопка «Сравнить»
  • Поле HTML для вывода результата

Код в обработке (модуль Формы):

&НаКлиенте
Процедура ЗагрузитьИзФайла(Команда)
	ВыборФайла(Файл1);	
КонецПроцедуры 

&НаКлиенте
Процедура ЗагрузитьИзФайла2(Команда)
	ВыборФайла(Файл2);
КонецПроцедуры

&НаКлиенте
Процедура ВыборФайла(Файл)
	
	ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогФыбораФайла.Фильтр = "Картинка формата png (*.png)|*.png"; 
	ДиалогФыбораФайла.Заголовок = "Выберите файл";
	ДиалогФыбораФайла.ПредварительныйПросмотр = Истина;
	ДиалогФыбораФайла.ИндексФильтра = 0;
	Если ДиалогФыбораФайла.Выбрать() Тогда
		Файл = ДиалогФыбораФайла.ПолноеИмяФайла;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Сравнить(Команда)
	
	//Запускаем tesseract, указываем языки (русский/английский)
	ВыходнойФайл1 = "C:\output\outputfile1";
	ВыходнойФайл2 = "C:\output\outputfile12";
	СтрокаКоманды = "tesseract "+ Файл1 + " " + ВыходнойФайл1 +" -l rus+eng";
	СтрокаКоманды2 = "tesseract "+ Файл2 + " " + ВыходнойФайл2 +" -l rus+eng";
	КомандаСистемы(СтрокаКоманды);
	КомандаСистемы(СтрокаКоманды2); 
	ВыполнитьPostЗапросСФайлом(ВыходнойФайл1, ВыходнойФайл2);
	
КонецПроцедуры

Процедура ВыполнитьPostЗапросСФайлом(ВыходнойФайл1, ВыходнойФайл2)

	// Читаем содержимое текстового файла
	ПутьКФайлу1 = ВыходнойФайл1 + ".txt";
	ПутьКФайлу2 = ВыходнойФайл2 + ".txt";
	ЧтениеФайла = Новый ЧтениеТекста(ПутьКФайлу1, КодировкаТекста.UTF8);
	СодержимоеФайла1 = " Первый договор " + ЧтениеФайла.Прочитать();
	ЧтениеФайла.Закрыть();
	ЧтениеФайла = Новый ЧтениеТекста(ПутьКФайлу2, КодировкаТекста.UTF8);
	СодержимоеФайла2 = " Второй договор "+ ЧтениеФайла.Прочитать();
	ЧтениеФайла.Закрыть();

	Промт = "У меня есть два договора. Тебе надо их сравнить и найти различия. 
	|Сравнение вывести в таблицу, состоящей из 4 столбцов: номер строки (и пункта договора), 
	|данные из Договора 1, данные из Договора 2, различия. 
	|Если различий нет, то в колонке «Различия» ничего не указывается. 
	|Цвет текста в колонке «Различия» должны быть красным. Эту в таблицу со сравнением договоров поместить в документ в формате html. 
	|Ответ предоставь только в формате html без комментариев";
	Промт = Промт + СодержимоеФайла1 + СодержимоеФайла2;
	// Формируем данные через структуру
	Данные = Новый Структура;
	Данные.Вставить("model", "saiga_llama3_8b_gguf");
	Данные.Вставить("input", Промт); // Вставляем промт

	Reasoning = Новый Структура;
	Reasoning.Вставить("effort", "low");
	Данные.Вставить("reasoning", Reasoning);

	// Преобразуем в JSON
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, Данные);
	ТелоЗапроса = ЗаписьJSON.Закрыть();

	// Создаем HTTP соединение и запрос
	Соединение = Новый HTTPСоединение("localhost", 1234);
	Запрос = Новый HTTPЗапрос("/v1/responses");
	Запрос.Заголовки.Вставить("Content-Type", "application/json");
	Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

	// Отправляем запрос
	Попытка
		Ответ = Соединение.ОтправитьДляОбработки(Запрос);
		Ответ = Ответ.ПолучитьТелоКакСтроку();
		ПолеHTML = ПолучитьТекстИзJSON(Ответ);
	Исключение
		Сообщить("Ошибка: " + ОписаниеОшибки());
	КонецПопытки;

КонецПроцедуры  

Функция ПолучитьТекстИзJSON(СтрокаJSON)
	// Создаем объект для чтения JSON
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
	
	// Преобразуем JSON в структуру/соответствие 1С
	// Второй параметр Истина позволяет читать в Соответствие
	ДанныеJSON = ПрочитатьJSON(ЧтениеJSON, Истина);
	ЧтениеJSON.Закрыть();
	
	// Извлекаем текст из вложенной структуры
	// Путь: output[0].content[0].text
	HTMLContent = ДанныеJSON["output"][0]["content"][0]["text"];
	Возврат HTMLContent;

КонецФункции	

В 1С выглядит следующим образом:

 

Файлы png, загружаемые в Tesseract:

 

Файлы outputfile.txt, полученные из png Tesseract

 

 

Выводы

Преимущества:

  • Автономность — работает без интернета
  • Бесплатные open-source компоненты
  • Гибкость и расширяемость
  • Безопасность — локальная обработка
  • Высокая скорость и невысокие требования

Ограничения:

  • Качество распознавания зависит от сканов
  • Нужна достаточная мощность LLM
  • Модель может "фантазировать" и выдавать разные результаты при одинаковых входных данных

Перспективы:

  • Добавление предобработки изображений,
  • Работать "по-строчно"/по абзацам: результат OCR разбивать на абзацы, их генерировать в эмбенденги, которые и будем "отдавать " в LM для сравнения. 
  • Поддержка DOCX и XLSX
  • Пакетная обработка
  • Интеграция с базой 1С

Заключение

Комбинация OCR и LLM открывает новые возможности для автоматизации рутинных операций с документами в 1С. Решение демонстрирует практическое применение современных AI-технологий и дает компаниям безопасный и экономичный способ ускорить работу с документами.

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.11.70

Вступайте в нашу телеграмм-группу Инфостарт

Обработка LM Studio LLM Ollama OCR распознавание текста Tesseract нейросети сравнение документов интеграция

См. также

Администрирование веб-серверов Сервера Нейросети Программист Платные (руб)

Сервер поиска по метаданным и поиска по коду, Сервер экспорта и поиска по документации, Сервер синтаксической проверки кода

17.06.2025    17039    0    Infostart    20    

113

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    23441    59    9    

64

SALE! 30%

Учет документов Распознавание документов и образов Бухгалтер Пользователь 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

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

6480 руб.

23.12.2021    15116    29    25    

12

Мастера заполнения Нейросети 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания товара (номенклатуры) с помощью модели ИИ ChatGPT с ключевыми словами. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5000 руб.

13.03.2023    21668    55    50    

79

Нейросети Пользователь 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Расширение "Искусственный интеллект и нейросети в 1С: Работа с отзывами маркетплейсов" предназначено для применения искусственного интеллекта в повседневной деятельности селлеров на маркетплейсах. Среди функций - работа с отзывами, вопросами и чатами покупателей, диалог с нейросетями, генерация картинок, заполнение описаний номенклатуры и другое.

6000 руб.

03.04.2024    11814    6    0    

11

Нейросети Программист Бесплатно (free)

Большие языковые модели все чаще применяются для генерации кода на 1С, но до сих пор нет единого способа объективно сравнить их качество. Объясняем, как работают метрики BLEU, CodeBLEU и pass@k, и как их можно адаптировать для оценки LLM в экосистеме 1С. Показываем, какие задачи – от простых функций до рефакторинга – помогают полноценно оценить интеллект модели и ее знание платформы. Разбираем ключевую проблему проверки логики и синтаксиса в автоматическом режиме и показываем бенчмарк, который решает эту задачу, сравнивая ChatGPT, Claude, GigaChat и другие модели по единым стандартам.

31.10.2025    2623    Vaslot    14    

16

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

ИИ для код-ревью – не просто модный тренд, а реальный инструмент, который уже помогает разработчикам экономить время и повышать качество кода. В статье разбираемся, как запустить локальную LLM на базе Ollama, подключить ее к Git через Webhook и Python-скрипт, а также какие параметры модели отвечают за точность и галлюцинации. Делимся схемой работы, настройками и результатами тестирования, доказывая, что автоматизированное код-ревью действительно может работать – даже без космического бюджета.

30.10.2025    2975    user2100900    3    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2337 20.11.25 17:16 Сейчас в теме
(0) Делал аналогичное упаковав распознавание в Docker
https://github.com/Diversus23/extract-text

Статья на Хабре как это все работает Как я создал Text Extract API для RAG за 2 дня с помощью AI и Cursor: подробный кейс
prokhodolya; +1 Ответить
2. prokhodolya 10 20.11.25 17:49 Сейчас в теме
Спасибо. Я прям очень сильно начинающий) ознакомлюсь👍🏻
Для отправки сообщения требуется регистрация/авторизация