Интеграция 1С с Google Таблицами: Надежная выгрузка через сервисный аккаунт

06.11.25

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

Представлен комплект для интеграции 1С и Google Таблиц, использующий безопасный сервисный аккаунт Google. Обработка включает два независимых механизма получения токена доступа на выбор — через нативный код 1С (не требует внешних файлов, работает на любой ОС) и через внешнее консольное приложение (.exe). Разработка демонстрирует, как реализовать оба подхода, позволяя программистам наглядно сравнить их и выбрать оптимальный для дальнейшей самостоятельной разработки.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Интеграция 1С с Google Таблицами: Надежная выгрузка через сервисный аккаунт
.rar 15,84Mb
2 4 550 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Комплект из обработки 1С и консольного приложения, который демонстрирует два способа интеграции 1С с Google Таблицами с помощью сервисного аккаунта Google. Пример реализует выгрузку заказов покупателей из 1С ERP в конкретную Google Таблицу.

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

Особенности и режимы работы

Обработка поддерживает два независимых режима получения токена доступа. Выбор осуществляется прямо в форме.

  1. Нативный режим (встроенный в 1С)

    • Максимальная универсальность: Работает полностью на встроенных механизмах 1С (HTTP-соединения, криптография).
    • Кроссплатформенность: Не зависит от ОС Windows. Будет работать на сервере 1С под управлением Linux.
    • Нет внешних зависимостей: Не требует наличия и прав на запуск внешних файлов (.exe).
  2. Режим с консольным приложением (get_token.exe)

    • Простота и изоляция: Вся логика получения токена вынесена во внешний исполняемый файл.
    • Независимость от версии 1С: Не зависит от изменений во встроенных функциях платформы 1С.
    • Требования: Необходимы права на запуск .exe из 1С и ОС Windows.

Общие особенности для обоих режимов:

  • Аутентификация через сервисный аккаунт: Доступ к Google API выполняется от имени выделенного “робота”, что является ключом к надежной автоматизации.
  • Автоматическое обновление токенов: Система автоматически получает новый токен, когда истекает срок действия старого.
  • Безопасность: Используются токены с коротким сроком действия (1 час).

Ключевые преимущества подхода с сервисным аккаунтом

Вне зависимости от выбранного режима (нативный или консольный), использование сервисного аккаунта имеет принципиальные преимущества перед классическим OAuth 2.0 (через client_id и ручную авторизацию пользователя):

  • Идеально для регламентных заданий. Интеграция не “сломается”, если сотрудник сменит пароль или потеряет доступ. Сервисный аккаунт гарантирует получение токена при каждом запуске, что делает его единственно надежным решением для обменов по расписанию.
  • Полностью автономная аутентификация. Не требуется участие пользователя, открытие браузера или ручное копирование “кодов доступа”.
  • Повышенная безопасность. Доступ предоставляется не ко всему Google Диску, а только к конкретным таблицам, которыми вы поделились с сервисным аккаунтом.

Что включено в поставку

  1. Файл обработки 1С: Выгрузка заказов ЕРП Инфостарт.epf
  2. Консольное приложение: get_token.exe (для второго режима)
  3. Файл настроек: config.json (для второго режима)
  4. Документация: подробная инструкция по настройке.

Требования к установке

  • Windows 7/10/11 (для режима с консольным приложением)
  • 1С:Предприятие 8.3
  • Права на выполнение консольных приложений в 1С (только для режима с .exe)

Подготовка к установке

  1. Создайте каталог для служебных файлов: C:\1C\GoogleSheetsIntegration\
  2. Поместите в этот каталог папку Secrets с файлом ключа сервисного аккаунта Google. Важно: скачанный с Google Cloud JSON-файл необходимо переименовать в service_account.json, так как нативный режим 1С ищет ключ по этому имени.
  3. Для использования режима с консольным приложением дополнительно разместите в каталоге get_token.exe и config.json.
     

Настройка доступа к Google Таблице

Шаг 1: Создание сервисного аккаунта в Google Cloud

  1. Перейдите в Google Cloud Console
  2. Создайте новый проект или выберите существующий
  3. Включите API Google Sheets для проекта
  4. Создайте новый сервисный аккаунт:
    • Назовите его, например: 1C-Sheets-Bot
    • Назначьте ему роль (можно оставить без роли, права будем давать вручную)
  5. После создания аккаунта, перейдите на вкладку “Ключи”
  6. Нажмите “Добавить ключ” - “Создать новый ключ” - выберите формат JSON
  7. Скачайте JSON-файл - это ключ доступа к Google API

ВАЖНО: JSON-файл - это секретный ключ доступа. Храните его в безопасном месте и не публикуйте.

Шаг 2: Предоставление доступа к Google Таблице

  1. Скопируйте email адрес вашего сервисного аккаунта (вида 1c-sheets-bot@...gserviceaccount.com)
  2. Откройте вашу Google Таблицу
  3. Нажмите “Поделиться” - введите email сервисного аккаунта - выдайте права “Редактор”
  4. Не отправляйте уведомление - “роботу” уведомления не нужны

Шаг 3: Настройка файлов

  1. Поместите скачанный и переименованный JSON-файл в папку Secrets в каталоге интеграции.

  2. (Только для режима с консолью) В файле config.json укажите имя JSON-файла ключа:

    {
      "service_account_file": "ваш-файл-ключ-сервисного-аккаунта.json"
    }

Установка и использование

Установка обработки

  1. Откройте Конфигуратор 1С
  2. Выберите ФайлОткрытьОбработка
  3. Укажите файл Выгрузка заказов ЕРП Инфостарт.epf
  4. Измените при необходимости путь к базовому каталогу в функции ПолучитьБазовыйКаталогСлужебныхФайлов()

Запуск выгрузки

  1. Откройте обработку в 1С в пользовательском режиме
  2. Укажите:
    • Способ получения токена - выберите “1С” (нативный) или “Консоль”.
    • Дата начала и Дата конца периода для выборки заказов.
    • ID Таблицы - ID Google таблицы (берется из URL).
    • Имя листа - имя листа в таблице для записи (по умолчанию “Лист1”).
  3. Нажмите кнопку Выгрузить в google sheets.
  4. Дождитесь сообщения о результате выполнения.

Получение ID Google Таблицы

  1. Откройте вашу Google Таблицу в браузере
  2. Посмотрите на адресную строку: https://docs.google.com/spreadsheets/d/1abc123xyz.../edit
  3. Скопируйте ID (часть между /d/ и /edit).

Решение проблем

Ошибка: “Файл с токеном не создан”

  • (Режим “Консоль”) Проверьте права на запись в каталог C:\1C\GoogleSheetsIntegration\
  • Проверьте, что JSON-файл ключа находится в папке Secrets/
  • (Режим “Консоль”) Проверьте, что имя файла в config.json совпадает с именем файла ключа.

Ошибка: “Таблица не найдена”

  • Проверьте правильность ID Google таблицы.
  • Убедитесь, что сервисный аккаунт имеет доступ к таблице с правами “Редактор”.

Ошибка: “Python скрипт не найден” (или ошибка выполнения .exe)

  • (Режим “Консоль”) Проверьте, что файл get_token.exe находится в нужном каталоге.
  • Убедитесь, что антивирус не блокирует выполнение .exe файла.

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.24.68

Вступайте в нашу телеграмм-группу Инфостарт

Google Таблицы Google Sheets гугл таблицы интеграция API выгрузка сервисный аккаунт гугл шитс OAuth 2.0 токен обмен данными экспорт из 1С 1С в гугл таблицы.

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    22758    33    24    

26

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4891    23    4    

24

WEB-интеграция Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    11235    7    6    

12

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    21419    61    52    

39

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    40426    74    45    

31

WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена по API между конфигурацией 1С:Альфа-Авто 6 и порталом LogicStar. Позволяет работать с несколькими обменами LogicStar разных брендов (CHERY, OMODA, JAECOO, EXEED, TENET) в одной информационной базе в ручном и автоматическом режиме. Поддерживается выгрузка заказ-нарядов, реализаций товаров и товарных остатков.

20400 руб.

13.05.2025    1368    1    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 77 06.11.25 12:42 Сейчас в теме
Использовать Google Таблицы для бизнеса в России не надежно.
В любой момент может перестать работать.
2. ltfriend 10.11.25 15:26 Сейчас в теме
А что помешало получать токен прямо из 1С без костылей в виде exe-файлов?
3. Prepod2003 295 10.11.25 15:38 Сейчас в теме
(2) внешнее .exe — это не «костыль», а нормальный способ вынести сложную криптографию и инфраструктуру Google OAuth за пределы 1С, чтобы избежать трудоёмкого и потенциально ненадёжного переписывания всего функционала на BSL
4. ltfriend 10.11.25 16:13 Сейчас в теме
(3)
Функция ТокенДоступаGoogleAPI(ПутьКСекретномуКлючу, Разрешения, СрокДействия = 3600) Экспорт
	ТокенДоступа = СформироватьТокенДоступаGoogleAPI(ПутьКСекретномуКлючу, Разрешения, СрокДействия);
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	
	ПараметрыЗапроса = СтрШаблон(
		"{""grant_type"":""%1"",""assertion"":""%2""}",
		"urn:ietf:params:oauth:grant-type:jwt-bearer",
		ТокенДоступа
	);
	
	Запрос = Новый HTTPЗапрос("token", Заголовки);
	Запрос.УстановитьТелоИзСтроки(ПараметрыЗапроса);
	
	Соединение = Новый HTTPСоединение(
		"oauth2.googleapis.com", , , , , ,
		Новый ЗащищенноеСоединениеOpenSSL
	);
	Ответ = Соединение.ОтправитьДляОбработки(Запрос);
	
	ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
	Если Не ПустаяСтрока(ТелоОтвета) Тогда
		СтруктураОтвета = ПрочитатьЗначениеJSON(ТелоОтвета);
	Иначе
		СтруктураОтвета = Неопределено;
	КонецЕсли; 
	
	Если Ответ.КодСостояния <> 200 Тогда
		ТекстСообщения = СтрШаблон(
			НСтр("ru='Ошибка при получении ключа доступа Google API. Код Состояния: %1'"),
			Ответ.КодСостояния
		);
		ВызватьИсключение ТекстСообщения;
	ИначеЕсли СтруктураОтвета = Неопределено Тогда
		ВызватьИсключение НСтр("ru='Получен неверный ответ.'");
	КонецЕсли;
	
	Возврат СтруктураОтвета.access_token;
КонецФункции

Функция СформироватьТокенДоступаGoogleAPI(ПутьКСекретномуКлючу, Разрешения, СрокДействия)
	СекретныйКлюч = ПрочитатьСекретныйКлючИзФайла(ПутьКСекретномуКлючу);
	ВремяСоздания = ТекущаяДатаСеанса() - '19700101';
	ВремяЖизни = ВремяСоздания + СрокДействия;
	
	Токен = Новый ТокенДоступа;
	Токен.Заголовки.Вставить("alg", "RS256");
	Токен.Заголовки.Вставить("typ", "JWT");
	
	Токен.Эмитент = СекретныйКлюч["client_email"];
	Токен.Получатели.Добавить(СекретныйКлюч["token_uri"]);
	Токен.ВремяСоздания = ВремяСоздания;
	Токен.ВремяЖизни = ВремяЖизни;
	Токен.ПолезнаяНагрузка.Вставить("scope", Разрешения);
	
	Токен.Подписать(АлгоритмПодписиТокенаДоступа.RS256, СекретныйКлюч["private_key"]);
	Возврат Строка(Токен);
КонецФункции

Функция ПрочитатьСекретныйКлючИзФайла(ПутьКСекретномуКлючу)
	ЧтениеТекста = Новый ЧтениеТекста(ПутьКСекретномуКлючу);
	СекретныйКлючСтрокой = ЧтениеТекста.Прочитать();
	ЧтениеТекста.Закрыть();
	Возврат ПрочитатьЗначениеJSON(СекретныйКлючСтрокой);
КонецФункции
Показать
5. Prepod2003 295 10.11.25 16:43 Сейчас в теме
(4) Спасибо за код. Интересный вариант, нужно будет его протестировать, насколько стабильно он будет работать по сравнению с текущим решением.
6. Prepod2003 295 11.11.25 09:03 Сейчас в теме
(4) Возвращаясь к нашему диалогу: реализовал второй, нативный способ получения токена. Теперь в обработке два режима (нативный 1С и консольный). Благодарю за наводку.
7. yavezde 03.12.25 16:16 Сейчас в теме
Подскажите пожалуйста, будет ли работать в КА 1С:Комплексная автоматизация 2 (2.5.22.124)?
8. Prepod2003 295 03.12.25 16:18 Сейчас в теме
(7) будет работать в любой конфигурации
Для отправки сообщения требуется регистрация/авторизация