К статье
Практический материал

Администрирование · 10 мин

Как указать путь к ключу в 1С

Как указать путь к ключу в 1С: настройка путей к ключам электронной подписи, файлам лицензий и ключевым контейнерам. Пошаговые инструкции, примеры кода, типичные ошибки.

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

Общее правило для всех сценариев: путь в 1С указывается либо через настройки в интерфейсе (окна «Администрирование», «Электронная подпись и шифрование», параметры криптопровайдера), либо строкой в коде. Путь должен быть доступен под той учётной записью, от имени которой работает сеанс 1С — иначе программа не найдёт файл даже при корректно прописанном адресе.

Ниже разобраны все основные сценарии: от указания пути к контейнеру закрытого ключа ЭП до записи путей в коде с учётом разделителей Windows и Linux, а также проверка результата и типичные ошибки.

Определите, о каком ключе идёт речь

Прежде чем что-то настраивать, ответьте на вопрос: какой именно ключ нужно указать? От этого зависит и место настройки, и формат пути, и инструменты проверки.

  • Закрытый ключ электронной подписи — хранится в контейнере (на токене, в реестре или в папке на диске), доступ идёт через криптопровайдер (КриптоПро CSP, ViPNet CSP). Путь к нему в 1С не прописывается напрямую — выбирается сертификат, связанный с контейнером.
  • Файл программной лицензии 1С — файл с расширением .lic, который платформа ищет в стандартных каталогах. Путь можно дополнительно указать через параметры запуска или конфигурационный файл.
  • Ключевой файл стороннего ПО — например, файл ключа для внешней компоненты или обмена. Путь задаётся в настройках обработки или в коде.
  • Сетевой ключ HASP — путь к серверу лицензий задаётся в файле nethasp.ini, а не внутри 1С.

Как указать путь к ключу электронной подписи

Для подписания документов в типовых конфигурациях (1С:Бухгалтерия, 1С:Документооборот, 1С:ЗУП) ключ ЭП подключается через сертификат. Откройте раздел «Администрирование» → «Обмен электронными документами» → «Электронная подпись и шифрование» (в разных конфигурациях названия слегка отличаются) и включите использование электронной подписи.

Далее добавьте программу криптографии: укажите тип (например, «КриптоПро CSP»), имя и путь к модулям, если программа не определилась автоматически. Обычно 1С сама находит установленный криптопровайдер в системе, и вручную путь требуется только при нестандартной установке.

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

Подключение ключа ЭП в типовой конфигурации
  1. 1
    Убедитесь, что криптопровайдер установлен и лицензия на него активна
  2. 2
    Установите сертификат в хранилище через криптопровайдер или оснастку Windows
  3. 3
    В 1С включите электронную подпись в настройках администрирования
  4. 4
    Добавьте программу криптографии, если она не определилась автоматически
  5. 5
    Добавьте сертификат из списка и проверьте подписание тестового документа

Если ключ на токене (Рутокен, eToken)

Контейнер на токене определяется криптопровайдером автоматически при подключённом устройстве и установленных драйверах. В 1С дополнительных путей указывать не нужно: программа обратится к криптопровайдеру, тот — к токену. Проверьте, что токен виден в панели управления криптопровайдера и носитель не требует ввода PIN-кода до начала сеанса подписания.

Как указать путь к файлу лицензии 1С

Программные лицензии платформы хранятся в файлах с расширением .lic. Платформа ищет их в стандартных каталогах: в папке conf каталога установки, в каталоге данных приложения пользователя и в общем каталоге «C:\ProgramData\1C\licenses» (для Windows). Если лицензию активировали штатно, вручную путь указывать не требуется.

Когда файл лицензии лежит в нестандартном месте, путь задают через параметр командной строки запуска или конфигурационный файл. Например, для сервера 1С местоположение лицензий можно задать параметрами агента сервера, а для тонкого клиента — параметром запуска. Точный синтаксис зависит от версии платформы, поэтому сверяйтесь с документацией к установленному релизу.

text
C:\Program Files\1cv8\<версия>\bin\1cv8.exe DESIGNER /F"D:\Bases\Trade" /UseHwLicenses+

Обратите внимание: параметр /UseHwLicenses управляет поиском аппаратных ключей, а не файловых лицензий. Для файлов .lic корректнее размещать их в стандартном каталоге, чем изобретать собственные пути — это снижает риск потери лицензии при обновлении платформы.

Как задать путь к ключевому файлу в коде 1С

Если внешняя обработка, компонента или обмен требуют файл ключа, путь обычно передаётся строкой. Во встроенном языке путь записывают как обычную строку, при этом важно помнить о разделителях каталогов.

ПутьККлючу = "D:\Keys\license.key";

Файл = Новый Файл(ПутьККлючу);

Если НЕ Файл.Существует() Тогда

Сообщить("Файл ключа не найден: " + ПутьККлючу);

КонецЕсли;

Для кроссплатформенной работы (Windows и Linux-сервер) используйте функцию объединения частей пути или проверяйте тип платформы: в Linux разделитель — прямая косая черта, и жёстко прописанный «D:\» приведёт к ошибке. Хорошая практика — хранить путь в константе или параметре настройки, а не зашивать в код.

Путь к сетевому ресурсу

Сетевые пути указывайте в формате UNC (\\Server\Share\key.lic), а не через подключённый сетевой диск. Буква диска существует только в сессии конкретного пользователя, а служба сервера 1С работает под своей учётной записью и подключённых дисков не видит. Убедитесь, что у учётной записи службы есть права чтения на сетевую папку.

Как указать путь к сетевому ключу HASP

Аппаратные ключи защиты 1С (HASP) ищутся не через настройки конфигурации, а через файл nethasp.ini, который размещается в каталоге conf платформы или рядом с исполняемым файлом. В нём задаётся адрес сервера лицензий, где работает менеджер лицензий HASP.

[NH_COMMON]

NH_IPX = Disabled

NH_NETBIOS = Disabled

NH_TCPIP = Enabled

[NH_TCPIP]

NH_SERVER_ADDR = 192.168.0.10

NH_TCPIP_METHOD = UDP

NH_USE_BROADCAST = Disabled

Такая настройка отключает широковещательный поиск и направляет клиентов строго на указанный сервер — это ускоряет запуск и исключает захват «чужих» лицензий в сегменте сети. После изменения файла перезапустите клиентские сеансы 1С.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить результат

Подписание документа
Норма

Подпись создаётся, сертификат подписанта отображается корректно

Тревожный признак

Ошибка «сертификат не найден» или запрос контейнера, которого нет в системе

Запуск сеанса 1С
Норма

Сеанс стартует без сообщения «не найдена лицензия»

Тревожный признак

Ошибка поиска лицензии при запуске

Чтение ключевого файла в коде
Норма

Файл.Существует() возвращает Истина, операция выполняется

Тревожный признак

Ошибка доступа или «файл не найден» в журнале регистрации

Типичные ошибки
01
Указание пути с буквой сетевого диска для серверного кода — служба сервера не видит подключённые диски пользователя, файл считается отсутствующим
02
Попытка прописать путь к файлу закрытого ключа ЭП вместо выбора сертификата — 1С работает с ключом только через криптопровайдер
03
Жёсткое кодирование пути в процедуре вместо константы — при переносе базы на другой сервер настройка теряется и ошибку трудно найти
04
Игнорирование прав доступа — путь верный, но учётная запись сеанса не имеет права чтения каталога
05
Смешение разделителей пути Windows и Linux в кроссплатформенном коде
Самый частый источник проблем с путями в 1С — не сам путь, а контекст выполнения. Перед отладкой выясните три вещи: где выполняется код (клиент или сервер), под какой учётной записью, и существует ли файл именно в этом контексте. В большинстве случаев этого достаточно, чтобы локализовать проблему.
ПЗ
Практическое замечание
Итог

Что важно запомнить

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

Частые вопросы

Можно ли в 1С указать путь прямо к файлу закрытого ключа ЭП?

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

Почему 1С не видит ключ, хотя путь указан верно?

Чаще всего дело в правах доступа или контексте выполнения. Проверьте, что учётная запись, под которой работает сеанс или служба сервера 1С, имеет право чтения каталога с ключом, и что путь проверен именно с той машины, где выполняется код.

Как перенести путь к ключу при переезде базы на другой сервер?

Если путь хранился в константе или настройке — просто измените значение после переноса. Если путь был зашит в коде, потребуется доработка конфигурации, поэтому заранее выносите все пути в параметры. Также перенесите сами файлы ключей и проверьте права на новом сервере.

Где платформа 1С ищет файлы программных лицензий по умолчанию?

В стандартных каталогах: папке conf каталога установки платформы, каталоге данных приложения пользователя и общем системном каталоге лицензий (для Windows это подкаталог в ProgramData). Точный перечень зависит от версии платформы и операционной системы.

Как указать путь к сетевому ключу HASP, если сервер лицензий в другой подсети?

Отредактируйте файл nethasp.ini на клиентских машинах: включите протокол TCP/IP, укажите IP-адрес сервера лицензий в параметре NH_SERVER_ADDR и отключите широковещательный поиск. После этого клиенты будут обращаться к серверу напрямую независимо от подсети.

Что делать, если после обновления платформы пропал доступ к ключу?

Проверьте, не изменился ли каталог установки и, соответственно, папка conf с файлом nethasp.ini — при установке новой версии настройки старой не копируются автоматически. Для ключей ЭП убедитесь, что криптопровайдер и сертификаты остались на месте, и повторно проверьте программу криптографии в настройках 1С.