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

20.11.25

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Бухгалтеры и юристы ежедневно сталкиваются с задачей сравнения версий договоров, актов и счетов. Ручное сравнение отнимает значительное время и повышает риск ошибок. Современные технологии оптического распознавания символов (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С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    55623    111    29    

124

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

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

6588 руб.

23.12.2021    16540    32    25    

14

SALE! 35%

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

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

6100 руб.

03.04.2024    15491    8    0    

12

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

Представляю open-source платформу, написанную на Go, с 1С-подобным языком — для публикации пет-проектов, MVP и прочих домашних бухгалтерий. Сразу оговорюсь: платформа **не production-ready**. В ней есть куча багов, наверняка немало неоптимальных и спорных решений, но есть и плюс — при желании каждый может её доработать и улучшить. Если не нравится конфигуратор — берём и переконфигурируем его к чертям 🙂 И самое приятное, конфигурации для этой платформы легко вайбкодятся! А если упираемся в ограничение платформы, то тот же агент может её и допилить.

22.05.2026    2215    Ibrogim    86    

51

Нейросети Инструментарий разработчика Запросы Программист 1С:Управление торговлей 11 Абонемент ($m)

Консоль запросов: добавлен ИИ-помощник (запрос в DeepSeek), который помогает быстрее получать каркас Запроса 1С Сформулируйте простое описание; нажмите кнопку – получите результат прямо в консоли. Где дальше его можно дорабатывать и тестировать.

2 стартмани

20.05.2026    4918    18    German4739    39    

19

Работа с интерфейсом Нейросети Системный администратор Программист Руководитель проекта 1С:Предприятие 8 Бесплатно (free)

Эту статью породила моя случайная встреча в московском метро с женщиной, которой я помог донести торшер. Оказалось, что это театральный реквизит, она сама - режиссёр, а её муж - 1С-ник и мой старый друг. В очередной раз я поразился, как тесен мир, и как, порою, неслучайны случайные встречи! Мы созвонились с другом, и он мне рассказал о своих экспериментах с искусственным интеллектом на проектах "снеговика" с интерфейсом на обычных формах, купирующих проблемы предприятий, у которых за многие годы накопилось столько доработок, что поддержка конфигурации стала огромной болью, особенно, в связи с регуляторными изменениями последних лет. И не поддерживать морально устаревшие конфигурации тоже нельзя, т.к. апгрейд до последних версий на управляемых формах обойдётся кратно дороже. Я ему предложил написать статью на Инфостарте, но он наотрез отказался публиковаться под своим именем, и мне с трудом удалось уговорить его опубликоваться от моего имени, что я и делаю.

18.05.2026    2250    RayCon    10    

26

Нейросети 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Данная публикация представляет расширения для конфигураций 1С: УТ 11, ЗУП 3.1, ЕРП 2.5. Расширения позволяют выгружать любые данные из всех типовых отчетов (в них добавляется кнопка DeepSeek (см. скрин)), а также через встроенный конструктор запроса; хранить промты для нейросети с параметрами из 1С; отправлять запросы в DeepSeek, получать и обрабатывать ответ. Реализована автоматическая обработка результата: поиск таблицы в ответе нейросети и вывод её в табличный документ. Предусмотрена возможность перехватить ответ и написать свою обработку — полученную таблицу значений можно использовать для загрузки в табличную часть, создания документов или заполнения регистров. В публикации — описание возможностей, настройки, примеры промтов и шаблон обработки-перехватчика.

2 стартмани

13.05.2026    526    1    German4739    1    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2339 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 20 20.11.25 17:49 Сейчас в теме
Спасибо. Я прям очень сильно начинающий) ознакомлюсь👍🏻
ni032mas; +1 Ответить
4. akR00b 26 24.11.25 13:01 Сейчас в теме
Хорошая статья, спасибо.
prokhodolya; +1 Ответить
5. JohnyDeath 302 24.12.25 10:22 Сейчас в теме
Рекомендую попробовать:
1. Docling https://github.com/docling-project . Вот тут только серверная часть для дерганья по апи, если что https://github.com/docling-project/docling-serve
2. DeDoc (от русских разработчиков): https://dedoc.readthedocs.io/en/latest/

Всё, ес-но, работает локально
ni032mas; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация