Распознавание изображений и PDF-документов с помощью Google docs

24.02.25

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

В последнее время у меня возникла необходимость в распознавании текста из изображений и PDF-документов. Данный вариант распознавания текста предлагается как альтернатива традиционным OCR-сервисам. Возможно, кому то данная статья будет полезна. Сравнивал между собой два сервиса Google Cloud Vision и Yandex Vision. Сразу скажу, что результат распознавания рукописного текста не удовлетворил, поэтому искал другие возможности. В процессе поиска альтернатив я обратил внимание на одну интересную возможность, которую предлагает Google Docs. Если загрузить изображение в Google Документы, сервис автоматически добавляет распознанный текст под изображением. Качество меня приятно удивило — текст извлекался даже из рукописных записей!

Файлы

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

Наименование Скачано Купить файл
Распознавание изображений и PDF-документов с помощью Google docs:
.epf 9,97Kb
6 2 500 руб. Купить

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

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

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

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

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

Идея довольно проста:

  1. Загрузить изображение на Google Диск.

  2. Сохранить его в формате документа Google Docs.

  3. Извлечь текст из этого документа.

  4. Удалить документ после завершения работы.

Для загрузки файла на Google Диск требуется аутентификация по протоколу OAuth 2.0. OAuth — это открытый протокол авторизации, который позволяет предоставить доступ к защищённым ресурсам (например, вашему Google Диску) без передачи логина и пароля. Вместо этого используется токен доступа, который выдаётся после подтверждения прав доступа. Это безопасно и удобно.

Подробнее о том, как работает аутентификация OAuth 2.0, можно узнать здесь.

Обращаю внимание, для того чтобы файл в формате pdf или jpeg можно было экспортировать в текстовый формат его необходимо сохранить в формате application/vnd.google-apps.document.

Процедура ВыполнитьРаспознаваниеНаСервере(ПутьККартинке) 
	//Порядок распознавания:
	//- сохраняем картинку на гугл диск в формате гугл документа    
	//- экспортируем этот гугл документ в текст
	//- удаляем гугл документ
  
   Если Токен <> "" Тогда
	  ИдентификаторФайла = ЗагрузитьФайлНаGoogleDrive(ПутьККартинке, Токен);
	  Если ИдентификаторФайла  <> Неопределено Тогда
		  Результат = РаспознатьТекстЧерезGoogleDrive(ИдентификаторФайла, Токен); 
		  УдалитьФайлСGoogleDrive(ИдентификаторФайла, Токен);  
		  Сообщить(Результат);                                
	  КонецЕсли;
   КонецЕсли;
  
КонецПроцедуры 

Функция ЗагрузитьФайлНаGoogleDrive(ПутьКФайлу, Токен, ТокенОбновлен = Ложь) Экспорт  
		
	Файл = Новый Файл(ПутьКФайлу);
	boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
		
	//Метаданные файла {{         
	//для того чтобы файл в формате pdf или jpeg можно было экспортировать в текстовый формат
	//необходимо сохранить его в формате application/vnd.google-apps.document
	mimeType = "application/vnd.google-apps.document";
	
	Свойства = Новый Соответствие();
	Свойства.Вставить("name", Файл.Имя);
	Свойства.Вставить("mimeType", mimeType); // тип файла
	
	СтрокаМетаданныеФайла = СформироватьТекстJSON(Свойства);
	
	Поток = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Поток);
	
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: application/json; charset=UTF-8");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку(СтрокаМетаданныеФайла);
	
	ЗаписьДанных.Закрыть();
	
	ДвоичныеДанныеМетаданные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
	
	//Данные файла {{
	
	ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу); // двоичные данные файла
		
	Поток = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Поток);
	
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: " + mimeType);
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.Записать(ДвоичныеДанные);
	
	ЗаписьДанных.Закрыть();
	
	ДвоичныеДанныеФайла = Поток.ЗакрытьИПолучитьДвоичныеДанные();
	//Данные файла }}
	
	//формирование тела запроса {{
	ПотокТело = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(ПотокТело);
	ЗаписьДанных.ЗаписатьСтроку("--" + boundary);
	ЗаписьДанных.Записать(ДвоичныеДанныеМетаданные);
	ЗаписьДанных.ЗаписатьСтроку("--" + boundary);
	ЗаписьДанных.Записать(ДвоичныеДанныеФайла);
	ЗаписьДанных.ЗаписатьСтроку("--" + boundary + "--");
	ЗаписьДанных.ЗаписатьСтроку("--" + boundary + "--");
	
	ЗаписьДанных.Закрыть();
	
	ДвоичныеДанныеТело = ПотокТело.ЗакрытьИПолучитьДвоичныеДанные();
	//формирование тела запроса }}
	
	Заголовки  = Новый Соответствие;
	Заголовки.Вставить("Authorization", "Bearer " + Токен);
	Заголовки.Вставить("Content-Type", 	"Multipart/Related; boundary=" + boundary);
	Заголовки.Вставить("Content-Length", Формат(ДвоичныеДанныеТело.Размер(), "ЧГ="));
	
	HTTPЗапрос = Новый HTTPЗапрос("/upload/drive/v3/files?uploadType=multipart", Заголовки);
	HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеТело);
	
	SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
	Соединение = Новый HTTPСоединение("www.googleapis.com",,,,,,SSL);
	
	Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос);// post запрос
	
	Если Ответ.КодСостояния = 401 Тогда
		//Это значит токен устарел и его надо обновить  
		Если Не ТокенОбновлен Тогда                    
			Токен = ПолучитьAccessToken();
			Возврат ЗагрузитьФайлНаGoogleDrive(ПутьКФайлу, Токен, Истина);
		КонецЕсли;
	КонецЕсли;
	
	Если Ответ.КодСостояния <> 200 И Ответ.КодСостояния <> 204 тогда
		ВызватьИсключение "Ошибка загрузки файла: " + Ответ.КодСостояния + ". Тело ответа: " + Ответ.ПолучитьТелоКакСтроку(); 
		Возврат Неопределено;
	КонецЕсли; 
	
	ДанныеОтвета = Ответ.ПолучитьТелоКакСтроку();
    ЧтениеJSON = Новый ЧтениеJSON;  	
	ЧтениеJSON.УстановитьСтроку(ДанныеОтвета);
	
	Попытка
		
		РезультатЧитаемый = ПрочитатьJSON(ЧтениеJSON,Истина);
		
	Исключение
		
		Возврат Неопределено;
		
	КонецПопытки;

	ИдФайла = РезультатЧитаемый.Получить("id");
    
    Возврат ИдФайла;
КонецФункции  

Функция СформироватьТекстJSON(Данные)
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, Данные);
	Результат = ЗаписьJSON.Закрыть();
	
	Возврат Результат;
КонецФункции

После загрузки файла получаем id файла, который необходим для получения текстового представления и для дальнейшего удаления файла.

Подробнее о загрузке файла на Google диск можно ознакомиться здесь.

Функция РаспознатьТекстЧерезGoogleDrive(ИдентификаторФайла, Токен) Экспорт 
	
	// Создание HTTP-запроса
	ЗапросHTTP = Новый HTTPЗапрос("drive/v3/files/" + ИдентификаторФайла + "/export?mimeType=text/plain");
	ЗапросHTTP.Заголовки.Вставить("Authorization", "Bearer " + Токен);     
	ЗапросHTTP.Заголовки.Вставить("Content-Type", "application/json" );
	ЗапросHTTP.Заголовки.Вставить("mimeType", "text/plain"); 
	
	// Отправка запроса     
	SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
	HTTPСоединение = Новый HTTPСоединение("www.googleapis.com",,,,,, SSL);
	ОтветHTTP = HTTPСоединение.Получить(ЗапросHTTP);
	
	// Обработка ответа
	Если ОтветHTTP.КодСостояния = 200 Тогда
    //распознанный текст
	    Результат = ОтветHTTP.ПолучитьТелоКакСтроку();
	Иначе
	    Результат = "Ошибка при распознавании текста: " + ОтветHTTP.КодСостояния + " " + ОтветHTTP.ПолучитьТелоКакСтроку();
	КонецЕсли;
	
	Возврат Результат;
КонецФункции  
Процедура УдалитьФайлСGoogleDrive(ИдентификаторФайла, Токен) Экспорт
        
    // Создание HTTP-запроса
  	ЗапросHTTP = Новый HTTPЗапрос("drive/v3/files/" + ИдентификаторФайла);
	ЗапросHTTP.Заголовки.Вставить("Authorization", "Bearer " + Токен); 
	ЗапросHTTP.Заголовки.Вставить("Content-Type", "application/json" ); 
	   
    // Отправка запроса                
	SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
    HTTPСоединение = Новый HTTPСоединение("www.googleapis.com",,,,,, SSL);  
	
    HTTPСоединение.Удалить(ЗапросHTTP);
    
КонецПроцедуры 

Обработка создана на обычных формах, тестировалась на версии платформы 8.3.21.1302.

Данная обработка создана исключительно для демонстрации возможности распознавания файлов, загруженных на Google Drive. Все необходимые процедуры и шаги подробно описаны в этой статье. Если вы хотите поблагодарить автора или протестировать функционал, вы можете скачать обработку.

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

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

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

#Распознавание текста из изображений и PDF

См. также

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

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

87108 руб.

23.12.2021    17326    35    25    

15

Распознавание документов и образов Периферийные устройства Программист Автомобили, автосервисы Россия Платные (руб)

Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.

20740 руб.

31.05.2023    7574    5    5    

10

Учет документов Распознавание документов и образов Системный администратор Программист Руководитель проекта 1С:Документооборот Платные (руб)

Обработка многостраничных файлов PDF с разбиением на отдельные документы по штрих-коду и сохранение документов в отдельные файлы для. Не требуется интернет, внешние утилиты командной строки и т.д. Плюсы: скорость работы, независимость от внешних библиотек или утилит, достаточно большой перечень поддерживаемых типов ШК, возможность фильтрации по формату и данным ШК. Не требует установки (portable), может работать несколько экземпляров ПО на одном хосте с разными настройками.

12200 руб.

07.07.2026    550    2    0    

1

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

В современных условиях бухгалтеры и операторы регулярно сталкиваются с задачей ввода реквизитов новых контрагентов в информационную базу. Эта операция, на первый взгляд простая, на практике отнимает значительное время — необходимо вручную переносить данные из карточки организации, скана учредительного документа, счета-фактуры или договора. При этом ошибки при ручном вводе — явление распространенное, а каждая ошибка в ИНН, КПП или банковских реквизитах может привести к серьезным последствиям: от отказа в приеме платежа до проблем с налоговой отчетностью.

1 стартмани

11.09.2026    281    user718500    0    

0

Распознавание документов и образов Нейросети Бухгалтер 1C:Бухгалтерия Россия Платные (руб)

Каждый бухгалтер знает: авансовые отчеты - это рутина, которая отнимает очень много времени. Сотрудники приносят чеки из командировок, хозяйственных покупок, представительских расходов. Всё это нужно вручную перепечатывать в Excel или 1С - дату, поставщика, ИНН, сумму, позиции товаров. Ошибки, опечатки, потеря времени. Работает с локальными провайдерами. Важно! Для распознавания сканов, фотографий и PDF без текстового слоя выбранная языковая модель обязательно должна поддерживать функцию Vision (визуальный анализ изображений). Без Vision обрабатываются только текстовые файлы. Запускайте используя локальные ИИ, без подписок и ограничений.

6100 руб.

26.08.2026    180    0    0    

0

Распознавание документов и образов 1С:Предприятие 8 Россия Бесплатно (free)

В типовых бизнес-процессах организаций значительная доля трудозатрат приходится на ручной ввод данных из входящих документов. Счета на оплату, паспорта, анкеты, трудовые книжки, дипломы и другие документы поступают в различных форматах (PDF, изображения, DOCX, RTF, HTML) и требуют переноса реквизитов в учетные системы.

26.08.2026    771    user718500    0    

0

Распознавание документов и образов Нейросети 1С:Предприятие 8 1С 8.3 1С 8.5 1C:Бухгалтерия 1С:Зарплата и Управление Персоналом 3.x Беларусь Россия Казахстан Армения Платные (руб)

ИИ-сканер документов с REST API для интеграции с 1С и корпоративными системами. Извлекайте данные из счетов, паспортов, дипломов, патентов и трудовых книжек за секунды. Точность человека - скорость машины. Приложение поддерживает восемь типов документов, четырех провайдеров ИИ (имеется возможность использования локальных ИИ), локальный REST API и экспорт в JSON. Важно! модель должна поддерживать функцию Vision (распознавание файлов и картинок). Запускайте используя локальные ИИ, без подписок и ограничений

6100 руб.

24.08.2026    334    0    0    

0
Для отправки сообщения требуется регистрация/авторизация