Администрирование · 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Убедитесь, что криптопровайдер установлен и лицензия на него активна
- 2Установите сертификат в хранилище через криптопровайдер или оснастку Windows
- 3В 1С включите электронную подпись в настройках администрирования
- 4Добавьте программу криптографии, если она не определилась автоматически
- 5Добавьте сертификат из списка и проверьте подписание тестового документа
Если ключ на токене (Рутокен, eToken)
Контейнер на токене определяется криптопровайдером автоматически при подключённом устройстве и установленных драйверах. В 1С дополнительных путей указывать не нужно: программа обратится к криптопровайдеру, тот — к токену. Проверьте, что токен виден в панели управления криптопровайдера и носитель не требует ввода PIN-кода до начала сеанса подписания.
Как указать путь к файлу лицензии 1С
Программные лицензии платформы хранятся в файлах с расширением .lic. Платформа ищет их в стандартных каталогах: в папке conf каталога установки, в каталоге данных приложения пользователя и в общем каталоге «C:\ProgramData\1C\licenses» (для Windows). Если лицензию активировали штатно, вручную путь указывать не требуется.
Когда файл лицензии лежит в нестандартном месте, путь задают через параметр командной строки запуска или конфигурационный файл. Например, для сервера 1С местоположение лицензий можно задать параметрами агента сервера, а для тонкого клиента — параметром запуска. Точный синтаксис зависит от версии платформы, поэтому сверяйтесь с документацией к установленному релизу.
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С — не сам путь, а контекст выполнения. Перед отладкой выясните три вещи: где выполняется код (клиент или сервер), под какой учётной записью, и существует ли файл именно в этом контексте. В большинстве случаев этого достаточно, чтобы локализовать проблему.
Что важно запомнить
Путь к ключу ЭП не прописывается вручную — выбирается сертификат, связанный с контейнером криптопровайдера. Файлы лицензий лучше размещать в стандартных каталогах платформы. Пути в коде храните в настройках, используйте UNC-формат для сети и всегда учитывайте, под какой учётной записью и на какой стороне выполняется код.
Частые вопросы
Можно ли в 1С указать путь прямо к файлу закрытого ключа ЭП?
Нет. Работа с закрытым ключом идёт только через криптопровайдер: в 1С выбирается сертификат, а программа криптографии сама находит связанный с ним контейнер. Если ключ хранится в виде файлов в папке, эту папку регистрируют как контейнер в настройках криптопровайдера, а не в 1С.
Почему 1С не видит ключ, хотя путь указан верно?
Чаще всего дело в правах доступа или контексте выполнения. Проверьте, что учётная запись, под которой работает сеанс или служба сервера 1С, имеет право чтения каталога с ключом, и что путь проверен именно с той машины, где выполняется код.
Как перенести путь к ключу при переезде базы на другой сервер?
Если путь хранился в константе или настройке — просто измените значение после переноса. Если путь был зашит в коде, потребуется доработка конфигурации, поэтому заранее выносите все пути в параметры. Также перенесите сами файлы ключей и проверьте права на новом сервере.
Где платформа 1С ищет файлы программных лицензий по умолчанию?
В стандартных каталогах: папке conf каталога установки платформы, каталоге данных приложения пользователя и общем системном каталоге лицензий (для Windows это подкаталог в ProgramData). Точный перечень зависит от версии платформы и операционной системы.
Как указать путь к сетевому ключу HASP, если сервер лицензий в другой подсети?
Отредактируйте файл nethasp.ini на клиентских машинах: включите протокол TCP/IP, укажите IP-адрес сервера лицензий в параметре NH_SERVER_ADDR и отключите широковещательный поиск. После этого клиенты будут обращаться к серверу напрямую независимо от подсети.
Что делать, если после обновления платформы пропал доступ к ключу?
Проверьте, не изменился ли каталог установки и, соответственно, папка conf с файлом nethasp.ini — при установке новой версии настройки старой не копируются автоматически. Для ключей ЭП убедитесь, что криптопровайдер и сертификаты остались на месте, и повторно проверьте программу криптографии в настройках 1С.