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

20.11.25

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

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

Файлы

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

Наименование Скачано Купить файл
Распознавание текста и сравнение документов
.epf 7,90Kb
3 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 нейросети сравнение документов интеграция

См. также

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

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

9900 руб.

25.08.2025    28682    67    12    

74

SALE! 30%

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

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

6480 руб.

23.12.2021    15374    29    25    

12

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36000 руб.

28.08.2025    3513    1    2    

4

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

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

6000 руб.

03.04.2024    12325    6    0    

11

Нейросети Мастера заполнения 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

5000 руб.

08.11.2023    5655    18    0    

28

Нейросети Программист 1С:Предприятие 8 Россия Бесплатно (free)

Узко специализированный кейс "Как с помощью ИИ можно загружать заказы любого формата и из любого источника".

25.11.2025    1532    Tigreno    7    

21

Распознавание документов и образов Программист Пользователь 1С:Предприятие 8 Россия Абонемент ($m)

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

1 стартмани

25.11.2025    507    1    marat987654321    2    

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

Статья на Хабре как это все работает Как я создал Text Extract API для RAG за 2 дня с помощью AI и Cursor: подробный кейс
gzharkoj; SerVer1C; prokhodolya; +3 Ответить
3. Vasvas05 27 23.11.25 01:20 Сейчас в теме
(1) ну такое... тут кажется готовое для использование(хоть и подход к коду "как лом"), у вас больше похоже на "наброски"
2. prokhodolya 17 20.11.25 17:49 Сейчас в теме
Спасибо. Я прям очень сильно начинающий) ознакомлюсь👍🏻
ni032mas; +1 Ответить
4. akR00b 25 24.11.25 13:01 Сейчас в теме
Хорошая статья, спасибо.
prokhodolya; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация