Как подписать собственное расширение 1С для работы в базовой версии конфигурации?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

Особенности работы расширений в базовых версиях

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

Рассмотрим, как система определяет, можно ли запустить расширение в базовой версии:

  1. Платформа проверяет наличие цифровой подписи у расширения.
  2. Если подпись есть, проверяется ее валидность и принадлежность доверенному издателю (самой фирме «1С» или авторизованному партнеру).
  3. Проверяется файл параметров лицензирования, который «разрешает» работу расширения в условиях ограничений базовой версии.

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

Техническая реализация подписи: ключ -digisign и sign-cfg

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


designer.exe /F "C:\Base\MyBase" /N "Admin" /P "Pass" /SignCfg "C:\Extensions\MyExt.cfe" -digisign "C:\Cert\MyCert.pfx" -digisignpass "CertPassword" -licparams "C:\Lic\Params.xml"

Или, если мы используем режим агента конфигуратора, команда будет выглядеть так:


designer > sign-cfg --result-file "C:\Result\SignedExt.cfe" --type file --file "C:\Source\MyExt.cfe" --digisign "C:\Cert\MyCert.pfx" --licparams "C:\Lic\Params.xml"

Разберем основные параметры этой операции:

Тайна файла параметров лицензирования

Проанализируем ситуацию с файлом параметров лицензирования (licensing parameters file). Многие разработчики ошибочно полагают, что это обычный XML-файл, который можно создать самостоятельно. На самом деле, этот файл является ключевым звеном в системе защиты 1С.

Файл параметров лицензирования генерируется исключительно специалистами компании «1С» для конкретных программных продуктов и конкретных партнеров-разработчиков. Он содержит:

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

Почему «самоделки» не работают в базовой БП

Выясним причину, по которой обычный программист не может просто так подписать расширение для клиента с ИП на базовой версии. Механизм подписи был введен не для защиты интеллектуальной собственности (кода), а как средство контроля лицензионной чистоты. Базовые версии стоят значительно дешевле версий ПРОФ именно из-за ограничений на кастомизацию.

Если бы любой разработчик мог подписывать расширения, разница между Базовой и ПРОФ версиями практически стерлась бы, что противоречит маркетинговой политике правообладателя. Таким образом, «1С» оставила только три легальных пути использования расширений в базовых версиях:

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

Обходные пути и их последствия

В ходе дискуссии был упомянут один важный нюанс: расширения «вдруг» начинают работать в базовой конфигурации, если на компьютере обнаружена лицензия версии ПРОФ или КОРП. Рассмотрим, почему это происходит.

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

Итоги и рекомендации

Подводя итог нашему анализу, можно сделать следующие выводы:

1. Самостоятельное подписание расширения для работы в базовой версии 1С обычным разработчиком невозможно без получения специального файла параметров лицензирования от фирмы «1С».

2. Использование ключа -digisign без авторизованного файла параметров позволит вам поставить цифровую подпись на расширение (что полезно для проверки авторства или целостности), но не даст прав на обход ограничений базовой версии.

3. Если клиенту на базовой версии критически необходима доработка, у вас есть три пути:

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

← На главную