Интеграция с Google drive




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

Добрый день,

Все началось с того, что наша компания решила отказаться от пакета office и перейти на G-Suite. Т.к. пользователи привыкли нажимать кнопку и отправлять сразу письмо на почту в Outlook с добавлением текста, пришлось делать, что-то для Google…

Данное расширение встраивается в любую конфу. Позволяет сохранять табличные документы на Google disk. Тестировалось на платформе 8.3.14.1779

Версия api Google v3. Частично формы были взяты с просторов Инфостарта.

После того как добавите расширение необходимо создать проект в Google, дать доступ и получить ключи. подробно написано в этой публикации //infostart.ru/public/651450/

Затем эти ключи необходимо добавить в ИБ, чтобы их можно было получать(константы, справочник или регистр сведений и т.д.)

В расширении в модуле менеджера обработки ГСьюитРаботаСGDisk указать эти константы(в тексте для примера указаны константы основной конфигурации).

Процедура ИнициализироватьПараметрыОбработки(СтруктураПараметровОбработки) Экспорт
//Почта = ПолучитьАдресЭлектроннойПочты(ПараметрыСеанса.ТекущийПользователь);
СтруктураПараметровОбработки.Вставить("Логин","");
СтруктураПараметровОбработки.Вставить("ИмяНастройкиТокенОбновления","РаботаВGSuiteДиск_ТокенОбновления");
СтруктураПараметровОбработки.Вставить("ИмяНастройкиТокенАвторизации","РаботаВGSuiteДиск_ТокенАвторизации");

//Заменить на ваше получение
ClientID   = Константы.ClientIDGDrive.Получить();
ClientSecret = Константы.ClientSecretGDrive.Получить();
customerId   = Константы.customerIdGDrive.Получить();
RedirectURI  = Константы.RedirectURI.Получить();
Scope        = Константы.ScopeGDrive.Получить();
//
СтруктураПараметровОбработки.Вставить("ClientID",ClientID);
СтруктураПараметровОбработки.Вставить("ClientSecret",ClientSecret);
СтруктураПараметровОбработки.Вставить("customerId", customerId);
СтруктураПараметровОбработки.Вставить("RedirectURI",RedirectURI);
СтруктураПараметровОбработки.Вставить("Scope",Scope);

СтруктураПараметровОбработки.Вставить("ТокенОбновления",ГСьюитОбщегоНазначенияСервер.ПолучитьЗначениеИзХранилищаНастроек("РаботаВGSuiteДиск_ТокенОбновления"));
СтруктураПараметровОбработки.Вставить("ТокенАвторизации",ГСьюитОбщегоНазначенияСервер.ПолучитьЗначениеИзХранилищаНастроек("РаботаВGSuiteДиск_ТокенАвторизации"));
КонецПроцедуры

После этого необходимо разместить команду на нужных формах и в модуле общей команды ГСьюитОбщаяКомандаСохранитьНаGoogle описать откуда на форме брать табличный документ и заголовок.

 

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Заголовок = ПараметрыВыполненияКоманды.Источник.Заголовок;
Если ПараметрыВыполненияКоманды.Источник.Элементы.Найти("ОтчетТабличныйДокумент") <> Неопределено Тогда
ТабДок =  ПараметрыВыполненияКоманды.Источник.ОтчетТабличныйДокумент;
ИначеЕсли ПараметрыВыполненияКоманды.Источник.Элементы.Найти("ТекущаяПечатнаяФорма") <> Неопределено Тогда
ТабДок =  ПараметрыВыполненияКоманды.Источник.ТекущаяПечатнаяФорма;
Заголовок = ПараметрыВыполненияКоманды.Источник.Заголовок;
Иначе
Возврат;
КонецЕсли;

ОткрытьФорму("Обработка.ГСьюитРаботаСGDisk.Форма.ФормаВыбораКаталога",Новый Структура("ТабДок,Заголовок",ТабДок,Заголовок),ПараметрыВыполненияКоманды.Источник,ПараметрыВыполненияКоманды.Источник.УникальныйИдентификатор,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

КонецПроцедуры

 

4 Comments

  1. DrAku1a

    (0) Автор, пожалуйста, пишите Google Drive, или Google диск, но никак не Google disk.

    Reply
  2. mmitin

    (1) Поправил, сам не обратил внимания, что написал)

    Reply
  3. skyboy13

    А чем это отличается от https://infostart.ru/public/813261/

    за 1 стармани?

    Reply
  4. mmitin

    (3)хз, та наверное круче

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *