Распознавание изображений и 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    16720    33    25    

14

SALE! 35%

Интеграция Нейросети DevOps и автоматизация разработки Распознавание документов и образов 1C:ERP 1С:КА 1С:УНФ Химическая промышленность Горнодобывающая промышленность Металлургическая промышленность Россия Платные (руб)

От чертежа до себестоимости — за минуты, а не дни. ИИ-Технолог автоматически распознаёт чертежи и техническую документацию (включая фото, сканы, PDF, Excel), рассчитывает нормы времени, формирует технологические маршруты, оценивает возможность изготовления и точную себестоимость. Интеграция с 1С (ERP, MES, КА, УНФ) и отраслевыми нормативами (ГОСТы).

366000 руб.

18.06.2026    150    0    1    

0

Распознавание документов и образов WEB-интеграция Программист 1С 8.3 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

Представлен модуль интеграции с сервисом SberScan.

1 стартмани

16.06.2026    165    0    tori131313    0    

1

Распознавание документов и образов Обмен с ГосИС Программист 1С 8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1C:ERP Бесплатно (free)

HTTP-сервис на python для распознавания DataMatrix штрихкодов "Честный Знак" из изображений. Принимает изображение в формате base64, выполняет распознавание и возвращает результат в JSON.

09.06.2026    630    rozer    2    

9

Сканер штрих-кода Терминал сбора данных WEB-интеграция Распознавание документов и образов Программист 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Коротко о новых возможностях 1Scan: WebSocket-обмен с Android-устройством, передача штрихкодов, фото, файлов и координат в 1С, а также OCR-распознавание текста камерой.

03.06.2026    429    kild    3    

3

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

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

08.05.2026    1666    user1415700    18    

25

Периферийные устройства Распознавание документов и образов Системный администратор Программист 1С 8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Расширение конфигурации, реализующее сканирование посредством scanimage на клиенте Linux без использования компоненты ImageScan. Если Ваш сканер виден и работает в SANE, но категорически не хочет видеться в 1С, то это расширение решает данную проблему. Проверено на БП 3.0.194.23 и ЗУП 3.1.37.49. В ДО, вроде, нет обработки «сканирование», так что переделать немного надо будет.

5 стартмани

27.04.2026    468    0    Горыня    0    

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