Добрый день,
Все началось с того, что наша компания решила отказаться от пакета 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.Форма.ФормаВыбораКаталога",Новый Структура("ТабДок,Заголовок",ТабДок,Заголовок),ПараметрыВыполненияКоманды.Источник,ПараметрыВыполненияКоманды.Источник.УникальныйИдентификатор,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
(0) Автор, пожалуйста, пишите Google Drive, или Google диск, но никак не Google disk.
(1) Поправил, сам не обратил внимания, что написал)
А чем это отличается отhttps://infostart.ru/public/813261/
за 1 стармани?
(3)хз, та наверное круче