Универсальное расширение 1С для Google Таблиц и Документов

12.08.19

Интеграция - Внешние источники данных

Эта статья для тех, кто использует G Suite и 1С. Готовое решение для выгрузки отчетов и печатных форм из баз 1С в Google Диск в формате Google Таблиц и Google Документов. Информация по его внедрению. Описание создания и настройки проекта в GCP.

Скачать файлы

Наименование Файл Версия Размер
Работа с Google Drive
.cfe 408,20Kb
86
.cfe 1.0 408,20Kb 86 Скачать

Введение

Я работаю в ПИК Digital — ИТ-компания, которая делает стройку технологичной. В прошлом году мы перевели Группу Компаний ПИК на G Suite. Для полноценной работы с Google Таблицами и Документами потребовалось доработать наши системы. Одна из таких доработок — расширение для выгрузки отчетов и форм из 1С в Google Диск в формате Google Таблиц и Google Документов. В статье мы поделимся готовым решением и полезной информацией по его внедрению.

Для работы расширения потребуется:

  1. Зарегистрировать аккаунт Google
  2. Создать проект в Google Cloud Platform
  3. Создать OAuth-клиент
  4. Настроить доступ к Google Drive API
  5. Установить расширение 1С
  6. Настроить подключение к Google API в 1С

Далее рассмотрим каждый этап в отдельности и приведем примеры кода.

 

Регистрация аккаунта Google

Для работы потребуется аккаунт Google. Без него расширение не сможет взаимодействовать с сервисами G Suite. Уже есть действующая учетка — используйте её.

 

Создание проекта в GCP

Для активации доступа к Google Drive API необходимо создать проект в Google Cloud Platform (GCP). Есть два варианта бесплатной работы с GCP: 
 

  • 12-месячный пробный период — с бюджетом в 300 долларов США.
  • Always Free — доступ к большинству ресурсов GCP.


Оба способа имеют ограничения, подробнее о них рассказано в тут. Рекомендуем вариант с 12-месячным пробным периодом. После окончания пробного периода деньги не будут списываться, если вы не начнете пользоваться платными услугами. Все, что необходимо для работы интеграции бесплатно.

Регистрируем проект по ссылке console.cloud.google.com, жмём «Выберите проект», затем — «Создать проект». После создания проекта выбираем его повторным нажатием кнопки «Выберите проект».

 

Создание OAuth-клиента

Создадим учетные данные для подключения к G Suite по протоколу OAUth 2.0. В GCP идём в пункт меню «API и сервисы» — «Учетные данные» — «Создать учетные данные» — «Идентификатор ключа OAUth».

Появится предложение создать окно запроса доступа. Это окно формируется, когда у пользователя спрашивают разрешение на доступ к его данным. 


Оставьте тип доступа «Открытый доступ» и введите название приложения, которое будет отображаться, когда сотрудник запустит проект и потребуется согласие на доступ к данным. Нажмите «Сохранить». 

После этого задайте «Тип приложения». Выберите «Другие типы» и введите идентификатор клиента OAuth. Обратите внимание, что это не то же самое, что отображаемое название приложения. В результате откроется окно с идентификатором и секретом клиента. Сохраните их, это важно. 
 

Подключение библиотеки Google Drive API

Для получения доступа к функционалу API перейдите в пункт меню «Библиотека API», найдите нужную библиотеку и подключите ее.

 

 

Поскольку мы хотим работать с форматами G Suite, необходимо подключить к проекту библиотеку Google Drive API. Кроме того, нам понадобится библиотека Google Sheets API, Google Docs API. Найдите и подключите ее таким же способом.
 

Установка расширения в пользовательском режиме


Теперь можно формировать запросы к API. Напомним: наша задача — выгрузить данные из отчета 1С стандартной формы в Google Таблицу или Google Документ.

Скачайте расширение 1С. 

В 1С есть возможность самостоятельно устанавливать расширения конфигурации. Если вы сталкиваетесь с этой задачей впервые, посмотрите наше короткое видео о том, как это сделать.

Наше расширение работает с платформой начиная с версии 8.3.10, на конфигурациях БП (начиная с 3.0.65 и выше), ERP (начиная с 2.4.6 и выше) и УТ (начиная с 11.4.6 и выше).

Если при установке расширения у вас отобразится предупреждение безопасности, нажимайте «Да». Вы увидите сообщение о том, что «Текущее выполнение действия было прервано для выдачи предупреждения». Это означает, что у вас включен безопасный режим, поэтому процедуру добавления расширения нужно повторить, а безопасный режим — отключить. После добавления перезапустите 1С. 

Если установка прошла успешно, то вы увидите кнопку «Сохранить на Google Drive» в отчётах и печатных формах.

 

Настройка параметров подключения к Google API в 1С

Осталось настроить параметры подключения к Google API, и можно работать. Снова выбираем в меню пункт «Все функции» и в разделе «Обработки» ищем пункт «Параметры подключения к Google API». 

Заполняем поля Clientid, Clientsecret и «Порт» значениями, полученными при создании проекта в GCP. По умолчанию подставляются имя файла и папки, где будут сохранены временные ключи, используемые для подключения. Данные о ключах (refresh и access-токены) пользователя в целях безопасности сохраняются в каталог временных файлов текущего пользователя, в папку <имя папки> и в файл <имя файла>. Если один и тот же проект Google создается в разных конфигурациях, имя файла можно сделать одинаковым во всех из них, чтобы не создавать несколько файлов с одинаковой информацией. При сохранении параметры подключения сохраняются в хранилище общих настроек.
 

Сохранение отчета

Теперь вы сможете сохранять отчеты в формате Google Таблиц и Google Документов на Google Диске.

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

В появившемся окне введите адрес своей электронной почты Gmail и пароль. Далее в открывшемся окне нажмите «Разрешить». Так вы даёте приложению сохранить информацию в вашем Google Диске.

Вам потребуется ввести имя файла, выбрать его тип и каталог для сохранения на общем или личном диске. Нажмите «Сохранить». После сохранения отчет откроется в браузере. Приятного просмотра.
 

Техническая сторона вопроса

Теперь разберемся, как это работает внутри платформы 1С. 
Для подключения формируется следующая строка запроса к сервису Google: 
 

АдресПодключения="https://accounts.google.com/o/oauth2/auth"+"?"
		+ "response_type=code"
    		+ "&client_id=" + ид_клиента
    		+ "&redirect_uri=urn:ietf:wg:oauth:2.0:oob"
    		+ "&access_type=offline"
		+ "&scope=https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.apps.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata https://www.googleapis.com/auth/drive.metadata;


ид_клиента— идентификатор клиента, в котором мы ранее сохранили значение переменной. 
scope — адреса библиотек API, которые мы будем использовать. Если необходимо подключить несколько библиотек, перечислите их через пробел. 

Эта строка запроса нужна для одноразового подключения нашего клиентского приложения к сервису Google. Можно ввести строку запроса в браузере, в ответ сервис вернет URL примерно такого содержания: 
 

Success code=<КОД>&scope=https://www.googleapis.com/auth/admin.directory.user%20https://www.googleapis.com/auth/admin.directory.orgunit


Можно в конструкторе форм 1С добавить поле для HTML-данных и выполнить запрос через него. Нам необходимо из этого URL получить значение <КОД> — код доступа к сервису.

Осталось получить два токена, сделав HTTP-запрос. В результате запрос вернет строку со значениями access и refresh в формате JSON. Refresh-токен не теряет актуальности с течением времени, а access-токен живет 60 минут и затем требует обновления. Для получения этих токенов нам понадобятся только что полученный <КОД>, а также идентификатор и секрет клиента, которые мы сохранили ранее. 

Код может быть примерно таким: 
 

Сервер = "accounts.google.com";
Ресурс = "/o/oauth2/token";	
СтрокаЗапроса = СтрШаблон("client_id=%1&client_secret=%2&grant_type=authorization_code&code=%3&redirect_uri=urn:ietf:wg:oauth:2.0:oob", 
		ид_клиента, 
		секрет_клиента, 
		КодДоступа);
			
Соединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Заголовки  = Новый Соответствие;	
Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded”)	
ЗапросHTTP = Новый HTTPЗапрос(Ресурс,Заголовки);
ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаЗапроса);
Ответ = Соединение.ВызватьHTTPМетод("POST", ЗапросHTTP);	
Если НЕ Ответ.КодСостояния = 200 Тогда 
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СтрШаблон("Ошибка получения параметров авторизации: %1", Ответ.ПолучитьТелоКакСтроку()));		
    Возврат;
КонецЕсли;
Строка = Ответ.ПолучитьТелоКакСтроку();	
Чтение = Новый ЧтениеJSON();
Чтение.УстановитьСтроку(Строка);
Фабрика = ФабрикаXDTO.ПрочитатьJSON(Чтение);
Чтение.Закрыть();
	
ТокенДоступа		 = Фабрика.access_token;
ТокенОбновления		 = Фабрика.refresh_token;	
ВремяЖизниТокена	 = Фабрика.expires_in;


В переменной expires_in содержится время жизни access-токена. 
Ниже показан запрос на обновление токена: 
 

    Сервер          =   "accounts.google.com";
    Ресурс          =   "/o/oauth2/token";
    ТокенОбновления = 	GoogleНастройки.refresh_token;
    ид_клиента	    =	GoogleНастройки.client_id;
    секрет_клиента  =	GoogleНастройки.client_secret;

    СтрокаЗапроса = "grant_type=refresh_token" 
			+ "&client_id=" + ид_клиента
			+ "&client_secret=" + секрет_клиента
			+ "&refresh_token=" + ТокенОбновления;

 

Сохранение табличного документа на Google Диск


Теперь посмотрим, как сохранять табличный документ на Google Drive с последующей его конвертацией в формат Google Таблиц.
 

//разделитель для HTTP сообщения
Разделитель = "file_for_drive";

//определяем HTTP заголовок по типу файла
ЗаголовокПоТипуФайла = СоответствиеТипуФайлаЗаголовкамGoogle()[ТипФайла];
	
ЗаголовкиОсновногоЗапроса.Вставить("Content-Type", "multipart/related; boundary=" + Разделитель);
	
//-----
//первый запрос
//-----
	
//заголовки
Заголовки = Новый Массив;
Заголовки.Добавить("Content-Type: application/json; charset=UTF-8");

	
//запрос метаданных
//формируем json с параметрами имя файла, заголовок и родитель
ТелоЗапроса = СформироватьТелоЗапросаСозданиеФайлаGSs(ИмяФайла, ЗаголовокПоТипуФайла, id_папки);
	
ДвоичныеДанныеСообщения = GoogleAPI_ОбщегоНазначения.СоздатьСообщение_Текст(Заголовки, ТелоЗапроса);
	
//-----
//конец первого запроса
//-----
	
//-----
//второй запрос
//-----
	
//заголовки
Заголовки.Очистить();
Заголовки.Добавить("Content-Type: " + ЗаголовокПоТипуФайла);
Заголовки.Добавить("uploadType: media");

//запрос метаданных
ВременныйФайл = ПолучитьИмяВременногоФайла(ТипФайла);
ТабДок.Записать(ВременныйФайл, ТипТабличногоДокументаПоТипуФайла()[ТипФайла]);
ДвоичныеДанныеФайла = GoogleAPI_ОбщегоНазначения.СоздатьСообщение_Файл(Заголовки, Новый ДвоичныеДанные(ВременныйФайл));
		
//-----
//конец второго запроса
//-----
	
//-----
// Формируем основное составное сообщение.
МассивСообщений = Новый Массив;
МассивСообщений.Добавить(ДвоичныеДанныеСообщения);
МассивСообщений.Добавить(ДвоичныеДанныеФайла);
ДвоичныеДанныеТело = GoogleAPI_ОбщегоНазначения.ПолучаемДвоичныеДанныеДляПакетныхСообщенийHTTP(Разделитель, МассивСообщений);
//-----
	
ЗапросHTTP = Новый HTTPЗапрос("/upload/drive/v2/files" + "?uploadType=multipart&convert=true",ЗаголовкиОсновногоЗапроса); 
	
ЗапросHTTP.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеТело);
	
Ответ =Соединение.ВызватьHTTPМетод("POST", ЗапросHTTP);
	
Если Не Ответ.КодСостояния = 200 Тогда
    ТекстОшибок = "Ошибка HTTP запроса " + Ответ.ПолучитьТелоКакСтроку() + ", код ошибки " + Ответ.КодСостояния;
    GoogleAPI_ОбщегоНазначения.ЗаписьОшибкиПриРаботеСGS(ТекстОшибок, ". Запись документа");
    Возврат "";
КонецЕсли;
	
HTTPСоединение	= Неопределено;
ЗапросHTTP		= Неопределено;
		
Попытка
    УдалитьФайлы(ВременныйФайл);
Исключение
    ЗаписьЖурналаРегистрации("Удалить файлы",УровеньЖурналаРегистрации.Ошибка,,,ОписаниеОшибки());
КонецПопытки;
	
ОтветHTTPТело = Ответ.ПолучитьТелоКакСтроку();
	
ОбъектJSON = GoogleAPI_ПроцедурыРаботыСGSheets.СформироватьЗначениеОбъектаJSON(ОтветHTTPТело);
	
//возвращаем ссылку на документ из google drive
Возврат GoogleAPI_ПроцедурыРаботыСGSheets.ПрочитатьСвойствоВСтрокеОбъектаJSON(ОбъектJSON, "alternateLink");


В этом коде для загрузки файла используется способ multipart upload.
Мы формируем POST-запрос из двух блоков данных. В первом блоке прописываем title и mimeType файла. Во втором блоке передается содержимое файла. Блоки определяются разделителями, которые указаны в конце и начале блока. 

Подробнее об этом в статье о вставке файлов базы знаний Google Диск.

Вот так это работает. Надеемся, что теперь вы не будете тратить время на конвертацию выгруженных из 1С данных.

 

Управляемые формы Google Drive OAuth 2.0 Гугл Диск Sheets Таблицы Расширение API http загрузка табличный документ

См. также

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9156    9    8    

10

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22354    18    1    

21

Автоматическая многопоточная выгрузка данных 1С 8.3 в БД Clickhouse и MS SQL (для работы с данными 1С в BI-системах)

Внешние источники данных Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматизированной выгрузки данных из 1С 8.3, а также MS Excel в базу данных ClickHouse, а также в Microsoft SQL для работы с данными 1С в Yandex Datalens, Visiology, Apache Superset (и не только) - "Экстрактор данных 1С в BI". Решение отлично работает со всеми типовыми (и не только) конфигурациями 1С 8.3 для управляемых форм. Gозволяет автоматизировать работу бизнес-аналитика по ежедневной выгрузке данных из 1С в БД ClickHouse для последующей работы с этой БД в Yandex Datalens/ Система полностью автоматизирует работу с хранилищем данных в БД Clickhouse/MS SQL. Не надо быть программистом, чтобы одной кнопкой получать любые данные из 1С в Вашей BI-системе

230000 руб.

15.11.2022    12917    12    47    

28

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    48631    96    159    

86

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически и наиболее полно ввести данные в программу для начала работы. 

15600 руб.

08.12.2011    81473    128    123    

146

Перенос данных из Парус 10 (Торнадо) в ЗГУ ред.3 через Excel

Внешние источники данных Загрузка и выгрузка в Excel Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате из Парус 10(Торнадо) учреждений через файлы Excel в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ). В принципе, обработка может быть использована для загрузки из файлов Excel, полученных из любых информационных систем.

24000 руб.

16.11.2018    29980    20    31    

21
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Mogilnikova 98 21.05.19 19:23 Сейчас в теме
Заполняем поля Clientid, Clientsecret и «Порт» значениями, полученными при создании проекта в GCP. По умолчанию подставляются имя файла и папки, где будут сохранены временные ключи, используемые для подключения.


а где взять поле "Порт"?
3. Maria18 112 23.05.19 12:51 Сейчас в теме
(1)порт по умолчанию 443, нужен для подключения к gs
2. Mogilnikova 98 21.05.19 20:37 Сейчас в теме
При первоначальной авторизации идет редирект на локалхост.. А что делать, если нет никакого локалхост и редиректить некуда?
Может быть должно быть ещё какое то СДК, или ещё что-то?
4. Maria18 112 23.05.19 13:01 Сейчас в теме
(2)нам нужен только код из значения ссылки (саму ссылку не нужно открывать), ссылка:
http://localhost/?code=
<24 символа кода для авторизации>
&scope=https://www.googleapis.com/auth/drive+https://www.googleapis.com/auth/spreadsheets+https://www.googleapis.com/auth/drive.apps.readonly+https://www.googleapis.com/auth/drive.file+https://www.googleapis.com/auth/drive.appdata+https://www.googleapis.com/auth/drive.metadata+https://www.googleapis.com/auth/drive.metadata.readonly+https://www.googleapis.com/auth/drive.photos.readonly+https://www.googleapis.com/auth/drive.readonly+https://www.googleapis.com/auth/spreadsheets.readonly
5. Mogilnikova 98 23.05.19 16:12 Сейчас в теме
(4)Ну на данный момент программа не получает никакого кода, т.к. при редиректе браузер говорит что все плохо, локалхост не найден. Возможно имеет смысл выбор браузера по-умолчанию или какие то специфичные настройки?
6. Maria18 112 28.05.19 09:25 Сейчас в теме
(5)На каком этапе возникает ошибка? После нажатия на "Allow"?
7. Mogilnikova 98 28.05.19 15:17 Сейчас в теме
8. Maria18 112 01.06.19 15:38 Сейчас в теме
(7)Можно либо открыть 80 порт на машине, с которой происходит запуск.
Либо редиректить не на локалхост. В обработке GoogleAPI_АвторизацияПользователя в процедуре Авторизоваться заменить строку "redirect_uri=http://localhost".
9. samoylov093 13 03.07.19 18:12 Сейчас в теме
Мария добрый день! Попробовал поставить ваше расширение на УТ 11.4, появились ошибки отсутствия некоторых объектов. Например в расширении используется объект ПланСчетов.Хозрасчетный, в УТ в принципе планов счетов нет. Как то решается эта проблема в пользовательском режиме, помимо удаления отсутствующих объектов из расширения?
10. Maria18 112 12.08.19 10:06 Сейчас в теме
(9) Добрый день!
К сожалению нет, это ограничение расширения. Могу отправить расширение без плана счетов и бух.отчетов, если нужно.
11. skyboy13 13 02.09.19 16:41 Сейчас в теме
А если самописная конфигурация?
12. Maria18 112 17.09.19 18:51 Сейчас в теме
(11)Если конфигурация на БСП, основная форма отчета в конфигурации ОбщаяФорма.ФормаОтчета и форма в отчете не переопределена, то работать будет без доработок. Если форма отчета переопределена, то эту форму нужно добавить в расширение и в нее добавить общую команду GoogleAPI_СохранитьОтчетСФормы.
13. lk78 189 29.12.19 22:30 Сейчас в теме
в УТ 11.4.6.207 не устанавливается расширение, пишет

(Критичная) : Не найден объект ЭлементСтиля.БыстрыеОтборыФонГруппы
(Критичная) : Не найден объект ЭлементСтиля.ЦветФонаНекорректногоКонтрагента
(Критичная) : Не найден объект ОбщаяКартинка.Сформировать
(Критичная) : Не найден объект Справочник.ВидыРегистровУчета
(Критичная) : Не найден объект Отчет.ОборотноСальдоваяВедомость
(Критичная) : Не найден объект Отчет.ОборотноСальдоваяВедомостьПоСчету
(Критичная) : Не найден объект Отчет.АнализСубконто
(Критичная) : Не найден объект Отчет.АнализСчета
(Критичная) : Не найден объект Отчет.КарточкаСубконто
(Критичная) : Не найден объект Отчет.КарточкаСчета
(Критичная) : Не найден объект Отчет.ОборотыМеждуСубконто
(Критичная) : Не найден объект Отчет.СводныеПроводки
(Критичная) : Не найден объект Отчет.ОтчетПоПроводкам
(Критичная) : Не найден объект Отчет.ГлавнаяКнига
(Критичная) : Не найден объект Отчет.ШахматнаяВедомость
(Критичная) : Не найден объект ПланВидовХарактеристик.ВидыСубконтоХозрасчетные
(Критичная) : Не найден объект ПланСчетов.Хозрасчетный
aiakupov; +1 Ответить
14. lk78 189 29.12.19 22:40 Сейчас в теме
в БП 3.0.74.63 кнопка появилась только в Универсальном отчете, в остальных отчетах нет
Платформа 8.3.16.1063
18. Maria18 112 27.01.20 11:35 Сейчас в теме
(14)Кнопка добавлена в общую форму отчетов. Если отчеты со своими формами, нужно добавить кнопку на них вручную.
Есть идея сделать автоматические добавление кнопок через подключаемые команды, но пока находится в разработке. Как сделаю выложу новый вариант.
15. lk78 189 29.12.19 22:44 Сейчас в теме
обработка "Параметры подключения к Google API" не видна с списке обработок - через режим "Все функции"
20. SAGerasimov 17.05.20 16:00 Сейчас в теме
(15)
Та же самая история. Обработки во всех функциях нет, кнопок тоже нигде нет. Все, что в интерфейсе отыскал - это роль из расширения)
Как удалось проблему решить, не подскажете?)
21. Maria18 112 18.06.20 10:38 Сейчас в теме
(20)
я. Обработки во всех функциях нет, кнопок тоже нигде нет. Все, что в интерфейсе отыскал - это ро


Конфигурация, куда устанавливаете расширение на базе БСП? Какая версия БСП?
22. devonec_team 36 24.06.20 20:22 Сейчас в теме
(20) Если открываете под полными правами. То надо добавить в расширение полные права и дать права на объекты расширения.
Если не под полными то нужно добавить пользователю данную роль.
16. lk78 189 09.01.20 08:33 Сейчас в теме
Получилось настроить под БП 3.0, отчеты сохраняются, но если сохранять отчет под тем же именем создается новая таблица с таким же наименованием, как сделать чтобы новая таблица не создавалась а перезаписывалась существующая таблица с таким же наименованием?
17. Maria18 112 27.01.20 11:29 Сейчас в теме
(16)Расширение это не предусматривает.
Тут должен быть метод изменение файла, подробнее: https://developers.google.com/drive/api/v3/reference/files/update?hl=en
Можно при получении структуры папок выводить не только папки, но и файлы, и по id файла производить замену
23. aatm 13.08.20 14:28 Сейчас в теме
жуткая статейка как по форме так и по содержанию... Писала, писала БАЦ! "Техническая сторона вопроса". А до этого какая сторона вопроса была?
Killerban4; +1 Ответить
24. user1284675 24.09.20 15:08 Сейчас в теме
Добрый день!
Регистрацию проходит, открывает окно с кнопкой "Разрешить".

Не проходит команда по кнопке "Разрешить" выходит такая вот ошибка.

Couldn't connect to server: http://localhost/?code=4%2F4gGd-TXXpjYoT9Ea7VJxvaTTXuqIzK5tb34S7f7Cau__n5hkS4r4M_BCJ6ZFPkT-EmG2zC29MivOckui5tAAhn0&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspre
adsheets+https%3A%2F%2Fwww.g

в чем может быть проблема?
25. Maria18 112 24.09.20 19:12 Сейчас в теме
(24) Добрый день!

В обработке GoogleAPI_АвторизацияПользователя, в процедуре модуля формы Авторизоваться должен быть "redirect_uri=urn:ietf:wg:oauth:2.0:oob" вместо "redirect_uri=http://localhost"
29. evkireev 6 20.11.20 19:12 Сейчас в теме
(25)
Сделал также, как вы написали. В данном случае просит: "Скопируйте код, перейдите в приложение и вставьте его в нужное поле:"

https://yadi.sk/i/_Bg3sfNZzPM_PA
31. Maria18 112 02.12.20 16:24 Сейчас в теме
(29) В модуле формы обработки GoogleAPI_АвторизацияПользователя в процедуре HTML_ПолеДокументСформирован должен быть поиск по "&scope".
Код процедуры HTML_ПолеДокументСформирован:

Процедура HTML_ПолеДокументСформирован(Элемент)
	
	Если Не Сред(Элементы.HTML_Поле.Документ.title,1,13) = "Success code=" Тогда
		Возврат;
	КонецЕсли;	
	
	Объект.КодДоступа = Сред(Элементы.HTML_Поле.Документ.title,14);
	ПоискScope = СтрНайти(Объект.КодДоступа, "&scope"); 			
	Если ПоискScope <> 0 Тогда
		Объект.КодДоступа = Лев(Объект.КодДоступа, ПоискScope - 1);
	КонецЕсли;
	Если ПолучитьТокены() Тогда 
		Возврат;
	КонецЕсли;	
	
	НачатьПолучениеКаталогаВременныхФайлов(Новый ОписаниеОповещения("ПослеПолученияКаталогаВремФайлов", ЭтотОбъект));
	
КонецПроцедуры
Показать
26. user1327555 19.11.20 13:29 Сейчас в теме
Добрый день!
Хотел уточнить какой тип приложения выбирать.
У меня Другой тип не высвечивается. Есть: скришот
30. Maria18 112 02.12.20 16:19 Сейчас в теме
(26)Добрый день!
Нужен тип "Приложение для ПК"

В модуле формы обработки GoogleAPI_АвторизацияПользователя в процедуре Авторизоваться указан "redirect_uri=urn:ietf:wg:oauth:2.0:oob"?
В модуле формы обработки GoogleAPI_АвторизацияПользователя в процедуре HTML_ПолеДокументСформирован есть код: "СтрНайти(Объект.КодДоступа, "&scope")"?
27. user1327555 19.11.20 13:33 Сейчас в теме
Я пробовал разные типы добавлять. Но после кнопки "Разрешить" меня отправляет на веб сайт microsoft.
28. evkireev 6 19.11.20 19:47 Сейчас в теме
32. Maria18 112 02.12.20 16:24 Сейчас в теме
(28) В модуле формы обработки GoogleAPI_АвторизацияПользователя в процедуре HTML_ПолеДокументСформирован есть код: "СтрНайти(Объект.КодДоступа, "&scope")"?
33. пользователь 22.12.20 21:09
Сообщение было скрыто модератором.
...
34. пользователь 22.12.20 22:44
Сообщение было скрыто модератором.
...
35. пользователь 22.12.20 22:55
Сообщение было скрыто модератором.
...
36. Meamota 23.12.20 08:37 Сейчас в теме
(35)
Ошибка работы с Интернет: URL using bad/illegal format or missing URL
{РаботаСGoogleAPI Обработка.GoogleAPI_АвторизацияПользователя.Форма.Форма.Форма(100)}: Ответ = Соединение.ВызватьHTTPМетод("POST",ЗапросХТТП);
{РаботаСGoogleAPI Обработка.GoogleAPI_АвторизацияПользователя.Форма.Форма.Форма(51)}: Если ПолучитьТокены() Тогда

по причине:
Ошибка работы с Интернет: URL using bad/illegal format or missing URL

Скопируйте код, перейдите в приложение и вставьте его в нужное поле:

Кто сталкивался с данной ошибкой?
Прикрепленные файлы:
37. aiakupov 08.02.21 17:44 Сейчас в теме
1С 8.3.16.1814 | УТ 11.4.12.61

Не получается установить расширение, ошибка:
Не найден объект ЭлементСтиля.БыстрыеОтборыФонГруппы
Прикрепленные файлы:
40. 1C82 46 06.04.21 19:02 Сейчас в теме
Я так понимаю что интерес автора к публикации иссяк. Поэтому пишу для тех кто хочет скачать файл расширения. Расширение предлагаемое к скачиванию не рабочее!! Материал интересный и вполне рабочий - пригодится как рыба для своих доработок. К сожалению автор не нашел времени для исправления всех ошибок на которые было указано в комментариях. В приложении рабочий вариант (тестировал на УТ11.4.11.65)
Прикрепленные файлы:
РаботаСGoogleAPI_v1.cfe
Andrekaa; val_ka; dimaster; +3 Ответить
41. user622487_crz.noob 30.04.21 08:28 Сейчас в теме
(40)
Подскажите, какие настройки в Google делаете чтобы можно было выгружать. Прошелся по "инструкции", все равно получаю
Ошибка 403: access_denied
The developer hasn’t given you access to this app. It’s currently being tested and it hasn’t been verified by Google. If you think you should have access, contact the developer
42. 1C82 46 30.04.21 23:51 Сейчас в теме
(41) Посмотрите https://infostart.ru/public/813261/ может поможет разобраться
43. simuljakr 202 14.08.21 13:44 Сейчас в теме
Очень технологичная компания ПИК Digital - переведет ваш учет из 1С в Excel ))

Можно еще попробовать переводить клиентов на версию 7.7 (зато быстро работает!)
А потом и внедрить учет на счетах и в тетрадках (энергонезависимость! не страшны атаки хакеров и отключение интернета!)
Killerban4; +1 Ответить
44. Pim 180 07.02.22 00:24 Сейчас в теме
Подскажите, есть возможность записывать в гугл-таблицу без авторизации через сайт?
Или эмулировать авторизацию программно?
Хочу по регламентному заданию отправлять данные.
46. spodAlex095 7 21.04.23 15:31 Сейчас в теме
Подскажите, при авторизации возникает следующая ошибка (см скрин), как это можно исправить?
Прикрепленные файлы:
47. user1731775 24.04.23 13:48 Сейчас в теме
Добрый день!
С учетом последних санкций, данное решение работает? Или уже никаких вариантов?
48. Barok 19.12.23 13:09 Сейчас в теме
Здравствуйте. Примерно через неделю перестаёт работать refresh_token и регламентное задание не работает. Подскажите, почему refresh_token перестаёт быть актуальным и как его можно обновить без участия пользователя в регламетном задании?
Оставьте свое сообщение