Администрирование · 11 мин
Токен в 1С: что это и как его использовать
Разбираем, что такое токен в 1С: виды токенов, где они применяются, как получить и использовать токен для API, обмена данными и подключения сервисов.
Запрос «ток 1С» почти всегда означает «токен в 1С» — специальную строку-ключ, которую программа использует для авторизации при обмене данными с внешними сервисами. Токен заменяет логин и пароль: вместо того чтобы хранить учётные данные в коде или настройках, система получает временный или постоянный ключ, по которому сервис определяет, кто обращается и какие права у этого обращения есть.
С токенами сталкиваются в самых разных сценариях: при подключении интернет-магазина к 1С, при настройке обмена с банком или маркетплейсом, при работе через HTTP-сервисы и REST API, при использовании облачных сервисов вроде 1С:Фреш или 1С:Отчётность. Понимание того, что такое токен и как им управлять, помогает быстрее настраивать интеграции и не создавать дыр в безопасности.
Важно сразу разделить два разных смысла. Первый — токен доступа к API и веб-сервисам (технический ключ для интеграций). Второй — аппаратный или программный ключ защиты лицензий 1С (USB-ключ HASP), который иногда тоже называют «токеном». В этой статье речь идёт в основном о токенах доступа, но про лицензионные ключи тоже сказано отдельно.
Что такое токен и зачем он нужен в 1С
Токен — это сгенерированная строка символов, которая подтверждает право на доступ к сервису. Когда 1С обращается, например, к API маркетплейса, она передаёт токен в заголовке запроса. Сервис проверяет токен, определяет, какой компании он принадлежит и какие операции разрешены, и только после этого отдаёт данные или принимает изменения.
Такой подход удобнее и безопаснее пароля по нескольким причинам. Токен можно ограничить по правам: например, выдать ключ только на чтение заказов, без права их менять. Токен можно отозвать в любой момент, не меняя основной пароль учётной записи. И если токен скомпрометирован, ущерб ограничен теми правами, которые ему выданы.
В типовых конфигурациях 1С токены встречаются повсюду: в настройках обмена с сайтом, в подсистеме ЭДО, в подключении к банкам по DirectBank, в интеграциях с CRM и службами доставки. Разработчик, который пишет собственный HTTP-сервис в 1С, тоже обычно реализует проверку токена, чтобы закрыть доступ посторонним.
Какие виды токенов встречаются в работе с 1С
На практике вы столкнётесь с несколькими разновидностями токенов, и важно понимать, чем они отличаются, потому что отличается и порядок работы с ними.
- API-ключ (API key) — постоянный ключ, который выдаётся один раз в личном кабинете сервиса. Действует, пока его не отзовут. Так работают многие маркетплейсы и службы доставки.
- Access token с ограниченным сроком жизни — ключ, который «протухает» через минуты или часы. Для его продления используется refresh token. Так устроен стандарт OAuth 2.0, который применяется во многих облачных сервисах.
- JWT (JSON Web Token) — токен, внутри которого зашифрованы данные о пользователе и сроке действия. Сервер проверяет его подпись без обращения к базе. Часто используется в самописных HTTP-сервисах 1С.
- Лицензионный ключ (USB-токен HASP) — аппаратный ключ защиты платформы 1С. Это отдельная тема: он не передаётся по сети в запросах, а подключается к серверу или компьютеру, где работает 1С.
Сравнение вариантов
Прост в настройке: скопировал и вставил. Минус — при утечке действует, пока его не отзовут вручную.
Безопаснее за счёт короткого срока жизни access token. Сложнее: нужна логика автоматического обновления токена.
Гибкий контроль прав и сроков, но требует корректной реализации проверки подписи на стороне 1С.
Где взять токен для подключения к 1С
Источник токена зависит от того, кто кому предоставляет доступ. Если 1С подключается к внешнему сервису (маркетплейс, банк, сайт), токен выдаёт тот самый сервис. Обычно это делается в личном кабинете: раздел «Интеграции», «API», «Для разработчиков» — там создаётся ключ, который затем вставляется в настройки обмена в 1С.
Если же внешняя система должна обращаться к вашей 1С (например, сайт забирает остатки и цены через HTTP-сервис), токен создаёте вы сами. Типовой подход — сгенерировать длинную случайную строку, сохранить её в базе (в константе, регистре сведений или в справочнике внешних систем) и проверять её в каждом входящем запросе.
- 1В личном кабинете внешнего сервиса создайте API-ключ и задайте ему минимально необходимые права.
- 2Откройте в 1С настройки соответствующего обмена (раздел интеграций или обмена данными).
- 3Вставьте токен в предназначенное для него поле, заполните адрес сервиса и прочие параметры.
- 4Запустите тестовый обмен или проверку соединения и убедитесь, что данные передаются без ошибок авторизации.
- 5Сохраните токен в надёжном месте (менеджер паролей) и зафиксируйте дату выдачи и права ключа.
Токены в типовых конфигурациях
В «1С:Управление торговлей», «1С:ERP» и «1С:Комплексная автоматизация» настройки интеграций обычно собраны в разделе «Администрирование» — «Интеграция» или «Обмен электронными документами». Там же хранятся ключи для ЭДО, обмена с банками и маркетплейсами. Интерфейс отличается между версиями, поэтому точное расположение поля стоит уточнять в документации к вашей конфигурации.
Токены для собственного HTTP-сервиса
При публикации собственного HTTP-сервиса на веб-сервере токен проверяется в коде метода. Типовая схема: клиент передаёт токен в заголовке Authorization, а обработчик 1С сравнивает его со значением, хранящимся в базе. Не храните токен прямо в коде модуля — при обновлении конфигурации или утечке кода ключ уйдёт вместе с ним.
Функция ПроверитьТокен(Запрос)
ТокенИзЗапроса = Запрос.Заголовки.Получить("Authorization");
ОжидаемыйТокен = Константы.ТокенВнешнегоСервиса.Получить();
Возврат ТокенИзЗапроса = "Bearer " + ОжидаемыйТокен;
КонецФункцииКак безопасно хранить и передавать токены
Токен равнозначен паролю: любой, кто его знает, получает доступ с правами этого ключа. Поэтому правила обращения с токенами — это правила обращения с секретами, и нарушать их не стоит даже «на время теста».
Основные принципы: токен не хранится в открытом виде в коде, в письмах и мессенджерах, в общих документах. Передача токена идёт только по HTTPS — по открытому HTTP ключ перехватывается элементарно. Доступ к настройкам обмена в 1С должен быть ограничен ролями: обычному менеджеру незачем видеть ключи интеграций. Для каждого сервиса заводится отдельный токен, чтобы при утечке отозвать только его.
Что делать, если токен не работает
Самая частая ситуация — обмен внезапно перестаёт работать, а в журнале регистрации или логе ошибок виден отказ в авторизации. Диагностику стоит вести последовательно, от простого к сложному.
Сначала проверьте сам токен: не истёк ли срок его действия, не был ли он отозван или перевыпущен в личном кабинете сервиса. Затем убедитесь, что в настройках 1С ключ скопирован полностью — при копировании часто теряются первый или последний символ, а лишний пробел в конце строки делает токен недействительным. Далее проверьте права ключа: сервис мог изменить тариф или набор разрешений, и операция, которая раньше работала, теперь запрещена.
Как проверить результат
Код 200 и ожидаемые данные в ответе
Код 401 или 403 — проблема с токеном или правами
Ключ действителен, дата перевыпуска известна
Токен истёк или отозван в личном кабинете
Сеансы обмена завершаются без ошибок авторизации
Повторяющиеся ошибки доступа в каждом сеансе
Строка совпадает посимвольно, без пробелов по краям
Обрезанный ключ или лишние символы в поле настройки
Если токен в порядке, а обмен не работает, смотрите шире: доступность самого сервиса, сетевые ограничения (файрвол, прокси), корректность адреса API. Изменения на стороне сервиса — новая версия API, смена адреса — тоже типичная причина внезапных отказов.
Как выбрать действие
Аппаратный токен лицензии 1С: отдельный случай
Когда говорят «токен 1С» в контексте «сервер не видит токен», речь часто идёт о USB-ключе защиты HASP, в котором хранится программная лицензия платформы. Это физическое устройство, а не строка для API. Если 1С выдаёт ошибку «не обнаружен ключ защиты программы», проверяют: вставлен ли ключ в порт, установлен ли драйвер ключа (HASP Device Driver / Sentinel), запущен ли менеджер лицензий при сетевом варианте раздачи ключей.
Альтернатива аппаратному ключу — программные лицензии, которые привязываются к параметрам компьютера и активируются пин-кодом. При переносе сервера 1С на другое железо или в виртуальную среду поведение лицензий нужно проверять заранее: аппаратный ключ требует проброса USB, а программная лицензия может «слететь» при существенном изменении конфигурации машины.
Что важно запомнить
Токен в 1С — это ключ доступа для интеграций с внешними сервисами. Получайте его в личном кабинете сервиса или генерируйте сами для своих HTTP-сервисов, выдавайте минимальные права, храните вне кода и отзывайте при малейшем подозрении на утечку. Большинство проблем с обменом решается перевыпуском токена и проверкой его прав.
Частые вопросы о токенах в 1С
Чем токен отличается от логина и пароля?
Логин и пароль открывают полный доступ к учётной записи, включая смену настроек и других паролей. Токен — это производный ключ с ограниченным набором прав, который можно отозвать, не трогая основную учётную запись. Для интеграций всегда предпочтительнее токен.
Где в 1С хранить токен, чтобы он был в безопасности?
Подходящие места — константы, регистры сведений или защищённые настройки обмена, доступ к которым ограничен ролями. Категорически не подходят: код модулей, макеты, текстовые файлы в общем доступе и комментарии в конфигурации.
Что означает ошибка 401 при обмене?
Код 401 означает, что сервис не принял авторизацию: токен отсутствует, истёк, отозван или скопирован с ошибкой. Первое действие — перевыпустить ключ и аккуратно перенести его в настройки, проверив отсутствие лишних пробелов.
Нужно ли регулярно менять токены?
Обязательной ротации нет, но разумно перевыпускать ключи при уходе сотрудника, имевшего к ним доступ, при смене подрядчика-разработчика и после любого инцидента безопасности. Некоторые сервисы ограничивают срок жизни ключей принудительно.
Один токен на несколько баз 1С — это нормально?
Технически возможно, но нежелательно. При утечке или необходимости отозвать ключ придётся перенастраивать все базы сразу, а в логах сервиса будет сложно понять, какая база выполнила конкретную операцию. Лучше выдавать отдельный токен каждой базе и каждой интеграции.
Что делать, если 1С не видит USB-ключ лицензии?
Проверьте, что ключ физически подключён и светодиод на нём горит, переустановите драйвер HASP, при сетевой схеме убедитесь, что менеджер лицензий запущен и доступен по сети. Если ключ вставлен в сервер виртуализации, проверьте проброс USB-устройства в виртуальную машину.