Версия для печати темы (https://pro1c.org.ua/index.php?s=f409320c27d5e26157d56bc305e47d8c&showtopic=58437)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Googel аутентификация OAuth

Автор: SV71 16.04.20, 12:50

Всем здравствовать!

Самописная конфигурация на платформе 1С:Предприятие 8.3 (8.3.3.721) управляемые формы.

По статье в интернет создал внешнюю обработку с формой:
.

Для кнопки "Авторизация" создал такую же команду.

Содержание модуля взял из той же статьи:

&НаКлиенте
Процедура Авторизация(пОписаниеДействия = Неопределено)
    ПараметрыФормы = новый структура("Адрес", АдресСтраницыАутентификации());
    ОО = Новый ОписаниеОповещения("ОбработатьAccessToken", ЭтаФорма, пОписаниеДействия);        
    ОткрытьФорму("ВнешняяОбработка.АутентификацияGoogle.Форма.ФормаАутентификации", ПараметрыФормы, Элементы.Авторизоваться, ,,,ОО, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция АдресСтраницыАутентификации()

    ПараметрыURL = Новый Структура;
    Адрес = "https://accounts.google.com/o/oauth2/v2/auth";
    ПараметрыURL.Вставить("client_id", "<ваш уникальный идентификатор приложения из Google API console>.apps.googleusercontent.com");
    ПараметрыURL.Вставить("redirect_uri", "http://localhost");
    ПараметрыURL.Вставить("scope", "https://www.googleapis.com/auth/calendar.readonly https://www.googleapis.com/auth/calendar.events.readonly  https://www.googleapis.com/auth/calendar");
    ПараметрыURL.Вставить("response_type", "code");
    ПараметрыURL.Вставить("prompt", "consent"); //Пользователю отображается только окно разрешения доступа к его пользовательским данным
    Возврат Адрес(Адрес, ПараметрыURL);

КонецФункции // ПолучитьAuthToken()


При сохранении выдает ошибку:
Цитата
{Обработка.Google.Форма.Данные.Форма(20,10)}: Процедура или функция с указанным именем не определена (Адрес)
Возврат <<?>>Адрес(Адрес, ПараметрыURL); (Проверка: Сервер)
{Обработка.Google.Форма.Данные.Форма(20,10)}: Процедура или функция с указанным именем не определена (Адрес)
Возврат <<?>>Адрес(Адрес, ПараметрыURL); (Проверка: Тонкий клиент)


Предполагаю что в статье не дали код функции "Адрес".

Есть у специалистов предположение, что в этой функции или может это функция из какой-нибудь библиотеки?

Автор: Vofka 16.04.20, 13:18

Вроде вот:

&НаСервереБезКонтекста
Функция Адрес(Знач URL, Знач ПараметрыURL)
    
    Перем МассивПараметров;
    МассивПараметров = Новый Массив;
    Для каждого Параметр Из ПараметрыURL Цикл
        МассивПараметров.Добавить(Параметр.Ключ + "=" + Параметр.Значение);
    КонецЦикла;
    URL = СокрП(URL);
    URL = ?(СтрЗаканчиваетсяНа(URL, "/"), URL, URL + "/");
    Возврат URL + "?" + КодироватьСтроку(СтрСоединить(МассивПараметров, "&"),    СпособКодированияСтроки.URLВКодировкеURL);

КонецФункции

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua