Авторизация OAuth 2.0 в API Google и получение access token для сервисной учетной записи, не требует подтверждения пользователя

Публикация № 805071 25.03.18

Интеграция - WEB-интеграция

Google API OAuth 2 JWT access token криптография цифровая подпись RSA PEM токен закрытый ключ сертификат ключа Google spreadsheets Гугл таблицы

Обработка получает google api access token методом two-legged OAuth (2LO), это вариант сервер-сервер с цифровой подписью, когда не требуется подтверждение пользователя. Заполняет гугл-таблицу через API. При ее работе также происходит парсинг закрытого RSA-ключа PEM, результат парса выводится в форму.

Пока в интернете я встречал только описание использования из 1С "Трехногого OAUth" (three-legged OAuth), где вызов API идет от имени конечного пользователя и обычно требуется подтверждение пользователя. Способ на мой взгляд длинноватый, поэтому я решил вызвать из 1Ски по-человечески двуногую авторизацию: "two-legged OAuth," или "2LO". Делал на платформе 8.3.10.2168, протестировал также на 8.3.11.3034. Добавлено 17.07.2018: вариант обработки для платформы 8.3.9 (проверено на 8.3.9.2033 и 8.3.9.2233)

Речь идет о модели авторизации, описанной:
краткое описание с картинкой - https://developers.google.com/identity/protocols/OAuth2#serviceaccount
подробное - https://developers.google.com/identity/protocols/OAuth2ServiceAccount

Этот способ требует создания и криптографического подписывания JSON Web Tokens (JWT). На данный момент встроенным Менеджером Криптографии 1ска не умеет подписывать SHA256 хеш, а гугл другого не приемлет. Изначально я использовал COM-объект System.Security.Cryptography.RSACryptoServiceProvider. Он работал как надо, но смущало, что в документации не написано, что он так умеет (в опциях метода SignHash отсутствует вариант SHA256). Для гарантии, что будет работать на другом компьютере, я решил вычислить цифровую подпись "вручную" обычной арифметикой, которую достойно выдержала 1С. Примечательно, что при этом она оперирует десятичными 309-значными числами, и подпись вычисляет за пару секунд. Триста девять - это не опечатка, вот например, значение одной из переменных типа Число, используемых при вычислении:

502 980 391 062 131 532 641 704 729 356 208 435 540 985 711 615 837 230 131 224 218 031 451 499 103 580 000 500 
042 512 824 109 317 254 211 102 144 888 404 960 708 248 565 484 714 907 166 675 270 791 229 966 881 267 979 216 
170 431 549 149 990 776 636 979 550 241 423 110 985 244 106 352 654 087 401 423 069 254 226 452 760 694 752 994 
636 816 447 756 286 216 072 699 194 804 391 178 250 315 913 588 444 283 437

На 8.3.9 вычисляет дольше, но тоже за приемлемое время - похоже, используются не все ядра процессора.

Обработка получает токен от имени сервисной учетной записи моего тестового проекта. Scope запрашивается только для API spreadsheets. Для демонстрации работоспособности полученного токена, из формы обработки можно изменить столбец тестовой гугл-таблицы, а затем по указанному на форме обработки адресу посмотреть результат.

Для получения токенов на api spreadsheets от имени Вашего сервис-аккаунта, необходимо в консоли разработчика https://console.developers.google.com создать/скачать JSON-ключ сервисного аккаунта с доступом к api spreadsheets, и указать его в поле обработки "Путь файла ключа json". Токен своей учетки Вы получите, но при попытке изменить мою тестовую таблицу с таким токеном гугл вернет error 403 "PERMISSION_DENIED", поскольку у Вашего сервис-аккаунта нет доступа к моей таблице.

При воспроизведении в своей работе аналога продемонстрированного механизма не забудьте прописать нужные Вам "scope" в коде обработки и соответствующие API при запросе у гугла json-ключа. Также не забудьте расшарить доступ к объектам гугла, которые Вы хотите изменять или читать через API. Доступ нужно предоставлять емейлу Вашей сервисной учетной записи. Этот емейл можно найти внутри json ключа, в значении свойства "client_email", либо в моей обработке указать путь к Вашему JSON-ключу и нажать кнопку "разобрать сертификат". Емейл отобразится в поле "Расшарить для емейла".

Важный момент: в операционной системе должно быть правильное время и правильный часовой пояс (используется функция 1с УниверсальноеВремя), иначе обработка запросит у гугла неверные дату начала и окончания срока действия токена, как следствие токен не выдадут, в ответе будет что-то со словом time. Если правильные системное время и пояс устанавливать не хотите - тогда нужно в модуле формы указать свой алгоритм расчета времени для переменной ВремяИстеченияUTC. Учитывайте, что в данной схеме авторизации гугл выдает токены максимум на час, затем нужно получать новый токен.

Для разбирающихся в криптографии. Цифровая подпись арифметически вычисляется с использованием SHA256withRSA (RSASSA-PKCS1-V1_5-SIGN with the SHA-256 hash function). Для этого в процессе обработки средствами 1С происходит парсинг закрытого RSA-ключа в формате PEM, BASE64 которого содержится в сертификате JSON. На вкладке "Парс сертификата json" в дерево выводится результат парсинга, и в ветке дерева "OCTET STRING" содержится SEQUENCE, в котором перечислены INTEGER - параметры закрытого и открытого ключей: Version, Modulus, publicExponent (Exponent, E), privateExponent (D), prime1 (P), prime2 (Q), exponent1 (dP или d mod (p-1)), exponent2 (dQ или d mod (q-1)), coefficient (InverseQ или InvQ или (inverse of q) mod p).

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

Наименование Файл Версия Размер
(8.3.10 и 8.3.11) Авторизация OAuth 2.0 в API Google и получение access token для сервисной учетной записи, не требует подтверждения пользователя:

.epf 20,30Kb
114
.epf 1.1 20,30Kb 114 Скачать
(8.3.9) Авторизация OAuth 2.0 в API Google и получение access token для сервисной учетной записи, не требует подтверждения пользователя:

.epf 20,86Kb
9
.epf 1.1 20,86Kb 9 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. uginx 11.07.18 06:52 Сейчас в теме
2. uginx 12.07.18 16:40 Сейчас в теме
а не подскажете как добавлять строку в конец листа?

у меня на такую строку
/v4/spreadsheets/1u3hBxBn0hHfOOyJ6TjLzsji58SPP3ttNyRN31xTgUk­E/values/Sheet2:append?valueInputOption=USER_ENTERED
ругается с кодом 404

а так
/v4/spreadsheets/1u3hBxBn0hHfOOyJ6TjLzsji58SPP3ttNyRN31xTgUk­E/values/Sheet2?valueInputOption=USER_ENTERED
работает, но записывает с начала листа
3. uno-c 214 12.07.18 20:01 Сейчас в теме
Здравствуйте. Если нужно добавить новую дополнительную пустую строку (т.е. на странице последняя строка, в которую можно что-то записать была 969я, нужно, чтоб появилась 970я строка), то нужно использовать POST по адресу https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate, при этом в теле нужно передать JSON {"requests": [ { "appendDimension": { "sheetId": sheetId, "dimension": "ROWS", "length":1}}]} https://developers.google.com/sheets/api/samples/rowcolumn#append_empty_rows_or_columns
4. uginx 13.07.18 06:31 Сейчас в теме
(3) спасибо! поменял HTTPСоединение.Записать на HTTPСоединение.ОтправитьДляОбработки
5. uno-c 214 13.07.18 10:54 Сейчас в теме
Отлично!

Конечно же, важно не путать методы HTTPСоединение (HTTPConnection):
Записать (Put)
ОтправитьДляОбработки (Post)
Получить (Get)
6. kasper076 89 28.11.18 15:45 Сейчас в теме
Реально работает. Спасибо.
7. kasper076 89 29.11.18 10:15 Сейчас в теме
В данном примере сертификат содержится в файле формата JSON. А если сертификат в файле cer, как тогда можно достать закрытый ключ?
8. uno-c 214 29.11.18 12:07 Сейчас в теме
(7)В .cer обычно только открытый ключ. Google выдавал еще .p12 - из него ключи можно достать например через powershell.
$cert = New-Object system.security.cryptography.x509certificates.x509certificate2
$pat="d:\UNSAFE\dell\mySert.p12"
$password="notasecret"
$flags = "UserKeySet,Exportable"
$cert.Import($pat, $password, $flags)
$myXml = $cert.PrivateKey.ToXmlString($True)
$myXml | Out-File "d:\UNSAFE\dell\FromPower.xml"
Ключи и параметры для ускоренного расчета будут видны в файле FromPower.xml, ими можно вычислять цифровую подпись для гугла.
9. kasper076 89 30.11.18 10:00 Сейчас в теме
(8) Некорректно сформулировал свой вопрос. Вот тут ты используешь COMОбъект("System.Security.Cryptography.RSACryptoServiceProvider") для подписи файла по алгоритму RSA-sha256. А в обработке из этой темы СОМ-объект не используется. Возможно ли только средствами 1С подписать и поверить подпись RSA-sha256, если сертификат лежит в файле cer?
10. uno-c 214 30.11.18 11:42 Сейчас в теме
(9)Если закрытый ключ содержится в файле - думаю можно, т.к. у эски есть инструменты для работы с двоичными данными. Но повторю, в .cer как правило нет закрытого ключа, нужен .pfx или .p12.
11. kasper076 89 30.11.18 11:56 Сейчас в теме
(10) pfx тоже есть. Но при экспорте из хранилища сертификатов был запрошен ввод пароля. На Хабре прочитал, что это дополнительная защита закрытого ключа, сам файл pfx шифруется с помощью этого пароля.
Я попробовал разобрать файл cer используя алгоритм из обработки. Но результат получился не корректным. Получились классы не входящие в формат ASN.1
Прикрепленные файлы:
12. uno-c 214 30.11.18 13:03 Сейчас в теме
(11)Шифруется потому что содержит закрытый ключ. Значит, если сильно хочется эской - нужно разбирать и расшифровывать ). Посмотрел пару закрытых ключей в pfx - они зашифрованы 3DES SHA-1. Но это совсем для 1с-гурманов ). Менеджер криптографии вроде только с асимметричным шифрованием работает, т.е. придется алгоритм расшифровки вручную прописывать, если хочется без COM или Native.
13. kasper076 89 30.11.18 13:28 Сейчас в теме
(12) Ну мы не такие :-) . Решили прост отказаться от RSA-sha256. Нам нельзя использовать сторонние библиотеки.
14. uno-c 214 30.11.18 14:22 Сейчас в теме
(13)Да, средствами эски расшифровывать закрытый ключ из pfx неоправданно трудоемко будет. Разве что для какой-нибудь дипломной работы - из теоретического интереса решить задачку.
53. uno-c 214 01.11.19 20:30 Сейчас в теме
(11)Извините, просто памятка. На днях наткнулся, удобная штуковина для разбора ASN.1 https://lapo.it/asn1js/

И уж раз начал писать - то в моей обработке - да, я не делал универсальный разбор любых файлов ASN, а ограничился только тем, что было необходимо для разбора json-сертификатов от Гугла.
15. Cyberhawk 133 29.07.19 12:01 Сейчас в теме
В чем отличие между двумя вложениями?
16. uno-c 214 29.07.19 13:21 Сейчас в теме
(15)Здравствуйте! В версии (8.3.9) дописаны некоторые функции для работы с двоичными данными, которые отсутствуют в платформе 8.3.9. Если версию обработки 8.3.9 запустить на более поздних платформах - то будет ругаться из-за конфликта имен функций встроенных в платформу и написанных мной, тогда нужно просто удалить область
#Область Для_8_3_9
// в 8.3.10 эти функции встроены в платформу

&НаСервере
Функция ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер)
...
#КонецОбласти
17. Cyberhawk 133 29.07.19 13:58 Сейчас в теме
(16) Благодарю за ответ и за публикацию
18. skyboy13 13 25.09.19 11:09 Сейчас в теме
Про SHA256 в 1С, это соответственно АлгоритмХеширования. Что-то у него даже описания нет....
19. uno-c 214 25.09.19 11:26 Сейчас в теме
(18)Вы имеете в виду описание в СП МенеджерКриптографии-АлгоритмХеширования-SHA256? Выше в статье я писал "На данный момент встроенным Менеджером Криптографии 1ска не умеет подписывать SHA256 хеш, а гугл другого не приемлет." В СП его нет, но можно обратиться к любому модулю криптографии Новый МенеджерКриптографии(<ИмяМодуляКриптографии ...), потом .
ПолучитьИнформациюМодуляКриптографии(), и в нем есть массив .АлгоритмыХеширования - там найдете полный перечень алгоритмов хеширования, с которыми справится 1С платформенными средствами, SHA256 пока там отсутствует.
62. uno-c 214 29.05.20 03:54 Сейчас в теме
(18) Просто памятка. 1С:Предприятие 8.3.15.1869, МенеджерКриптографии, поддерживаемые алгоритмы хеширования по криптопровайдерам:
1."Microsoft Base Cryptographic Provider v1.0" (тип 1) : SHA-1, MD2, MD4, MD5
2."Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" (тип 13) : SHA-1, MD5
3."Microsoft Base DSS Cryptographic Provider" (тип 3) : SHA-1, MD5
4."Microsoft Base Smart Card Crypto Provider" (тип 1) : SHA-1, MD2, MD4, MD5
5."Microsoft DH SChannel Cryptographic Provider" (тип 18) : SHA-1, MD5
6."Microsoft Enhanced Cryptographic Provider v1.0" (тип 1) : SHA-1, MD2, MD4, MD5
7."Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" (тип 13) : SHA-1, MD5
8."Microsoft Enhanced RSA and AES Cryptographic Provider" (тип 24) : SHA-1, MD2, MD4, MD5
9."Microsoft RSA SChannel Cryptographic Provider" (тип 12) : SHA-1, MD5
10."Microsoft Strong Cryptographic Provider" (тип 1) : SHA-1, MD2, MD4, MD5
20. ivanovkpd 03.10.19 13:25 Сейчас в теме
Добрый день.

Я немного соптимизировал, как мне кажется, генерацию JSON для передачи на гугл
Во первых, использую метод batchUpdate, он позволяет избавиться от необходимости указания range в url, во вторых ф-я глобального контекста ЗаписатьJSON, позволяет избавиться от вложенного цикла.

Функция ДжонИзМассива(Знач Масс, Рэйнж, Знач НачСтрока = 1,
		Знач НачКолонка = 1, Знач Лист = "Лист1") Экспорт

	Данные = Новый Структура();
	ValueRange = Новый Структура();
	Колонок = Масс.количество();
	Строк = Масс[0].Количество();
	Рэйнж = СтрШаблон("%1!%2:%3", Лист, НотацияА1(НачКолонка, НачСтрока), НотацияА1(НачКолонка
		+ Колонок + 1, НачСтрока + Строк + 1));

	ValueRange.Вставить("range", Рэйнж);
	ValueRange.Вставить("majorDimension", "COLUMNS");
	ValueRange.Вставить("values", Масс);

	Данные.Вставить("valueInputOption", "USER_ENTERED");
	Данные.Вставить("data", ValueRange);

	Джсон = Новый ЗаписьJSON();
	Джсон.УстановитьСтроку();
	ЗаписатьJSON(Джсон, Данные);
	Возврат Джсон.Закрыть();
КонецФункции
Показать
21. uno-c 214 03.10.19 14:40 Сейчас в теме
(20)Здравствуйте! Цель этой обработки - получить access token. Гугл-таблица в ней заполняется лишь для проверки работоспособности полученного токена. ЗаписатьJSON и ПрочитатьJSON глобального контекста - да, как правило удобней и лаконичней эти функции использовать.
22. ivanovkpd 03.10.19 15:24 Сейчас в теме
(21) Да я ж не спорю! Она мне ОЧЕНЬ помогла, хоть и промучился несколько дней из-за невнимательности своей :)

Я не вам в упрек ни в коем случае.
24. uno-c 214 03.10.19 16:48 Сейчас в теме
(22)Я к тому, что вдруг кто будет читать перед тем, как скачать эту обработку. Обработка позволит не тратить время на изучение нудной процедуры получения токена. Плюс она отвязана от операционной системы, работает на линуксе, т.к. не использует обращение к криптопровайдеру через COM для вычисления цифровой подписи, а вычисляет сама чистой арифметикой. Но дальнейшее использование полученного токена - это уже предмет других примеров-обработок.
23. ivanovkpd 03.10.19 15:28 Сейчас в теме
(21) Кстати обнаружил неприятный нюанс - Googe Sheet API не понимает JSON-format даты/времени.

Посему, перед применением ЗаписатьJSON приходится все даты конвертить в строки, все в тех же мерзких циклах. :(
25. uno-c 214 03.10.19 17:30 Сейчас в теме
(23)В спецификации JSON отсутствует дата, отсюда и проблема. Т.е. нету такого понятия, как "JSON-format даты/времени". RFC7159:
JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).

Использующие обмен данными в формате JSON сами принимают решение, как передавать даты в форме строки. В 1С есть три встроенных варианта для этого - например в функциях глоб.контекста ПрочитатьДатуJSON(...) ЗаписатьДатуJSON(...) - ISO, JavaScript, Microsoft. В глоб.контекст. ЗаписатьJSON - тоже третьим параметром можно передать настройки сериализаци, в том числе для даты с тремя этими вариантами. Но google sheets api, видимо, какой-то четвертый формат использует )
26. ivanovkpd 04.10.19 09:23 Сейчас в теме
(25) а вот настройки сериализации я что-то не попробовал, спасибо.
Гугл принимает dd-MM-yyyy HH:mm:ss, если стоит параметр USER_ENTERED, а RAW я не пробовал :)
(24) Не, обработка просто шикарная! 100500й раз спасибо вам :) Вы, по-моему вообще единственный кто реализовал 2-leg авторизацию.
27. uno-c 214 04.10.19 09:39 Сейчас в теме
(26)
а RAW я не пробовал :)
Судя по инструкции гугла, можно и не пробовать ):
RAW The values the user has entered will not be parsed and will be stored as-is.
USER_ENTERED The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI.
В JSON либо строка либо число, других вариантов в данном случае нет. И в случае RAW - все останется как есть - строкой или числом.
28. uno-c 214 04.10.19 09:42 Сейчас в теме
(26)
100500й раз спасибо вам :)
А Вам спасибо за отзыв !
29. Cthulhu 1 09.10.19 14:02 Сейчас в теме
(20)
упс. выглядит красиво (я так понял в вывод (начиная с А1 в целевой гугл-таблице) кидается содержимое Масс.
тупой вопрос: а как собственно Масс формируется для таб.документа (или области)?..
прим:
31. пользователь 09.10.19 14:28
Сообщение было скрыто модератором.
...
30. Cthulhu 1 09.10.19 14:09 Сейчас в теме
спасибо!
тупые (снова, уж извините) вопросы.
а как именно "взаимоувязываются" линк на гугл-таблицу с кодом? в смысле - где и как в коде указывается, что именно эта таблица правится через api?..
32. пользователь 09.10.19 15:45
Сообщение было скрыто модератором.
...
33. Cthulhu 1 09.10.19 17:55 Сейчас в теме
(32) о тут уже оказывается отрезан обмен сообщениями - тупо редирект в телегу и прочее (которого у меня нет).
спасибо, добрый человек. надеюсь автор топикстартер извинит за диалог тут.
1) понятно что в константе - непонятно что оно (ТабИД) собой представляет и как его получить...
2) вижу у тебя тупо ТЗ выгоняется в гугль-шит? а как таб.документ?
35. ivanovkpd 09.10.19 18:43 Сейчас в теме
(33)
Мне табДокумент не нужен, я выгружаю в гугль результаты запроса.
Я думаю ТабДок проще гнать сразу в массив, без ТЗ. И, скорее всего, просто циклами.

Я еще почему с ТЗ заморочился и с массивом "по столбцам", у меня выгружается таблица > 50к строк. Гнать ее вложенными циклами, по моему мнению, менее эффективно, чем через "ВыгрузитьКолонку" хотя я и не тестировал. Но! даты приходится конвертировать в строку после выгрузки колонки. Глупый Гугд не принимает дату в ISO.
34. uno-c 214 09.10.19 18:27 Сейчас в теме
(32)Нехило Вы этак, весь мой авторский код "криптопровайдера" спалили.
ivanovkpd; Cthulhu; +2 Ответить
36. Cthulhu 1 11.10.19 15:21 Сейчас в теме
извините, снова тупые вопросы (пытаюсь пере-до0пилить немного под себя)
1. Проект создан, в "Бибилиотека" подключены API googlesheets и googledrive
2. Учетные параметры выглядят вот так (аттач).
сначала запутался - который json и как выгружать... с горем пополам выгрузил тот, который обработка съела (на другой ругалась).
3. от этой же учетки (в которой создан проект) - создал и сохранил гугль-таблицу. доступ - всем на всё (потом буду экспериментировать с ограничениями, дошло).
4. из джсона - разобрать сертификат - получил для себя мыло (далее использую его).
5. получить токен -
4. для этой гугль-таблицы, с мылом из разобранного сертификата - сгенерировать токен.
5. список листов - получаю запросом с этим токеном+мылом без проблем (с любым токеном, вообще-то - но это наверное из-за полного расшаривания).
6. попытка загнать данные в эту таблицу (на первый лист, с #gid=0) с этими же (своим!) токеном и (своим!) мылом - error 403 "PERMISSION_DENIED".
Прикрепленные файлы:
37. Cthulhu 1 12.10.19 11:24 Сейчас в теме
(36)
прим.: не на токен ругается...
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
-- файл создан под тем аккаунтом, в который выполнен вход, и расшарен максимально, на весь инет (редактирование)
а может где-то в консоли какой-нибудь можно посмотреть - кто лез через апи к файлу?
38. uno-c 214 12.10.19 11:44 Сейчас в теме
(37)Думаю, стОит попробовать шаг-в-шаг повторить действия, описанные в статье, т.к. они позволяют редактировать таблицу. А уж потом экспериментировать с доступами "всем на всё" и проч.
40. ivanovkpd 13.10.19 14:36 Сейчас в теме
(38) Ну таки да, я делал, у меня работает :)
Да, еще момент, насколько я понял, учетка в которой живет таблица должна быть для частного лица, иначе все эти АПИ вроде бы платные.
41. Cthulhu 1 15.10.19 09:51 Сейчас в теме
(40)
ааагрррхх... учетка, конечно же (мне ж не для домашней булгахтерии эта вся беда нужна...) - корпоративная.....
42. uno-c 214 15.10.19 10:59 Сейчас в теме
(41)
корпоративная
Cthulhu если есть возможность - отпишитесь пжл., действительно ли дело в корпоративной учетке было. Если на корпоративную таблицу дать доступ емейлу корпоративного сервис-аккаунта - то все равно "PERMISSION_DENIED"?
43. ivanovkpd 15.10.19 11:01 Сейчас в теме
(42) Да, у меня так. я тоже начал с бизнес-учетки.
Потом по итогу просто сделал отдельную "частную".
44. Cthulhu 1 15.10.19 18:43 Сейчас в теме
(42)
отписываюсь.
*** Вошел в личный аккаунт (не корпоративный).
1.1. Создал API-ключ сервисного аккаунта (сохранение json-файла на локал).
1.2. Создал новый гугль-шит, максимально расшарил (доступен всем на все).
2. Запустил обработку (подпиленную, адрес гугль-шита в текстовое поле ввода, e-mail в коде - из поля ввода).
2.1. Выбрал json-файл из п.1.1.
2.2. "Разобрать сертификат", "Получить токен" == "Подпись верна: Да"
2.3. Вбил свой адрес гугль-шита (из п.1.2).
2.4. "Отправить Столбец в гугл" == "Успешно" (и столбец в моем гугл-шите (см.п.1.2) изменился как заказано.
*** Вошел в корпоративный аккаунт.
пп.1.1-2.3, повторил в полном объеме с аналогичными результатами (все Ок).
2.4. "Отправить Столбец в гугл" == { "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
47. ivanovkpd 16.10.19 09:40 Сейчас в теме
(44) Да-да, все точно так. с корпоративной не работает. Денег наверное надо дать. ну или они там дают пробник вроде на год.
39. ivanovkpd 13.10.19 14:34 Сейчас в теме
(36) Я так думаю в настройках доступа к таблице у тебя не указан в явном виде имейл сервис-аккаунта
45. Cthulhu 1 15.10.19 18:56 Сейчас в теме
(39)
я в коде заменил - вместо явного указания он тянется из соответствующего поля ввода (которое пере-вычисляется по "разобрать сертификат").
46. ivanovkpd 16.10.19 09:39 Сейчас в теме
(45) Речь не про код 1С, а про доступ в гугле. У таблицы явно должен быть разрешен доступ томы "мылу", что зашито в JSON, при гнереации сервис-аккаунта
48. Cthulhu 1 16.10.19 23:37 Сейчас в теме
(46)
т.е. ты имеешь ввиду, что по мылу, указанному в json-файле API-ключа сервисного аккаунта - нет доступа к API? по-моему это бред, извини...
49. uno-c 214 17.10.19 00:29 Сейчас в теме
(48)Имелось в виду, что возможно у API особый подход к разрешениям для сервисных аккаунтов - т.е. возможно "все для всех" на них не всегда распространяется, и например, сервисному емейлу обязательно нужно персональное разрешение на редактирование таблицы. Но, судя по Вашему весьма полезному эксперименту в (44) - проблема была исключительно в "корпоративности" учетки.
50. ivanovkpd 17.10.19 07:49 Сейчас в теме
(48) сервисной учетке разрешение на Sheets API дано?
Бред или не бред, но у ТС и у меня работает. Значит, надо где-то у тебя искать. Вот мы и пытаемся нащупать проблему.
51. uno-c 214 17.10.19 08:16 Сейчас в теме
(50)Уже ведь выяснили, что проблема исключительно в корпоративной учетке, Cthulhu специально для этого эксперимент провел (44). Корпоративку ему отбивало "PERMISSION_DENIED", но когда он сделал из личной учетки - то "и столбец в моем гугл-шите (см.п.1.2) изменился как заказано."
52. Cthulhu 1 17.10.19 16:14 Сейчас в теме
(50)
в обеих учетках "api включен" для "google drive" и для "google sheets".
79. olegans 12.01.21 19:28 Сейчас в теме
(36)
Здравствуйте. А каким именно запросом получаете список листов? Что-то не могу разобраться с этим.
54. Ruschel 04.12.19 11:57 Сейчас в теме
Кто-то пробовал использовать данный способ получения токена сервисной УЗ для управления корпоративной почтой(возможно в личной аналогично, не пробовал) через GMail API? Чтобы поменять настройки ящика другому человеку(автоответ и подпись) нужно включить domain-wide делегирование. Не совсем понятно, нужно ли при получении токена указывать адрес юзера в поле стурктуры "sub", которому необходимо изменить настройки? Попытка добавление этого поля в структуру запроса токена выдается ошибка ниже. При этом все scope для сервисного аккаунта выданы и без sub все корректно выдается. Но с таким выданным токеном не удается отредактировать чужие настройки.
{
"error": "unauthorized_client",
"error_description": "Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested."
}
55. uno-c 214 04.12.19 13:31 Сейчас в теме
(54)
https://www.googleapis.com/auth/gmail.settings.sharing Manage sensitive mail settings, including forwarding rules and aliases.

Note:Operations guarded by this scope are restricted to administrative use only. They are only available to G Suite customers using a service account with domain-wide delegation. Restricted
У Вас есть платный G Suite и domain-wide delegation ?
56. Ruschel 04.12.19 13:35 Сейчас в теме
(55)
да, платный GSuite и включенное делегирование в проекте и сервисной УЗ.
Как раз этот scope и API пробую использовать.
57. mad_maksim 86 31.01.20 09:33 Сейчас в теме
Работало без проблем несколько месяцев.
Вчера стало выдавать 401 ошибку.
На всякий случай, создал новый сервисный аккаунт, загрузил JSON. Не помогло.
Нет идей, что могло "сломаться"?
58. uno-c 214 31.01.20 11:40 Сейчас в теме
(57)Да, странно, в заголовках ответ приходит "WWW-Authenticate":"Bearer realm="https://accounts.google.com/", error="invalid_token""
Что получается: Гугл сам прислал этот токен в ответ на запрос токена. Запрос токена был подписан выданным гуглом сертификатом. Но потом Гугл говорит, что токен инвалид. Гугл выдал токен, который Гугл считает "токен инвалид". На первый взгляд - это гугл глючит. Подожду несколько дней, если глюк останется - буду посмотреть.
59. uno-c 214 31.01.20 13:05 Сейчас в теме
(57)Вот, нашел! Я обратил внимание, что длина токена выросла, теперь не хватает даже 200 символов для ее хранения. В моей обработке просто увеличил длину реквизита формы "токен" (сделал неограниченной) - и все снова заработало. Попробуйте у себя то же самое. Саму обработку перезалью на Инфостарт в ближайшее время.
mad_maksim; +1 Ответить
61. mad_maksim 86 31.01.20 13:57 Сейчас в теме
(59)
У меня тоже заработало. Код у меня свой уже, с новой обработкой можно не спешить )
Для истории: по журналу, в течение недели уже были периодические сбои (то работало, то нет)
А со вчера - уже стабильно.
60. mad_maksim 86 31.01.20 13:13 Сейчас в теме
63. malikov_pro 1235 11.07.20 07:43 Сейчас в теме
Допустимо ли Вашу наработку по RS256 добавить к проекту https://github.com/pintov/1c-jwt? Проект присутствует в списке https://jwt.io/
64. uno-c 214 11.07.20 08:57 Сейчас в теме
(63) Думаю, что недопустимо. Это будет довольно странно выглядеть. Моя наработка в три раза длиннее по коду, чем то, что сейчас выложено на гитхабе указанной Вами ссылке. При этом по ссылке внизу написано Author: Vasily Pintov
Т.е. если добавить мою наработку - то получится, что автор Vasily Pintov на самом деле автор только на 25%, а на 75% - не автор )
66. malikov_pro 1235 11.07.20 15:14 Сейчас в теме
(64) (65) Понятно, у автора статья по этому поводу есть ссылка, но RS реализован через внешнюю компоненту, поэтому видимо он на git и не выложил.

"на самом деле автор только на 25%, а на 75% - не автор" - лицензия MIT "Copyright © <год> <владельцы прав>", указываются все разработчики.

"Получится, что мое узкоспециализированное решение" - RS256 не узкоспециализированное решение, на основе HS256 реализовано подключение к zoom ссылка, чтобы найти Вашу реализацию нужно постараться, она реально полезна. Посмотрите на пример компоновки "google-auth-library" которая полностью реализует клиент использует jws (к слову именно этой библиотеки на https://jwt.io/ нет)

"Например, типовые средства винды не позволяют экспортировать ...", проблема прикладных программистов, по части JWT функционал обозначен на скриншоте https://c2n.me/48lSN8V

Понимаю что культура переиспользования кода на уровне плинтуса, давайте посильно улучшать ситуацию.

Ваши наработки буду использовать для google big query, т.к. не силен в криптографии очень помогло.
67. uno-c 214 11.07.20 16:44 Сейчас в теме
(66)
RS256 не узкоспециализированное решение
У меня не решение RS256. У меня "RS256 для случая, когда гугл сгенерировал RSA-ключи, упаковал их в PEM, а далее в json". Не думаю, что кто-то еще провайдеров OAuth так же делает.
69. malikov_pro 1235 11.07.20 19:00 Сейчас в теме
(67) из google-auth-library
const signedJWT = jws.sign({
            header: { alg: 'RS256' },
            payload,
            secret: this.key,
        });

пример с JWT.io уже показал.
Перекомпоную в общий модуль дальше локально использовать буду.
Посмотрите варианты аутентификации https://github.com/vbondarevsky/Connector.

Еще раз благодарю за труд, помогло.
70. uno-c 214 12.07.20 02:46 Сейчас в теме
(69)
пример с JWT.io уже показал.
Пример с JWT.io - это абстрактная реализация алгоритма.
Я имел в виду, что кроме гугла в практике пока нигде не встречал подобного - чтобы сервис-провайдер генерировал и выдавал RSA-ключи. Oauth от Amazon Marketplace, Bitrix24, Opencart, Wordpress, Яндекс, Вконтакте, ... - нигде нет RS256.
Причем для моей реализации нужны именно PEM - ключи. С pkcs (гугл и в таком формате может выдать если попросить) - мой "криптопровайдер" уже не справится )
71. malikov_pro 1235 12.07.20 03:02 Сейчас в теме
(70)
Яндекс
, PS256.
https://cloud.yandex.ru/docs/iam/operations/iam-token/create-for-sa

Пользовался только переводчиком и там допустим API key, но предположу что для части сервисов аутентификация проходит по IAM.
72. uno-c 214 12.07.20 03:25 Сейчас в теме
(71) https://cloud.yandex.ru/docs/iam/operations/iam-token/create-for-sa#via-jwt - да, оказывается не только гугл. Ну если скомпилируете под абстрактный алгоритм не привязанный к гуглу, да еще парсинг PEMа сделаете нормальный через двоичные данные, а не как я через топорную нарезку строки - то конечно пожалуйста. С английским кодом 1С - тоже прикольно )
73. uno-c 214 12.07.20 03:47 Сейчас в теме
(71) Только я вот не помню, смотрел ли стандарт PEM для RSA-ключей (или DER или X.690 - куда там смотреть). Строгая ли там последовательность структуры данных ASN.1. Если нестрогая (что-то может местами меняться) - то на яндексе мой алгоритм разбора ключа может и не сработать. Хотя может в комментах что и оставил про ссылки на стандарты.
А английский код 1С - это супер. Писал как-то http-сервисы бронирования для конфигурации 1С-Отель. Несмотря на то, что авторство 1С, продана российскому отелю - вся конфа на английском написана. Почему-то отошли от своих стандартов https://its.1c.ru/db/v8std#content:456:hdoc
86. uno-c 214 04.03.22 08:48 Сейчас в теме
(71)
(65)
Получится, что мое узкоспециализированное решение будет подано в контексте (как я понял) универсального проекта - т.е. проекта, код которого можно использовать в разных ситуациях без привязки к гуглу.

Сегодня довелось считать RSA-SHA256 подпись ключом доступа для Яндекс.Навигатора.
https://yandex.ru/dev/yandex-apps-launch/navigator/doc/concepts/navigator-commercial-use-signature.html
RSA ключ там короче и в лежит другом месте структуры ASN.1 - пришлось менять алгоритм разбора PEM-ключа. И код алгоритма подписи тоже менять пришлось из-за того, что ключ короче. В общем я был прав, что данная конкретная обработка из этой публикации - не универсальна.
68. uno-c 214 11.07.20 17:26 Сейчас в теме
(66)
чтобы найти Вашу реализацию нужно постараться

https://www.google.ru/search?ie=UTF-8&hl=ru&q=1С%20google%20JWT%20oauth
Когда я забиваю в поиске гугла "1С google JWT oauth" - у меня в выдаче первые четыре ссылки - это моя обработка. Правда самого infostart.ru в ней нет )
65. uno-c 214 11.07.20 09:32 Сейчас в теме
(63) И во-вторых, независимо от авторства, моя наработка имеет узкую направленность - она заточена на json сертификат с закрытым ключом от гугла. Если будет нужно получить такой json сертификат для негугл-ситуации - то это тоже не совсем тривиальная задача. Например, типовые средства винды не позволяют экспортировать сертификат с закрытым ключом в формате BASE64. Получится, что мое узкоспециализированное решение будет подано в контексте (как я понял) универсального проекта - т.е. проекта, код которого можно использовать в разных ситуациях без привязки к гуглу.
74. ksely 112 10.08.20 13:42 Сейчас в теме
У меня СОМ объект "System.Security.Cryptography.RSACryptoServiceProvider" прекрасно работает в файловом варианте. А при вызове через IIS выдает "Error calling context method (SignHash)". Эксперименты показали, что методы класса RSA работают, а RSACryptoServiceProvider - нет. Похоже, что пользователю, под которым работает радочий процесс IIS, не хватает каких-то прав... Никто не сталкивался?
75. uno-c 214 10.08.20 14:19 Сейчас в теме
(74) Попробуйте IIS временно под админом запустить, чтобы прав по максимуму было. Если сработает - то можно будет дальше ковырять, каких там прав не хватает.
76. ksely 112 10.08.20 17:55 Сейчас в теме
(75) У меня, к сожалению, не особо много времени на эксепименты есть...
Но у меня заработал код из Вашей обработки, который без СОМ объекта. За что Вам Огромное Человеческое Спасибо!!! )))
77. user631502_m.parakhina 17.12.20 17:36 Сейчас в теме
Добрый день. На платформе 8.3.16 и выше Ваш функционал будет работать?
78. uno-c 214 17.12.20 18:33 Сейчас в теме
(77) Здравствуйте. Под рукой 1С:Предприятие 8.3 (8.3.17.1496) - на ней сейчас проверил, работает.
80. user699502_rus.ah7435sn 02.02.22 15:34 Сейчас в теме
Добрый день, Разработчик.
скачал обработку.
и читая описание:
"Для получения токенов на api spreadsheets от имени Вашего сервис-аккаунта, необходимо в консоли разработчика https://console.developers.google.com создать/скачать JSON-ключ сервисного аккаунта с доступом к api spreadsheets, и указать его в поле обработки "Путь файла ключа json"."

Не нашел в обработке "Путь файла ключа json". Где он?
82. uno-c 214 03.02.22 03:31 Сейчас в теме
(80) Здравствуйте! Обработку из моей публикации Вы не скачивали.
Прикрепленные файлы:
84. user699502_rus.ah7435sn 03.02.22 08:14 Сейчас в теме
(82)

Добрый день.
Чтобы не засорять форум, написал Вам в личку.
81. user699502_rus.ah7435sn 02.02.22 15:34 Сейчас в теме
подскажите где получить client_secret?
83. uno-c 214 03.02.22 03:32 Сейчас в теме
(81)
client_secret
В обработке из этой публикации client_secret не используется.
87. Uncore 1262 18.09.22 16:49 Сейчас в теме
(83)Добрый день. Есть запрос на доработку, как можно с Вами связаться? Личные сообщение что-то перестали отправляться.
88. uno-c 214 18.09.22 17:19 Сейчас в теме
(87) Здравствуйте. Вроде написал Вам в личку.
85. volga-autom 03.03.22 13:05 Сейчас в теме
Здравствуйте! Есть ли возможность подписи строки для яндекс навигатора? Ключем pem
Есть желание и возможность реализовать этот механизм?
89. ishbulatova68 10.11.22 11:24 Сейчас в теме
Здравствуйте!Не сталкивались ,как получить подпись sha1rsa,если есть 2 файла public.key и private.key
90. uno-c 214 10.11.22 11:54 Сейчас в теме
(89) Здравствуйте! Насколько помню, sha1rsa может и МенеджерКриптографии сделать подпись. Нужно конвертировать эти ключи в формат, который МенеджерКриптографии понимает, и скормить ему. Конвертировал я когда-то openssl -ом.
91. ishbulatova68 10.11.22 14:31 Сейчас в теме
"конвертировать эти ключи в формат, который МенеджерКриптографии понимает" как раз этого мы и не нашли,вроде как из 2-ух файлов .key нельзя, или мы не знаем как
92. uno-c 214 10.11.22 15:02 Сейчас в теме
(91) Давно это делал, но вроде все получалось, работало.
93. pan_alex 06.01.23 12:42 Сейчас в теме
Добрый день!
Поставили мне задачу по работе с Google Calendar.
Все случилось, но уперся в обновление токенов. Решил перейти с клиентского ID на сервисный аккаунт. Поиск, как вы заметили, выдает только Ваши наработки.
При ручном формировании токена JWT с помощью online-encoder'а - все прекрасно, но хотелось бы автоматизировать процесс.
Как можно связаться с Вами для обсуждения? Личные сообщения мне, как неактивному пользователю "Инфостарт". недоступны.
Оставьте свое сообщение

См. также

Загрузка google таблицы

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Загрузим google таблицу через GET запрос.

1 стартмани

17.05.2023    4437    4    John_d    31    

73

Получение/отправка сообщений RabbitMQ через REST API

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Простой пример получения и отправки сообщений в брокер сообщений RabbitMQ через REST API из 1С без сторонних компонент и middleware.

1 стартмани

23.09.2022    8687    20    NikeeNik    16    

46

#KafkaЭтоПросто: Kafka Adapter 1С (Confluent) - отправляем сообщения

Инструментарий разработчика Внешние источники данных WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Сегодня поднимем в docker kafka с confluent'om, а в 1С, в EDT загрузим проект из репозитория, создадим обработку, в которой несколькими строчками отправим сообщение в kafka через rest proxy и в confluent control center посмотрим на него. Если коротко, то: как отправить сообщение в Kafka несколькими строчками кода без компонент, регистраций и смс.

5 стартмани

24.07.2022    10078    21    huxuxuya    29    

79

Распознавание текста из изображений и PDF с помощью нейросетей Yandex Vision и 1С

Обработка документов WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Если вам нужно с помощью компьютерного зрения от Yandex быстро распознавать текст из документов и изображений, эта статья для вас!

5 стартмани

13.07.2022    9984    11    kiv1c    5    

35

Api идеи для начинающих

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Данная обработка подойдет тем, кто только начинает знакомиться с механизмами api в 1С. В обработке представлены взаимодействия с 12 простыми сайтами на примерах. Решения не затрагивают полной документации, а носят лишь ознакомительный характер. Делал на платформе 8.3.20.

1 стартмани

16.06.2022    11030    27    user676027_svikator    5    

73

Заполнение контрагентов по ИНН для УТ 10.3

Обработка справочников WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 10 Россия Абонемент ($m)

Заполнение контрагентов по ИНН (1С: Управление торговлей 10.3).

6 стартмани

17.05.2022    7625    37    kostyan7    20    

1

Делаем табло в обозревателе из 1Ски с нуля за полчаса. Без бутстрапов, реактов и ангуляров. Жизнетрюки от kuzkov.info

Разработка внешних компонент WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

02.05.2022    9623    126    Steelvan    0    

67

Обмен данными с Web-сервисами

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка предназначена для быстрой настройки обмена данными с Web-сервисами из пользовательского интерфейса.

10 стартмани

29.04.2022    7654    34    ns_bulatov    4    

38

Сервис push-уведомлений для 1С (Push Notification Service For 1C - PNS4OneS)

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Сервис предназначен для передачи сообщений от сервера 1С клиентским сеансам. В простом случае полученное сообщение отображается у клиента в виде всплывающего окна (процедура 1С ПоказатьОповещениеПользователя). С использованием данного сервиса можно оповещать пользователей о новых задачах, полученных электронных письмах, менеджеров о новых заказах, загруженных с сайта и т. п. Дополнительно имеется возможность передавать произвольные данные и обрабатывать самостоятельно полученные сообщения на клиенте, что позволяет реализовать более сложные сценарии (чаты, отображение прогресса длительной операции на сервере и т. п.).

1 стартмани

02.02.2022    14184    38    ltfriend    9    

89

Создание интерактивных обучающих курсов с помощью Vanessa Interactive

Инструментарий разработчика WEB-интеграция Идеи и тренды в разработке Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Приветствую Вас, коллеги. Сегодня Вам предлагается рассмотреть технологию создания интерактивных обучающих курсов, системы Onboarding, интерактивной справки для любых конфигураций разработанных на базе платформы 1С при работе в web клиенте. Прошу посмотреть ролик, кому неинтересно, как это работает, можно дальше не читать. Тестировалось на 1С:Предприятие 8.3 (8.3.20.1646).

1 стартмани

02.02.2022    7639    1    Viktor_Ermakov    2    

35

1Scan. Интеграция веб-клиента 1С с устройством Android (смартфон, планшет, ТСД)

Мобильная разработка WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Получение из Android устройства данных сканера штрихода, камеры, GPS, широковещательных сообщений и передача в код модуля формы 1С для дальнейшей обработки.

1 стартмани

15.11.2021    10826    39    kild    33    

30

HTTP-клиент

WEB-интеграция Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

Подсистема 1С для работы с HTTP.

1 стартмани

28.07.2021    16879    54    SpaceOfMyHead    51    

94

Конфигурация http сервиса jwt авторизации + клиент React JS

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Если мы используем 1С в качестве Back-End для SPA, очень важно реализовать аутентификацию внешних пользователей. В данной публикации приведен пример конфигурации, реализующей аутентификацию , а также клиент, написанный на React js.

1 стартмани

04.07.2021    8280    11    van_za    11    

25

Расширение конфигурации для Web-доступа к 1С (1С в роли back-end)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Для реализации того, чтобы 1С формировала и отдавала страницу, которую можно было бы открыть через браузер было написано расширение, которое позволяет публиковать из 1С произвольные ресурсы, будь то API, сайт или изображения / прочие файлы.

1 стартмани

01.04.2021    19252    20    SaschaG    4    

64

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021    25821    71    Parsec1C    20    

83

Отправка Push-уведомлений через сервис Firebase Cloud Messaging по протоколу FCM HTTP v1 API

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

При разработке нативного приложения Android для ТСД, в котором присутствует функционал отображения задач кладовщикам, созданных в 1С, возникла необходимость отправлять push-уведомления о появлении новых задач. Для отправки таких уведомлений было решено использовать сервис Firebase Cloud Messaging (FCM). Так как для 1С, в отличии от других языков программирования, не существует готовых библиотек, что вполне логично, то очевидным способом отправки является использование протокола HTTP. Однако, существующая информация в интернете в части 1С содержит только сведений об отправке push-уведомлений через этот сервис с использованием устаревшего протокола HTTP Firebase Cloud Messaging. Сам Google не рекомендует использовать данный протокол и настоятельно склоняет к переходу на новый протокол FCM HTTP v1 API. Что ж, пришлось разбираться самостоятельно.

1 стартмани

24.03.2021    19934    28    ltfriend    16    

35

BIM: взаимодействие с платформой Autodesk Forge

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Строительство Абонемент ($m)

Предлагаемый пример демонстрирует широкие возможности для взаимодействия «1С:Предприятие» с платформой Autodesk Forge и позволяет вам получить базовые представления о применения технологий информационного моделирования в строительстве. Поддерживаются все версии платформы от 8.3.12 и выше до 8.3.18.

1 стартмани

25.11.2020    82984    16    kandr    3    

6

Генератор маршрута по "документам отгрузки" в Google.Maps

Оптовая торговля Розничная торговля WEB-интеграция Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Данная обработка будет полезна для построения маршрута по документам реализаций за выбранный период.

7 стартмани

08.11.2020    19782    18    quazare    22    

41

1С + react native

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример реализации клиента для 1С на react native.

1 стартмани

09.10.2020    18468    12    van_za    9    

34

Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пошаговое руководство по созданию http сервиса (часть третья). Передача нескольких параметров в http сервис, a также формирование сложных JSON строк.

1 стартмани

02.10.2020    36769    10    hpi    18    

73

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 1 - RabbitMQ

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Часто 1С не может взаимодействовать со сторонними продуктами, например для шины предприятия RabbitMQ создают внешние компоненты. В статье предлагается новомодный подход REST API реализованный на приложении прокладке Middleware, язык тоже трендовый Golang. В статье немного познакомлю Вас с языком Golang, опишу интеграцию на стороне 1С (8.3.16.1502). Если статья зайдет, напишу как выгружать журнал регистрации по этой схеме в ElasticSearch

1 стартмани

31.08.2020    21783    21    dmitry-irk38    15    

39

Обертка функций для Яндекс.Диск REST API

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Работы коллег в направлении взаимодействия с Яндекс.Диск через REST API (https://infostart.ru/public/853451/ и https://infostart.ru/1c/articles/1278053/) вдохновили меня на написание обёртки основных функций для работы с диском на языке 1С. Пусть вся сложность http-запросов остаётся под капотом, а мы будем просто вызывать функции на привычном языке.

1 стартмани

17.08.2020    6349    16    soulner    17    

25

Аутентификация в сервисах google с использованием ключа сервисного пользователя

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

В статье опишу вариант аутентификации в сервисах google используя ключ сервисного пользователя и криптографию windows.

1 стартмани

17.08.2020    3719    6    malikov_pro    1    

6

Конвертация любых адресов, написанных в свободной форме, к ФИАС

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал "ДА!", выкладываю данную обработку.

2 стартмани

30.06.2020    19258    146    XilDen    19    

28

HTTP сервисы по OpenAPI спецификациям

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Начинаем путь разработки HTTP сервисов с создания спецификаций OpenAPI. Автодокументация сервисов формата Swagger UI без зависимостей. Настройка сервисов в режиме предприятия.

1 стартмани

29.06.2020    26941    31    shmalevoz    24    

90

Конструктор HTTP-соединений в 1С (обычные и управляемые формы)

WEB-интеграция Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Иногда возникают мысли о том, чтобы прикрутить сервисы, связанные с HTTP-соединениями, в 1С. Необходимо писать обработку и анализировать результат.

1 стартмани

02.06.2020    15283    41    Denr83    0    

38

Модуль обмена с QIWI

Банковские операции WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

Компании, которые используют систему моментальных платежей QIWI, ценят ее за удобство по скорости выплат и для платежей по запросу. Но такие переводы сложны для учета, а при большом объеме проводимых операций отнимают много времени и превращаются в дополнительную головную боль. Мы сотрудничали с компаниями, которые отправляют большое количество платеже на QIWI, и часто слышали боль бухгалтеров о том, как им сложно работать с такими переводами. Поэтому мы автоматизировали выплаты через QIWI в 1С и создали модуль интеграции 1С c API QIWI Wallet и QIWI TopUp.

5 стартмани

25.05.2020    17217    4    Neti    10    

16

Личный кабинет сотрудника для 1С: ЗУП (1С + Vue.js + Node.js)

Зарплата WEB-интеграция Кадровый учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Абонемент ($m)

WEB приложение "Личный кабинет сотрудника" + расширение 1С для тех, кто не хочет публиковать 1С в интернет.

1 стартмани

20.05.2020    20334    19    ShiningPhoenix    42    

26

oData – HTTP-сервис для ленивых.

WEB-интеграция Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

oData одним из последних появился в инструментах интеграции поддерживаемых платформой 1С. В данной статье хотел бы показать пример его использования. О преимуществах и недостатках oData предлагаю поделиться в комментариях исходя из реального опыта использования. Цель публикации. Дать разработчикам простой инструментарий обмена между идентичными конфигурациями.

1 стартмани

10.05.2020    22247    38    Forest83    2    

59

DaJet QL - расширяемый язык запросов

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

DaJet QL поддерживает практический полный синтаксис SQL Server 2005-2016. Кроме этого это расширяемый язык запросов. Обращение к объектам СУБД выполняется в терминах метаданных 1С. Доступ к возможностям этого языка запросов реализован в виде web api сервиса. Результаты запросов возвращаются в виде JSON.

1 стартмани

20.04.2020    20938    12    zhichkin    19    

42

Работа с Битрикс 24 из 1С посредством api

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Небольшая разработка демонстрации получения данных из Битрикс 24 через api.

1 стартмани

17.03.2020    11997    61    mentozavr    20    

24

Пример работы с Trello из 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Управленческий учет Абонемент ($m)

Небольшая конфигурация содержит примеры обмена с онлайн-сервисом Trello.

1 стартмани

15.02.2020    26852    62    terrorion    18    

60

"Учет штрафов ГИБДД" с возможной загрузкой из открытых источников в интернет Расширение конфигурации 1С: Предприятие 8.3

Обработка документов WEB-интеграция Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Расширение конфигурации Бухгалтерия предприятия, редакция 3.0 (при минимальных изменениях любой типовой конфигурации), позволяющее вести историю данных по штрафам ГИБДД для справочника транспортных средств компании. Бонусом поставляется внешняя обработка, способная загружать эти данные из открытых источников в интернет.

4 стартмани

30.12.2019    32527    43    capitan    30    

1

Google drive - менеджер файлов

WEB-интеграция Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    34453    49    zykov_vitaliy    28    

45

Автозаполнение адреса по КЛАДР в УПП при выгрузке контрагента с портала компании (API dadata)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Заведение, согласование контрагентов организовано на портале компании. Далее по web-сервису контрагенты выгружаются в УПП (юр.адрес и факт.адрес выгружаются строкой). Задача автоматизировать заполнение адреса в УПП по КЛАДР.

1 стартмани

03.12.2019    17234    3    John_d    10    

27

Яндекс сервисы [Расширение]

Универсальные обработки WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)

1 стартмани

24.10.2019    23378    13    noprogrammer    12    

42