Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы)

Публикация № 813261

Разработка - Системная интеграция - Внешние источники данных

Обработка Управляемые формы Google sheets загрузка выгрузка табличный документ таблица гугл OAuth 2.0

Внешняя обработка на управляемой форме для 1С версии 8.3 для доступа к сервисам Google Sheets c использованием протокола авторизации OAuth 2.0. Выполняет получение списка листов таблицы гугл, чтение таблицы гугл в табличный документ 1С и запись из табличного документа 1С в таблицу гугл. Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.11.2954).
Внимание! В обработке использовано 3 функции из БСП:
ОбщегоНазначенияКлиентСервер.СообщитьПользователю() 
СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку() 
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку() 

Обновление

18.05.18. Версия обработки 1.0.2.

Добавлена функция "Удалить строки". Демонстрация возможность удаления строк из таблицы Google указав определенный диапазон индексов строк для удаления.

Функции

  1. Авторизация в google используя протокол OAuth 2.0

    1. Запрос для получения authorization code ("Код доступа").

    2. Запрос для получения access_token и refresh token.

    3. Запрос для получения access_token используя refresh token.

  2. Взаимодействие из 1С с Google Sheets.

    1. Получение списка листов таблицы гугл

    2. Чтение данных из таблицы гугл и заполнение табличного документа 1С.

    3. Запись данных из табличного документа 1С в таблицу гугл.

  3. Дополнительно

    1. Сохранение параметров подключения и списка листов таблицы в данных формы.

    2. Условное представление элементов в зависимости от срока действия токена.

    3. Формирование ссылки для перехода к выбранному листу таблицы при выборе названия листа из списка.

Используемые источники

  1. В качестве основы были использованы обработки для обычных форм разработанные пользователем: echo77.

  2. Некоторая информация была получена из статей на infostart.ru.:

    1. Google Analytics API, Oauth2.0 и 1c8

    2. Получение доступа к скачиванию гугл-таблицы

  3. Информация с сайта гугл:

    1. Google API Console

    2. Using OAuth 2.0 to Access Google APIs

    3. Refreshing an access token (offline access)

Инструкция

Авторизация в google

Получить client ID and client secret

Необходимо используя Google API Console в рамках созданного проекта получить client ID and client secret

Запросить "Код доступа"

Для доступа к данным гугл необходимо при каждом запросе передавать access_token. При этом чтобы получить access_token, необходимо сначало получить authorization code "Код доступа".

В обработке на закладке “Параметры подключения”, при нажатии на “Запросить” - открывается окно браузера и выполняется переход на страницу авторизации гугл. При этом обязательно должны быть указаны “Client id” и “Client secret”, полученные на предыдущем шаге.

Код доступа можно использовать только один раз для получения access_token. Если access_token утерян, необходимо получить новый “Код доступа” который использовать для получения нового access_token (или использовать refresh token для получения нового access token)

Получить access_token

Любой запрос для доступа к данным требует указания access token-а в параметрах запроса. Для первичного получения “access token”, необходимы: “Client id”, “Client secret” и “Код доступа”.

“Aсcess token” имеет непродолжительное время жизни (3600 сек.).После окончания действия, необходимо:

- либо использовать refresh token и обновить access token

- либо опять повторить процесс: получить код доступа, используя новый код доступа - получить новый access token.

При нажатии "Получить" будет выполнен запрос для получения Аccess token и Refresh token, и будет рассчитан “Срок действия токена”

Запрос возвращает .json содержащий требуемую информацию, и токены заполняются в соответствующие поля на форме обработки:

После получения “Access token”, пока он действует можно обращаться к данным в гугл.

 

Обновить access_token используя refresh_token

После того как истек срок действия “access token” или раньше, можно использовать “refresh token”, чтобы получить новый access token, без использования браузера и получения кода доступа.

Существуют определенные ограничения на использование “refresh token” (подробности по ссылке)

Работа с таблицей гугл (Google Sheet)

Подключение к таблице и получение списка листов таблицы

Необходимо указать ссылку на таблицу гугл в строке “Ссылка на таблицу google”.

При указании ссылки, программа получит “ID таблицы”, выполнит подключение к таблице, прочитает список листов таблицы и заполнит список выбора для поля “Лист”.

При выборе листа из списка - формируется новый URL для доступ к таблице. По кнопке “открыть” выполняется переход в браузере к выбранному листу таблицы.

 

Чтение данных из таблицы гугл в табличный документ 1С

По кнопке “Прочитать таблицу” выполняется запрос, результат запроса обрабатывается и заполняется табличный документ

 

Запись данных табличного документа 1С в таблицу гугл

По кнопке “Записать таблицу” выполняется запрос в котором передается информация для записи в таблицу гугл.

18.05.18. Удаление строк из таблицы Google

Для удаления строк необходимо указать диапазон индексов С - ПО. Нумерация с 0-ля. Например для удаления 2-ой строки в таблице необходимо задать диапазон С = 1 ПО = 2.

 
 Под спойлером процедура демонстрирующая удаление строк:

 

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

Наименование Файл Версия Размер
Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы):

.epf 18,52Kb
18.05.18
258
.epf 1.0.2 18,52Kb 258 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Dzenn 434 10.04.18 12:36 Сейчас в теме
Спасибо за такие возможности! Не скачивал (эту версию), но уверен, что хорошая, годная разработка. Пользователям 1С теперь доступны чтение/запись гугл таблиц, и это прекрасно.
2. Ko1t 267 10.04.18 13:19 Сейчас в теме
(1) И Вам спасибо за оценку :)
3. Артано 677 11.04.18 04:56 Сейчас в теме
4. Duketm 29 11.04.18 09:17 Сейчас в теме
Хорошая работа. Спасибо. Актуальная вещь
5. UncleVader 128 11.04.18 09:27 Сейчас в теме
6. Ko1t 267 11.04.18 09:37 Сейчас в теме
Артано Майаров, Евгений Сахненко, Вадим Скакун, спасибо коллеги :)
7. DrAku1a 1408 11.04.18 10:48 Сейчас в теме
Респект! Очень пригодится!
8. Ko1t 267 11.04.18 11:11 Сейчас в теме
9. starik-2005 2230 12.04.18 10:16 Сейчас в теме
10. Ko1t 267 12.04.18 10:17 Сейчас в теме
11. logarifm 1084 13.04.18 01:48 Сейчас в теме
Пробежался глазами - годный инструмент но не проверялеще. +
13. Ko1t 267 13.04.18 09:40 Сейчас в теме
12. KAV2 13.04.18 03:24 Сейчас в теме
14. Ko1t 267 13.04.18 09:41 Сейчас в теме
(12) Smartsheet судя по всему классная штука, но для меня на данный момент не актуальная :)
15. rintik 15 17.05.18 12:05 Сейчас в теме
Спасибо большое. Работает. Только не могу разобраться как удалять строки.
16. Ko1t 267 17.05.18 12:38 Сейчас в теме
(15) Пожалуйста ).
Ссылка на пример запроса по удалению строк или колонок:
https://developers.google.com/sheets/api/samples/rowcolumn#delete_rows_or_columns
17. rintik 15 17.05.18 13:01 Сейчас в теме
(16) Да пытаюсь разобраться, только у гугла для меня один ответ ""message": "Invalid JSON payload received. Unknown name \"requests\": Cannot find field.","
18. Ko1t 267 18.05.18 12:41 Сейчас в теме
(17) Я попробовал реализовать удаление строк, у меня получилось.
На форме обработки я добавил 2 реквизита: "УдалитьИндексС","УдалитьИндексПО".
Например для удаления 2-ой строки в таблице надо указать:
УдалитьИндексС = 1 (индексация начинается с 0-ля);
УдалитьИндексПО = 2;
Под спойлером код процедуры:
Процедура УдалитьСтрокиОбработка()
19. rintik 15 18.05.18 14:24 Сейчас в теме
(18) Круть. Еще раз спасибо большое.
20. kolya_tlt 24 23.05.18 09:46 Сейчас в теме
нравятся мне проекты ради проектов :)
21. Ko1t 267 23.05.18 11:21 Сейчас в теме
(20) как показывает практика, полученный в процессе опыт конвертируется в итоге в материальные и не только блага :)
24. user658699_heinrich2906 30.06.18 14:55 Сейчас в теме
Подскажите:
1. Код обработки открытый?
2. Реализована ли возможность формировать многостраничную гугл таблицу?
3. Можно ли из обработки прописать пользователей (гугл), которым будет доступна созданная гугл таблица?
25. Ko1t 267 30.06.18 23:07 Сейчас в теме
(24)
1. Код обработки открытый?

> Да
2. Реализована ли возможность формировать многостраничную гугл таблицу?

> Нет
3. Можно ли из обработки прописать пользователей (гугл), которым будет доступна созданная гугл таблица?

> Нет
p.s.
Все что может обработка изложено в описании со скриншотами :)
26. leobrn 417 06.07.18 14:21 Сейчас в теме
Если считывать публичную таблицу обязательно ли нужны токены доступа?
28. Ko1t 267 09.07.18 12:05 Сейчас в теме
(26)
Данная обработка при каждого обращении к данным передает в заголовке токен доступа.

Какая авторизация нужна для чтения публичных и приватных данных, а также ответ на ваш вопрос можно получить по ссылке: https://developers.google.com/sheets/api/guides/authorizing
30. Ko1t 267 09.07.18 12:24 Сейчас в теме
(26)
Данная обработка при каждом обращении к данным передает токен доступа.
Я не проверял как будет происходить доступ к публичным данным, но почитать об этом можно по ссылке: https://developers.google.com/sheets/api/guides/authorizing
31. torch 105 02.10.18 17:05 Сейчас в теме
Запустил Вашу обработку. Не могу получить листы моей гугл-таблицы. Ошибка:
{
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"status": "PERMISSION_DENIED"
}
}
Судя по описанию жалуется на способ идентификации. Непонятно... Может сталкивались с этой ошибкой?
32. Ko1t 267 02.10.18 18:17 Сейчас в теме
(31)
Добрый день, судя по ошибке есть какая-то проблема с токеном доступа который вы используете.
Используемый вами токен доступа не позволяет обращаться к запрашиваемым данным.
Я лично с такой ошибкой не сталкивался.
Моя рекомендация будет, заново проделать настройки как это написано в разделе "Инструкция/Авторизация в google", сверяясь с приведенными скринами экрана.
35. kassbar 134 01.03.19 20:58 Сейчас в теме
(31) "Request had insufficient authentication scopes" не задан ни один параметр scopes очевидно.
33. torch 105 18.11.18 18:05 Сейчас в теме
Господа, еще один трабл. Я при каждом изменении остатков обновляю гугл-таблицу, но с определенного момента у клиентов в гугл-таблице перестали обновляться данные. У одного из них я почистил кеш и куки - все заработало. Но это не выход - клиентов много и всем объяснять нет возможности, писать инструкции без толку. Предполагаю что надо как-то снести все версии изменений гугл-таблицы и оставить только последнюю, актуальную версию, но не могу найти где это делается. Может кто-то сталкивался с такой проблемой?
34. Ko1t 267 24.11.18 11:59 Сейчас в теме
(33)
Добрый день. Я пробовал искать решения по очистке истории...
В основном сталкивался с такими ответами:
https://productforums.google.com/forum/#!topic/docs/h_NWUzDL3Po
Т.е. удалить историю нельзя программными способами.
История очищается только если делать копию файла.
36. kassbar 134 01.03.19 21:01 Сейчас в теме
у кого есть рабочий пример как получать данные не диапазонами, а по отбору на значения в колонках ?
например, получить все строки со значением в колонке А1 = 1.

можно ли получить например только колонки А и С ?
40. Ko1t 267 03.03.19 21:53 Сейчас в теме
(36)
у кого есть рабочий пример как получать данные не диапазонами, а по отбору на значения в колонках ?
например, получить все строки со значением в колонке А1 = 1.

Судя повсему используя текущий API это не получиться сделать. Доступны только следующие возможности фильтации при запросе данных:
https://developers.google.com/sheets/api/reference/rest/v4/DataFilter
Что-то похожее можно сделать для данных отображаемых при просмотре используя Filters
Возможно если программно выполнить SetBasicFilterRequest и затем чтение из таблицы, будут прочитанных отфильтрованные данные... надо пробовать.

можно ли получить например только колонки А и С ?

https://developers.google.com/sheets/api/guides/concepts#a1_notation
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchGetByDataFilter
Судя по всему, что используя batchGetByDataFilter, можно задать отдельные dataFilters[], и получить только колонки А и С
41. kassbar 134 04.03.19 00:13 Сейчас в теме
(40)
Возможно если программно выполнить SetBasicFilterRequest и затем чтение из таблицы, будут прочитанных отфильтрованные данные... надо пробовать.

пробовал, через batchupdate ставил фильтры - не работает, возвращает всю таблицу.
Как-то очень печально такое от гугла видеть.

Пришлось через запросы "select..." к таблице получать нужные данные
"https://docs.google.com/spreadsheets/d/id_таблицы/gviz/tq?tqx=out:html&tq=select*"
выгрузить в csv: "tqx=out:csv"

работает только для опубликованных "по ссылке" таблиц
37. kassbar 134 01.03.19 22:58 Сейчас в теме
а для чего такая сложная схема с идентификацией ? можно через постоянный API-ключ получать доступ:
https://sheets.googleapis.com/v4/spreadsheets/idтаблицы/?key=АпиКлюч&includeGridData=true
38. Ko1t 267 03.03.19 16:43 Сейчас в теме
(37)
а для чего такая сложная схема с идентификацией ?

В рамках данной обработки реализован рекомендуемый Гуглом метод аутентификации OAuth 2.0 описанный по ссылке: https://developers.google.com/identity/protocols/OAuth2
можно через постоянный API-ключ получать доступ

Я не уверен что правильно понял, что вы имеете ввиду, но мне было бы интересно узнать подробнее.
Сбросьте пжл. ссылки где можно изучить детали про такой способ подключения? Может быть он более простой, но менее безопасный?
39. kassbar 134 03.03.19 19:22 Сейчас в теме
(38)
Я не уверен что правильно понял, что вы имеете ввиду

я же написал запрос, которым можно получить доступ к опубликованной по ссылке таблице, зная ее id и свой apikey.
вводите в этом запросе id таблицы, api-ключ гугла и получаете ее в json.
Лично мне не требовалось вносить в нее изменения, только читать данные, поэтому я дальше не копал.
42. kassbar 134 04.03.19 17:57 Сейчас в теме
Еще вопрос, получалось ли у кого-то выгрузить не публичный файл типа "таблица Гугл" (доступ открыт пользователю, публичной ссылки нет) через API GoogleDrive ?
У меня запросы типа
Новый HTTPЗапрос("drive/v3/files/" +idТаблицы+"/export/?mimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
всегда возвращает ошибку "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup".
Подключил API Google+ и API Google Drive с областью действия "https://www.googleapis.com/auth/drive"
43. simy4 21 16.03.19 11:32 Сейчас в теме
Укажите пожалуйста в вашей публикации, что для функционирования обработки требуется наличие БСП. Для меня данное требование оказалось сюрпризом. Неприятным.
44. Ko1t 267 16.03.19 14:47 Сейчас в теме
(43) Добрый день.
Да, действительно в обработке использовано 3 функции, которые входят в состав БСП:
ОбщегоНазначенияКлиентСервер.СообщитьПользователю()
СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку()
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку()
Как мне кажется, основные сценарии использования данной обработки предполагают наличие данных функций в составе конфигурации, из которой данная обработка запускается.
В противном случае, мне кажеться исправление проблемы занимает относительно мало времени.
При этом внедрение БСП не требуетсся, а требуется просто замена в коде конфигураций всех вызывов обозначенных функций на свои локальные функции. Понять из названия и передаваемых параметров что делают данные функции, как мне кажется не составляет труда.
Но да, я согласен что следует упоминуть в описание обработки данный нюанс, что я и сделаю в ближайшее время.
45. German_Tagil 24 19.03.19 06:13 Сейчас в теме
Добавил в избранное...
меня заинтерисовало - переходим на БП 3.0
на КА 1.1 у меня была допиленная обработка https://infostart.ru/public/66842/
Может кто-то находил подобное на УФ?
46. Ko1t 267 19.03.19 10:58 Сейчас в теме
(45) Добрый день, если я правильно понял что вам надо, то это функционал из БСП
https://its.1c.ru/db/bsp302doc#content:1867:1
5.18 Загрузка данных из файла
47. German_Tagil 24 20.03.19 05:42 Сейчас в теме
Доступ к данному материалу ограничен
48. Mogilnikova 64 20.03.19 16:04 Сейчас в теме
Добавила в избранное. Однажды ненастным днем оно мне пригодится!
49. German_Tagil 24 21.03.19 10:35 Сейчас в теме
(48) угу я точно также поступаю
50. Lera_1c 15 01.08.19 11:08 Сейчас в теме
Очень пригодилось! Все разжевано, благодарю!
51. Ko1t 267 01.08.19 12:12 Сейчас в теме
52. skyboy13 10 06.09.19 17:46 Сейчас в теме
А на автоматическое обновление таблицы в регламентных задачах ее заточить можно?
53. Ko1t 267 08.09.19 11:23 Сейчас в теме
(52) возможно для таких задач лучше подойдет такое решение как по ссылке https://infostart.ru/public/805071/ (хотя я сам лично пока его не изучал досконально)
54. Cthulhu 09.10.19 13:55 Сейчас в теме
(53) не т.е. если оттуда аккуратно "дернуть" блок авторизации и заменить в этом решении - то его можно будет использовать для регламентных заданий - я правильно понимаю?..
55. Ko1t 267 12.10.19 11:07 Сейчас в теме
(54) Для регламентных обработчиков, в теории (я не пробовал), я полагаю также можно использовать и OAuth 2.0 (именно его я использую в моей публикации).
Сценарий при этом может быть такой:
1. Интерактивно: Получаем Код доступа (требуется ручной ввод данных)
2. Автоматически: Получаем и сохраняем access_token и refresh_token на основании Кода доступа
3. Автоматически: По расписанию: Выполняем необходимую обработку данных в гугл таблицах, при этом контролируя время жизни access_token.
4. Автоматически: При окончании срока действия: Обновляем access_token используя refresh_token
5. Автоматически: Если что-то пошло не так: Отправляем оповещение на почту ответственному за процесс, чтобы он вмешался интерактивно, и например заново запросил Код доступа.
6. Интерактивно: Если требуется: Переходим к Шаг-1.
56. Cthulhu 12.10.19 11:19 Сейчас в теме
(55) о. т.е. стартовое получение рефреш-токена дает возможность в дальнейшем в любое время (без повторного диалогового логина) программно получать свежий токен и с ним обновлять целевую гугл-таблицу, да? пожалуй, так и бум делать...
а переноса форматирования нет - я правильно понимаю?.. наверное, оно и понятно - там нешуточное ковыряние в api команд подразумевается - поэтому, да?..
и - спасибо огромное, очень толковое решение!
...
57. Ko1t 267 12.10.19 11:26 Сейчас в теме
(56)
о. т.е. стартовое получение рефреш-токена дает возможность в дальнейшем в любое время (без повторного диалогового логина) программно получать свежий токен и с ним обновлять целевую гугл-таблицу, да?

Да. Именно так. Полагаю всё должно заработать!
p.s.
Спасибо за оценку!
58. gdu199 4 26.10.19 18:46 Сейчас в теме
Можно ли сделать запись только определенных ячеек, чтобы не затереть работу, которую выполняют пользователи параллельно вручную?
61. Ko1t 267 11.11.19 20:26 Сейчас в теме
(58) Запись только определенных ячеек сделать можно. По ссылке можно посмотреть примеры как:
https://developers.google.com/sheets/api/samples/writing
59. Cthulhu 02.11.19 13:24 Сейчас в теме
помощи прошу опять.
приклеиваю к скачанному консольку управления доступом к файлу. ну как консольку. список прав получить, у юзера права забрать, юзеру (по указанному емылу) право выдать, права перезаписать (откорректировать)...
список получаю без проблем (GET-ом)
код:

Удаляю тоже без проблем (по ID, полученному в соотв.параметпе permissions соотв.пользователя, см.предыдущий фрагмент):
код

------
А вот с созданием - лбом об стену...
простынка

и хоть убейся:
ответ

прим.: в scope уже добавил https://www.googleapis.com/auth/drive т.к. без него не работает permissions в goole drive api v3
60. Cthulhu 08.11.19 13:42 Сейчас в теме
(59) спасибо всем, решено добавлением в заголовок описания:
Заголовки.Вставить( "Content-Type", "application/json" );
Ko1t; starik-2005; +2 Ответить
62. Cthulhu 13.11.19 14:26 Сейчас в теме
(60) прим.: и - кстати, во все заголовки запросов, в которых тело json-истое - впиндюрил явно этот параметр, дабы неповадно было исполнителю путаться из-за своих перекосов в распознавании типов по формату...
63. dityaanime 05.12.19 22:28 Сейчас в теме
Очень годная статья!
Автор молодец!
64. Ko1t 267 06.12.19 18:22 Сейчас в теме
66. request4t 16.03.20 15:07 Сейчас в теме
Здравствуйте.

Скачал вашу обработку.

В конфигураторе ругается на:
Функция ПолучитьIDФайлаGoogleDocs(URLGoogleTable) Экспорт
Процедура аили функция не определена (СтрНайти)

При открытии ругается:
Переменная не определена (НаправлениеПоиска)
67. Ko1t 267 18.03.20 23:38 Сейчас в теме
(66) Доброго времени суток, на какой версии платформы вы открываете обработку?
68. request4t 19.03.20 16:09 Сейчас в теме
69. Ko1t 267 19.03.20 18:41 Сейчас в теме
(68)
Добрый день, я ещё раз проверил у себя:
Платформа: 8.3.16.1063, Режим совместимости конфигурации: Версия 8.3.8 - у меня ошибки нет!
Предположу, что вы открываете обработку в конфигурации которая работает в режиме совместимости.
Делаю такой вывод на основании синтаксис помощника:
СтрНайти (StrFind)
Синтаксис:
СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>)
...
Использование в версии:
Доступен, начиная с версии 8.3.6 (в режиме совместимости с версией 8.3.6 и последующими).


У вас включен режим совместимости? Если да, с какой версией?
70. Vix 27 07.05.20 22:47 Сейчас в теме
(66)Замените СтрНайти на обычную Найти
71. Ko1t 267 08.05.20 15:44 Сейчас в теме
72. Vix 27 09.05.20 15:14 Сейчас в теме
(71) Скорее всего режим совместимости стоит 8.3.5 и минимум, что можно сделать довольствоваться функцией "Найти", но при условии, что использует СтрНайти, первые два параметра СтрНайти(Строка,ПодстрокаПоиска). По хорошему нужно переходить уже на новую платформу выше 8.3.12, правда стабильную, о стабильных оч. много тем на форуме, и везде найдутся минусы))
73. Vix 27 09.05.20 15:32 Сейчас в теме
Автору плюс, разработка стоящая видимо, думаю в дальнейшем я смогу эту идею применить при хранении и раздачи ключей каждому пользователю, для работы, не с типовой конфигурацией 1С
74. script 227 01.06.20 19:51 Сейчас в теме
Добавьте в описание, что для работы чтения таблицы необходимо дать право Google Sheets API т.е. включить его в проект Google API.
75. Ko1t 267 02.06.20 18:25 Сейчас в теме
(74) Добрый день! Я не уверен на 100 %, но не помню что надо как-то специально "дать право Google Sheets API" в проекте Google API, но допускаю что я могу что-то упустить из вида, так прошло досточно много времени с момента публикации.

Буду вам признателен, если вы укажите точно где и как это право необходимо "дать".

В описании к моей статье есть снимок экрана с запросом на доступ к нужным данным, и по-моему, когда я писал статью и тестировал обработку, не требовалось ничего более кроме как ответить утвердительно на запрос доступа как на картинке по ссылке https://prnt.sc/ssfnfu
76. Артано 677 25.06.20 06:33 Сейчас в теме
Видимо имеется ввиду, что явным образом не написано, что для вашего приложения нужно создать проект или добавить его к существующему
77. TrashMaster 193 10.08.20 20:38 Сейчас в теме
есть косячок в вычислении диапазона - только 676 колонок

&НаСервере
Процедура ИницилизироватьМассивБукв()
	МассивБуквСтолбцов = Новый СписокЗначений;
	МассивБуквСтолбцов.Добавить("A");
	МассивБуквСтолбцов.Добавить("B");
	МассивБуквСтолбцов.Добавить("C");
	МассивБуквСтолбцов.Добавить("D");
	МассивБуквСтолбцов.Добавить("E");
	МассивБуквСтолбцов.Добавить("F");
	МассивБуквСтолбцов.Добавить("G");
	МассивБуквСтолбцов.Добавить("H");
	МассивБуквСтолбцов.Добавить("I");
	МассивБуквСтолбцов.Добавить("J");
	МассивБуквСтолбцов.Добавить("K");
	МассивБуквСтолбцов.Добавить("L");
	МассивБуквСтолбцов.Добавить("M");
	МассивБуквСтолбцов.Добавить("N");
	МассивБуквСтолбцов.Добавить("O");
	МассивБуквСтолбцов.Добавить("P");
	МассивБуквСтолбцов.Добавить("Q");
	МассивБуквСтолбцов.Добавить("R");
	МассивБуквСтолбцов.Добавить("S");
	МассивБуквСтолбцов.Добавить("T");
	МассивБуквСтолбцов.Добавить("U");
	МассивБуквСтолбцов.Добавить("V");
	МассивБуквСтолбцов.Добавить("W");
	МассивБуквСтолбцов.Добавить("X");
	МассивБуквСтолбцов.Добавить("Y");
	МассивБуквСтолбцов.Добавить("Z");
КонецПроцедуры


&НаКлиенте
Функция ПолучитьБуквуПоНомеру(Номер)
	Если Номер <= МассивБуквСтолбцов.Количество() Тогда
		Возврат МассивБуквСтолбцов[Номер-1].Значение;
	КонецЕсли;
	
	//Предполагаем что макс. кол-во столбоц не может быть больше определенного
	КолВоБукв = МассивБуквСтолбцов.Количество(); 
	МаксСтолбцов = КолВоБукв*КолВоБукв; 
	Если Номер > МаксСтолбцов Тогда
		ПоказатьПредупреждение(,"Не предусмотрена работа с таблицами у которых столбцов больше чем: "+МаксСтолбцов);
		Возврат "ZZ";
	КонецЕсли;
	
	НомерПервойБуквы = Цел(Номер/КолВоБукв);
	Смещение = Номер - (НомерПервойБуквы*КолВоБукв);
	
	Буква = ПолучитьБуквуПоНомеру(НомерПервойБуквы);
	Буква = Буква+ПолучитьБуквуПоНомеру(Смещение);
	
	Возврат Буква;
КонецФункции
Показать


исправление

Функция ПолучитьБуквуПоНомеру(НомерКолонки)
	Результат = "";
	Остаток = НомерКолонки;
	пока Остаток > 0 цикл
		Смещение = (Остаток - 1)%26;
		Результат = Символ(65 + Смещение) + Результат;
		Остаток = Цел((Остаток - Смещение)/26);
	конеццикла;
	Возврат Результат;
КонецФункции
Показать
78. request4t 06.10.20 14:20 Сейчас в теме
здравствуйте.

при получении токена ошибка

{
"error": "invalid_grant",
"error_description": "Bad Request"
}

кто может помочь?
79. Ko1t 267 15.11.20 21:42 Сейчас в теме
(78)
"error": "invalid_grant",
"error_description": "Bad Request"

доброго времени суток! не знаю актуально ли ещё...
Если попросить помощи у гугл, то получим следующий ответ:
https://groups.google.com/g/google-doubleclick-for-advertisers-api/c/FZo-6ZZGeyQ?pli=1
There are 2 common problems that cause invalid_grant errors:

1. Your server's clock is out of sync with NTP
2. You've exceeded the refresh token limit
80. request4t 18.11.20 16:32 Сейчас в теме
(79)
здравствуйте. уже нет, но спасибо за ответ.
81. Gold_Hunter 6 20.11.20 19:09 Сейчас в теме
Добрый день!
При попытке запросить код доступа, возникает такая ошибка:

{ВнешняяОбработка.ЧтениеЗаписьИЗGoogleSheet.Форма.Форма.Форма(188)}: Ошибка при вызове метода контекста (ПерейтиПоНавигационнойСсылке)
ПерейтиПоНавигационнойСсылке(URL);
по причине:
Не удалось перейти по ссылке "https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=515731690390-vh9ccjrl4pj9qssbec4042ce1ttn02uo.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&access_type=offline&scope=https://www.googleapis.com/auth/drive.readonly+https://www.googleapis.com/auth/drive.file+https://www.googleapis.com/auth/spreadsheets" по причине: Неверно задана навигационная ссылка.
Оставьте свое сообщение

См. также

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

WEB v8 Строительство Абонемент ($m)

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

1 стартмани

25.11.2020    996    0    kandr    0    

Чатбот WhatsApp

WEB v8 1cv8.cf Абонемент ($m)

Внешняя обработка для написания чат-бота WhatsApp

1 стартмани

21.10.2020    3494    14    ripreal1    14    

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

WEB Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.10.2020    4321    1    hpi    14    

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

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

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

1 стартмани

29.06.2020    7403    3    shmalevoz    19    

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

Обработка документов WEB v8 v8::УФ 1cv8.cf Россия БУ УУ Абонемент ($m)

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

4 стартмани

30.12.2019    8168    9    capitan    11    

Улучшенная обработка универсального обмена данными в формате XML (УФ)

Универсальные обработки Внешние источники данных Обмен через XML v8 v8::УФ 1cv8.cf Абонемент ($m)

Улучшенная обработка "Универсальный обмен данными" с полноценными возможностями СКД для выборки данных (не только для отборов).

1 стартмани

23.06.2020    4859    63    Lem0n    1    

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

WEB v8 1cv8.cf Россия УУ Абонемент ($m)

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

1 стартмани

15.02.2020    11374    44    terrorion    12    

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

WEB Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

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

10 стартмани

05.12.2019    10078    29    zykov_vitaliy    26    

Конвертация данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Промо

Внешние источники данных Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 КА1 ЗУП2.5 УПП1 БГУ Россия БУ Госбюджет Абонемент ($m)

Перенос данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Переносит данные сотрудника, физического лица и начисления за произвольный период

1 стартмани

10.06.2014    32845    38    kns77    81    

Использование хранимых процедур MS SQL Server в 1С

Внешние источники данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.12.2019    11060    4    Dedushka    26    

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

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Работа с Яндекс-картами в 1С (управляемое приложение). Обработка показывает, как можно найти адреса на карте Яндекс, проложить маршрут.

2 стартмани

20.11.2019    12800    122    Denr83    0    

Telegram бот на 1С

WEB v8 1cv8.cf Абонемент ($m)

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    16453    35    budidich    19    

Загрузка данных из М-Аптеки+ в 1С:Бухгалтерия 8 (ред. 3.0) Промо

Внешние источники данных Файловые протоколы обмена, FTP v8 v8::БУ БП3.0 Фармацевтика, аптеки БУ Абонемент ($m)

Обработка для загрузки файлов выгрузки из программы для автоматизации аптек и аптечных сетей М-Аптека+ в 1С:Бухгалтерия 8, редакция 3.0.

11.07.2014    35421    31    1C_MApteka    37    

Получение изображения с IP-камеры

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Получение изображения JPG с IP-камеры в виде двоичных данных. В 1С может применяться для фотографирования объектов.

1 стартмани

10.09.2019    11438    35    sivin-alexey    8    

Согласование задач из Outlook

Внешние источники данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

06.09.2019    8857    12    duhh    17    

Телеграм 1С – почти коробка

Внешние источники данных v8 Абонемент ($m)

Почему это решение называется «почти коробка»? Потому, что это почти коробочное решение. С его помощью, просто добавив подсистему в конфигурацию, уже можно начинать взаимодействовать с мессенджером Telegram.

10 стартмани

20.08.2019    14046    25    zfilin    66    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    27339    40    Ditron    83    

Работа с релизами 1С и договорами ИТС

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    14839    44    RocKeR_13    15    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

3 стартмани

04.05.2019    19941    76    MarkoSokolov    48    

1С и WebKit. Вариант взаимодействия

WEB v8 1cv8.cf Абонемент ($m)

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменился с COMОбъект на ВнешнийОбъект. Также изменилась DOM модель документа, доступная через это свойство.

2 стартмани

23.02.2019    30522    78    mi1man    57    

Менеджер загрузки данных из весов с печатью этикеток Промо

Внешние источники данных Весы Учет ТМЦ Учет ТМЦ v8 УТ10 УПП1 Абонемент ($m)

Программное обеспечение "Менеджер загрузки данных из весов с печатью этикеток" предназначено для автоматического получения данных по сети Ethernet из весов МАССА-К моделей ВПМ и ТВ_Р3 (модификация MF) в режиме On-Line.

1 стартмани

20.12.2011    22978    4    hrip    10    

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet

WEB v8 1cv8.cf Транспорт, автопарки, такси Абонемент ($m)

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?". В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

2 стартмани

12.02.2019    26685    104    Ditron    94    

Яндекс карты 2.1. Построение маршрута. Передача длины маршрута в реквизит формы

WEB v8 1cv8.cf Абонемент ($m)

Пригодится как пример использования Яндекс карты 2.1 для построения маршрута.

1 стартмани

24.01.2019    14539    77    John_d    32    

Проверка VAT номеров

WEB v8 1cv8.cf Абонемент ($m)

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    13033    2    wtlz    1    

Трекинг номеров РПО в Почте России Промо

WEB Оптовая торговля Оптовая торговля v8 Оптовая торговля, дистрибуция, логистика Абонемент ($m)

Относительно недавно Почта России стандартизировала и описала сервисы получения информации о регистрируемом почтовом отправлении (РПО). Представляю вашему вниманию конфигурацию-обертку над сервисами Почты России. Она позволяет просто (http-запросы) и без изменений конфигурации подключить сервисы отслеживания к своим информационным системам.

2 стартмани

28.03.2016    27445    11    Smaylukk    3    

Автоматическое создание XSD-файла по выбранным типам объектов конфигурации для загрузки в XDTO пакет в 1С 8.3

WEB v8::УФ 1cv8.cf Россия Абонемент ($m)

Данная обработка позволяет создать XSD-файл по выбранным реквизитам Справочника, Документа, Плана видов характеристик и даже Плана обмена. В обработке есть возможность выбрать, какие стандартные и обычные реквизиты, а также реквизиты табличных частей попадут в XSD-файл. Также есть опциональная возможность автоматически добавить в XSD-файл все ссылочные типы, находящиеся в реквизитах (рекурсивным обходом).

1 стартмани

22.10.2018    12953    69    q4a    7    

Загрузка чека онлайн-касс (загрузка товаров из чека)

Внешние источники данных WEB Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 1cv8.cf Абонемент ($m)

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) из почтового сообщения, отправленного из приложения ФНС проверка чеков.

2 стартмани

08.10.2018    21771    39    echo77    73    

Мониторинг показателей систем 1С 8.3 с помощью Zabbix

Внешние источники данных Zabbix v8 1cv8.cf Абонемент ($m)

Опишу свой опыт мониторинга наших систем 1С с помощью Zabbix и ту пользу, которую можно извлечить из этого.

1 стартмани

05.10.2018    41654    58    akimych    48    

Работа с картой. Кадастровый учет (Росреестр). Тематические карты Промо

WEB Рабочее место v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка для работы с картами в 1С. Получения изображения с публичной кадастровой карты России, построения тематических карт

5 стартмани

31.08.2017    18832    15    vipchep    0    

Работа с публикациями "Инфостарт"

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    22170    13    RocKeR_13    16    

SOAP для чайников

Обмен через XML WEB v8 1cv8.cf Абонемент ($m)

Немножко про SOAP сервис. И пример работы с подключением и получением данных по SOAP за 5 минут.

1 стартмани

05.09.2018    52567    46    dusha0020    18    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    25924    204    RSConsulting    16    

Работа с картами 1С 4 в 1: Яндекс, Google , 2ГИС, OpenStreetMap(OpenLayers) Промо

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

С каждым годом становится все очевидно, что использование онлайн-сервисов намного упрощает жизнь. К сожалению по картографическим сервисам условия пока жестковаты. Но, ориентируясь на будущее, я решил показать возможности API выше указанных сервисов: Инициализация карты Поиск адреса на карте с текстовым представлением Геокодинг Обратная поиск адреса по ее координатами Взаимодействие с картами - прием координат установленного на карте метки Построение маршрутов по указанным точками Кластеризация меток на карте при увеличении масштаба Теперь также поддержка тонкого и веб-клиента

1 стартмани

28.12.2012    107274    1208    Smaylukk    355    

Пример использования REST API Яндекс Диска

WEB v8 1cv8.cf Абонемент ($m)

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    26102    42    MKFreeUser    15    

Обмен файловыми базами данных через Yandex диск

WEB v8 Россия Абонемент ($m)

Выполнение операций обмена с Yandex диском для файловых БД, по протоколу WebDav, в автоматическом или ручном режимах.

1 стартмани

11.06.2018    17586    7    slimper    1    

RabbitMQ + 1С. Быстрый старт

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Внешняя компонента для отправки сообщения из 1С в кролика. Сервис прослушивания и перенаправления сообщений из кролика в http или web-сервис.

1 стартмани

10.06.2018    31530    95    Goleff74    42    

Чтение сжатого gzip, deflate HTTP ответа сервера. Без ВК. Уменьши время загрузки и сократи трафик в 3 раза

WEB v8 1cv8.cf Абонемент ($m)

В платформе 1С:Предприятие не реализовано штатного механизма декодирования ответа веб серверов, в которых присутствует gzip сжатие. Некоторые использовали WinHttpRequest.5.1 , кто-то писал ВК. Друзья, хватит. Вот вам решение.

1 стартмани

08.06.2018    16113    80    Malfarion    16    

Конфигурация для просмотра публичных телеграм каналов

WEB v8 Абонемент ($m)

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

1 стартмани

02.06.2018    18330    11    DO_WHILE_LOOP    7    

Telegram Native API

Разработка внешних компонент Внешние источники данных v8::УФ 1cv8.cf Абонемент ($m)

Взаимодействие с Telegram без Bot API. Только C++ компоненты. Только хардкор.

1 стартмани

24.05.2018    17834    42    Infactum    23    

Интеграция между Atlassian Jira и 1С:Предприятие 8.3 используя Jira REST API (выборка, создание и изменение запросов, чтение, создание и удаление записей о работах, чтение комментариев и другие возможности)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с Atlassian Jira используя Jira REST API. Ключевые функции: выборка запросов с использованием JQL; добавление и изменение запросов; добавление, изменение и удаление записей о работах; чтение комментариев к запросам; сохранение всех ключевых параметров между сеансами работы. Тестирование проводилось на платформе 1С (8.3.11.2954) совместно с JIRA Server platform (7.3.7)

1 стартмани

24.04.2018    33529    185    Ko1t    82    

Простая и пошаговая интеграция Яндекс-Алисы и 1С

WEB v8 Абонемент ($m)

Интеграция Алисы и 1С через http сервис на платформе 8.3.9. Используем виртуальный сервер, сертификат от letsencrypt, и делаем простые запросы к базе из Алисы.

1 стартмани

09.04.2018    23301    19    kiv1c    35    

Оповещения из ЗУП и ERP в TELEGRAM

Внешние источники данных v8 ERP2 ЗУП3.x Абонемент ($m)

Начитался статей про интеграцию 1С -> Telegram, решил аккумулировать опыт и попробовать сделать какую-нибудь полезную обработку. Как результат - внешняя обработка, уведомляющая ответственных сотрудников по расписанию о необходимости оплаты отпусков, материальной помощи, премий. Данные посылаются в виде PDF файла (Отчет, созданный на основании макета). Можно использовать обработку как обучающую. Тестировалось на ERP 2.4.2.139, на ЗУП 3.X тоже должно работать.

1 стартмани

01.03.2018    15028    55    khabibullin.tu    14    

2 в 1: Проверить действительность паспорта / Получить ИНН по паспорту

Обработка справочников WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::УФ ERP2 БП3.0 ЗУП3.x Россия БУ Абонемент ($m)

Представляю вашему вниманию внешнюю обработку заполнения элемента справочника "Физические лица". Обработка выполнена с использованием API (для работы необходим доступ в интернет), содержит полностью открытый код и 2 команды: Проверка документа, удостоверяющего личность, в списке недействительных паспортов и Заполнение ИНН по паспортным данным.

1 стартмани

27.02.2018    23601    150    VladimirElohov    39    

Построение маршрута доставки с расчётом расстояния для любой базы УФ

Универсальные обработки WEB Оптовая торговля Оптовая торговля v8 v8::УФ 1cv8.cf Абонемент ($m)

Графическое изображение маршрутного листа по картам гугл. Работает на любой конфигурации с управляемыми формами. Использует новую версию api google-карт от 13.02.2018 года под IE11.

10 стартмани

24.02.2018    36356    43    KorotkovRV    16    

Сервер push сообщений “Push0k“ 18.05

WEB v8 1cv8.cf Абонемент ($m)

Аналог других “мессенджеров“. Позволяет практически все то же самое, что и другие решения. За исключением смайлов, эмодзи, голосовой и видео связи. Основное отличие от других решений, открыта и доступна для изменения серверная и клиентская часть месенджера. Общедоступной серверной части нет, за серверную часть отвечаете вы сами.

1 стартмани

19.12.2017    18591    12    PloAl    20