Комплект из обработки 1С и консольного приложения, который демонстрирует два способа интеграции 1С с Google Таблицами с помощью сервисного аккаунта Google. Пример реализует выгрузку заказов покупателей из 1С ERP в конкретную Google Таблицу.
Благодаря предложению одного из пользователей Инфостарт, в обработку был добавлен второй, нативный способ получения токена напрямую из 1С. Теперь разработка позволяет программистам не только использовать ее как стартовую точку, но и наглядно сравнить два подхода для выбора наиболее подходящего метода аутентификации в своих задачах.
Особенности и режимы работы
Обработка поддерживает два независимых режима получения токена доступа. Выбор осуществляется прямо в форме.
-
Нативный режим (встроенный в 1С)
- Максимальная универсальность: Работает полностью на встроенных механизмах 1С (HTTP-соединения, криптография).
- Кроссплатформенность: Не зависит от ОС Windows. Будет работать на сервере 1С под управлением Linux.
- Нет внешних зависимостей: Не требует наличия и прав на запуск внешних файлов (
.exe).
-
Режим с консольным приложением (
get_token.exe)- Простота и изоляция: Вся логика получения токена вынесена во внешний исполняемый файл.
- Независимость от версии 1С: Не зависит от изменений во встроенных функциях платформы 1С.
- Требования: Необходимы права на запуск
.exeиз 1С и ОС Windows.
Общие особенности для обоих режимов:
- Аутентификация через сервисный аккаунт: Доступ к Google API выполняется от имени выделенного “робота”, что является ключом к надежной автоматизации.
- Автоматическое обновление токенов: Система автоматически получает новый токен, когда истекает срок действия старого.
- Безопасность: Используются токены с коротким сроком действия (1 час).
Ключевые преимущества подхода с сервисным аккаунтом
Вне зависимости от выбранного режима (нативный или консольный), использование сервисного аккаунта имеет принципиальные преимущества перед классическим OAuth 2.0 (через client_id и ручную авторизацию пользователя):
- Идеально для регламентных заданий. Интеграция не “сломается”, если сотрудник сменит пароль или потеряет доступ. Сервисный аккаунт гарантирует получение токена при каждом запуске, что делает его единственно надежным решением для обменов по расписанию.
- Полностью автономная аутентификация. Не требуется участие пользователя, открытие браузера или ручное копирование “кодов доступа”.
- Повышенная безопасность. Доступ предоставляется не ко всему Google Диску, а только к конкретным таблицам, которыми вы поделились с сервисным аккаунтом.
Что включено в поставку
- Файл обработки 1С:
Выгрузка заказов ЕРП Инфостарт.epf - Консольное приложение:
get_token.exe(для второго режима) - Файл настроек:
config.json(для второго режима) - Документация: подробная инструкция по настройке.
Требования к установке
- Windows 7/10/11 (для режима с консольным приложением)
- 1С:Предприятие 8.3
- Права на выполнение консольных приложений в 1С (только для режима с
.exe)
Подготовка к установке
- Создайте каталог для служебных файлов:
C:\1C\GoogleSheetsIntegration\

- Поместите в этот каталог папку
Secretsс файлом ключа сервисного аккаунта Google. Важно: скачанный с Google Cloud JSON-файл необходимо переименовать вservice_account.json, так как нативный режим 1С ищет ключ по этому имени.

- Для использования режима с консольным приложением дополнительно разместите в каталоге
get_token.exeиconfig.json.
Настройка доступа к Google Таблице
Шаг 1: Создание сервисного аккаунта в Google Cloud
- Перейдите в Google Cloud Console
- Создайте новый проект или выберите существующий
- Включите API Google Sheets для проекта
- Создайте новый сервисный аккаунт:
- Назовите его, например:
1C-Sheets-Bot - Назначьте ему роль (можно оставить без роли, права будем давать вручную)
- Назовите его, например:
- После создания аккаунта, перейдите на вкладку “Ключи”
- Нажмите “Добавить ключ” - “Создать новый ключ” - выберите формат JSON
- Скачайте JSON-файл - это ключ доступа к Google API
ВАЖНО: JSON-файл - это секретный ключ доступа. Храните его в безопасном месте и не публикуйте.
Шаг 2: Предоставление доступа к Google Таблице
- Скопируйте email адрес вашего сервисного аккаунта (вида
1c-sheets-bot@...gserviceaccount.com) - Откройте вашу Google Таблицу
- Нажмите “Поделиться” - введите email сервисного аккаунта - выдайте права “Редактор”
- Не отправляйте уведомление - “роботу” уведомления не нужны
Шаг 3: Настройка файлов
-
Поместите скачанный и переименованный JSON-файл в папку
Secretsв каталоге интеграции. -
(Только для режима с консолью) В файле
config.jsonукажите имя JSON-файла ключа:{ "service_account_file": "ваш-файл-ключ-сервисного-аккаунта.json" }
Установка и использование
Установка обработки
- Откройте Конфигуратор 1С
- Выберите Файл - Открыть - Обработка
- Укажите файл
Выгрузка заказов ЕРП Инфостарт.epf - Измените при необходимости путь к базовому каталогу в функции
ПолучитьБазовыйКаталогСлужебныхФайлов()
Запуск выгрузки
- Откройте обработку в 1С в пользовательском режиме

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

Получение ID Google Таблицы
- Откройте вашу Google Таблицу в браузере
- Посмотрите на адресную строку:
https://docs.google.com/spreadsheets/d/1abc123xyz.../edit - Скопируйте 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
Вступайте в нашу телеграмм-группу Инфостарт
