Всем привет.
Хочу поделиться простым способом защиты внешней обработки. Это может понадобиться, когда необходимо скрыть алгоритмы работы внешней обработки от посторонних глаз, даже если эти глаза принадлежат разработчикам 1С. Своего рода защита интеллектуальной собственности. Бонусом получаем ускорение работы скомпилированного кода.
Чтобы защитить код внешней обработки достаточно перенести его в модуль обработки, а модуль сделать скомпилированным. Для этого достаточно выполнить простые действия. Приведу пример.
Пример:
Есть внешняя обработка с одной кнопкой, при нажатии которой генерируется суперсекретный ключ и выводится на экран. Нужно надежно скрыть механизм генерации ключа.
Обработка
Код модуля формы обработки
Решение:
- Переносим алгоритм генерации в функцию модуля объекта, не забыв сделать экспортной
- В модуле формы дорабатываем код серверной функции
- Осталось «зашифровать» код модуля объекта, чтобы скрыть алгоритм генерации. Для этого создаем пустую базу (можно файловую) и встраиваем нашу внешнюю обработку.
- В свойствах конфигурации пустой базы на закладке «Разработка» заполняем поля «Поставщик» и «Версия» любыми значениями, например «Разработчик» и «1.1.1.1» Обновляем конфигурацию (F7).
- В настройках поставки снимаем флаг «Включать в поставку исходный текст модулей объекта»
- Снимаем флаг «Создать файл обновления конфигурации» и создаем файл поставки, нажав Выполнить
- Открываем получившийся файл в конфигураторе и сохраняем внешнюю обработку из дерева открывшейся конфигурации на диск
- Готово. Если теперь открыть обработку в конфигураторе, то модулю объекта будет скомпилированным и, как итог – закрытым.
Причем, такой модуль нельзя декомпилировать средствами 1С.