Сервис распознавания накладных из изображений в json, c помощью Tesseract-OCR + Deepseek

30.05.25

Интеграция - Распознавание документов и образов

Сервис распознавания накладных из изображений в json (на самом деле в любой текст или html), c помощью Tesseract-OCR + Deepseek (ОСень + Winow + 1connector). Данная публикация родилась после того, как я познакомился с фреймворком ОСень и Winow.  Идея сделать сервис аналогичный 1С по распознаванию первички родилась уже давно.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Сервис распознавания накладных из изображений в json(на самом деле в любой текст или html), c помощью Tesseract-OCR + Deepseek (ОСень + Winow + 1connector):
.zip 538,79Kb
0
0 Скачать (10 SM) Купить за 4 550 руб.

Итак, что нам понадобится:

Про ОСень:

//infostart.ru/1c/articles/1980026/

Про Вино:

https://github.com/autumn-library/winow

Про коннектор:

https://github.com/vbondarevsky/1connector/tree/master

Про tesseract:

https://tesseract-ocr.github.io/tessdoc/Installation.html#windows

Про deepseek:

//infostart.ru/1c/tools/2366670/

На этих китах и держится весь этот сервис (пока что).

В планах мобилу Ленке из продуктового, с мобильным приложением и 1 кнопкой сфоткать накладную, после чего накладная уже в 1С :) )

Суть: мини сервер winow принимает картинку, распознает ее с помощью tesseract, и полученный текст скармливает deepseek, который производит пост обработку и корректировку накладной, сглаживая ошибки tesseract и выдает ответ в виде json или html(можно deepseek сказать чтобы оформил как реальную накладную). Что с этим делать дальше?

Думаю вы разберетесь. 

За основу я взял example из winow.

Вы не поверите(если не знакомы с ОСенью), но код основного модуля в итоге выглядит вот так:

 

 

Ну и собственно основная логика у меня уместилась в 1 процедуру:

 

&ТочкаМаршрута("parseimage")
Процедура ОбработкаФормы(ДанныеФормы, Ответ) Экспорт
	
	Ответ.Модель = Новый Структура("Имя, ДатаРождения, Фото");

	ДанныеФайла = ДанныеФормы.НайтиЗначениеПоМетаданным(Новый Структура("name", "file"));
	ИмяФайла = ПолучитьИмяВременногоФайла("raw");
	ИмяФайлаТекст = ПолучитьИмяВременногоФайла();
	Сообщить(ИмяФайлаТекст);
	ДанныеФайла.Записать(ИмяФайла);
	Приостановить(300);
	ЗапуститьПриложение("""C:\Program Files\Tesseract-OCR\Tesseract.exe"""+ " " + ИмяФайла + " " + ИмяФайлаТекст + " -l rus --oem 1", КаталогВременныхФайлов(), Истина);
	Приостановить(300);
	Ответ.УстановитьТипКонтента("json");
	Аутентификация = "Bearer <Token deepseek>"; // здесь вставить токен

	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Authorization", Аутентификация);
	Заголовки.Вставить("Content-Type", "application/json");

	СтруктураДанных = Новый Структура;
	СтруктураДанных.Вставить("model", "deepseek-chat");
	
	Сообщения = Новый Массив;
	СообщениеПользователя = Новый Структура;
	СообщениеПользователя.Вставить("role", "system");
	СообщениеПользователя.Вставить("content", "Ты профессиональный бухгалтер. Пользователь дает текст, ты его проверяешь, корректируешь на наличие ошибок и преобразуешь в json документ. Выведи только json без описания своих действий.");
	
	Сообщения.Добавить(СообщениеПользователя);
	
	СообщениеПользователя = Новый Структура;
	СообщениеПользователя.Вставить("role", "user");
	ИмяФайлаТекст = ИмяФайлаТекст + ".txt";
	ФайлТекст = Новый Файл(ИмяФайлаТекст);
	
    Сч = 100;
	
    Пока Не ФайлТекст.Существует() И Сч > 0 Цикл
		Сообщить(ИмяФайлаТекст);
		Cч = Сч - 1;
	КонецЦикла;	
	
    ТФ = Новый ТекстовыйДокумент;
	ТФ.Прочитать(ИмяФайлаТекст);

	СообщениеПользователя.Вставить("content", "текст: " + ТФ.ПолучитьТекст());
	ТФ = Неопределено;
	
	Сообщения.Добавить(СообщениеПользователя);
	
	СтруктураДанных.Вставить("messages", Сообщения);
	СтруктураДанных.Вставить("stream", false);
	
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("Заголовки", Заголовки);

	Результат = КоннекторHTTP.Post("https://api.deepseek.com/chat/completions", Неопределено, СтруктураДанных, ДополнительныеПараметры).Json();
	ОтветТекст = Результат["choices"][0]["message"]["content"];

	Ответ.ТелоТекст = ОтветТекст;
	
КонецПроцедуры

Проверить у себя на практике, как все это работает, можно скачав архив с примером, в который достаточно вставить токен дипсик, выполнить oscript ocr.os и у вас на localhost:3333 свой сервис по распознаванию первички.

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

Самое интересное, что это намного дешевле сервиса от вендора, в котором 3 руб./документ.

Здесь себестоимость запроса к обычной модели deepseek для 1 документа меньше 1 цента.

Спасибо за внимание!

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

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.189

См. также

SALE! 30%

SALE! 20%

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

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

6480 руб.

23.12.2021    13933    22    25    

10

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

Расширение для типовых конфигурация и для самостоятельной интеграции системы распознавания документо удостоверяющих личность и прочих документов непосредственно из информационных баз "1С:Предприятия 8.3" с помощью Content AI - Passport Reader SDK. Расширение позволит не изменяя типовой код конфигурации, расширить текущий функционал несколькими кликами мыши.

12000 руб.

26.01.2016    70772    80    3    

103

Распознавание документов и образов Программист Платформа 1С v8.3 Абонемент ($m)

Данная обработка позволяет распознавать текст в формате PNG и записывает распознанный текст в TXT формат.

3 стартмани

05.05.2025    371    2    Likarus    0    

1

Распознавание документов и образов Программист Пользователь Платформа 1С v8.3 Платформа 1C v8.2 Россия Абонемент ($m)

Пример обработки для преобразования речи в текст, с последующим анализом данного текста с использованием сервисов OpenAi (proxyapi).

1 стартмани

01.04.2025    457    3    =Kollega=    0    

2

Нейросети Распознавание документов и образов Программист Пользователь Платформа 1С v8.3 Россия Абонемент ($m)

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

10 стартмани

26.03.2025    1083    10    Prepod2003    5    

12

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

Внешняя обработка 1С использует API для распознавания текста с изображений (до 25 000 в месяц), поддерживает загрузку файлов с диска и HTTP-запросов, а результат можно автоматически обрабатывать и интегрировать в 1С.

1 стартмани

20.03.2025    665    6    mrKHrom    3    

8

Распознавание документов и образов Нейросети Программист Платформа 1С v8.3 Абонемент ($m)

ИИ разработчик это не тот, кто не умеет писать код без ИИ помощника. Отличие ИИ разработчика от обычного разработчика не столь уж велико. Но есть один важный нюанс. На простом примере постараюсь вам его продемонстрировать.

1 стартмани

27.02.2025    3043    mkalimulin    21    

18
Оставьте свое сообщение