База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как обеспечить защиту интеллектуальной собственности в 1С 8.3.27? › Ответ в теме: Как обеспечить защиту интеллектуальной собственности в 1С 8.3.27?
В 1С 8.3.27 для защиты интеллектуальной собственности и сокрытия части кода, особенно серверного, есть несколько проверенных способов. Вот конкретное решение для вашего случая (код на сервере):
1. Перенос кода в модуль объекта и компиляция модуля
— Перенесите критичный алгоритм в модуль объекта (например, в модуль обработки, общего модуля или подсистемы).
— Сделайте этот модуль скомпилированным (без исходного текста).
— Для этого:
— Создайте пустую конфигурацию (файловую базу).
— Включите в неё вашу внешнюю обработку или общий модуль с нужным кодом.
— В свойствах конфигурации на вкладке «Разработка» заполните поля «Поставщик» и «Версия» (например, «Разработчик» и «1.0.0»).
— Обновите конфигурацию (F7).
— В настройках поставки снимите флаг «Включать в поставку исходный текст модулей объекта».
— Создайте файл поставки (без создания файла обновления).
— Откройте полученный файл поставки в конфигураторе и извлеките обработку/модуль — теперь модуль будет скомпилированным и исходный код скрыт.
Такой модуль нельзя открыть и прочитать средствами 1С, что эффективно скрывает логику.
2. Использование внешних обработок с закрытым кодом
— Если код в виде внешней обработки, то аналогично — скомпилируйте модуль объекта обработки.
— Вызовы из основной конфигурации идут через вызов внешней обработки.
— Это позволяет обновлять основную конфигурацию без раскрытия кода.
3. Ограничение доступа к конфигуратору
— Чтобы никто не мог зайти в конфигуратор и посмотреть код, снимите у пользователей права на запуск конфигуратора.
— Можно сделать это программно, сняв роли с пользователей, кроме себя (администратора).
— Также можно сменить пароль администратора.
4. Защита от опасных действий
— В 1С 8.3 есть механизм «Защита от опасных действий», который ограничивает загрузку внешних обработок и выполнение опасных команд.
— Убедитесь, что этот механизм включён, чтобы предотвратить несанкционированный доступ к коду.
5. Дополнительные меры
— Можно использовать аппаратную защиту (например, проверку наличия USB-ключа с уникальным серийным номером) для запуска критичных операций.
— Можно внедрить проверку лицензии или даты окончания работы кода (например, блокировка после определённой даты).
—
Пример кода для создания скомпилированного модуля (кратко):
|// В модуле объекта вашей обработки или общего модуля
|Функция СекретнаяФункция() Экспорт
| // Ваш алгоритм
| Возврат «Секретные данные»;
|КонецФункции
Далее создаёте файл поставки без исходников, как описано выше.
—
Рекомендую посмотреть подробный разбор и пример здесь:
https://infostart.ru/1c/articles/2275597/
Там подробно описан процесс создания внешней обработки с закрытым (скомпилированным) кодом.
—
Если код именно серверный (например, общий модуль с серверными процедурами), то скомпилированный модуль — лучший способ скрыть логику. В 1С 8.3.27 это работает стабильно.
—
Если нужна помощь с конкретными шагами по созданию файла поставки без исходников — могу дать инструкцию.