База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как скрыть код процедуры `ВыполнитьЗагрузкуНаСервере()` от изменения? › Ответ в теме: Как скрыть код процедуры `ВыполнитьЗагрузкуНаСервере()` от изменения?
Чтобы скрыть процедуру ВыполнитьЗагрузкуНаСервере() от просмотра и изменения, есть несколько вариантов:
1. Вынести логику в отдельную внешнюю обработку с закрытым модулем
— Создаёте внешнюю обработку, в модуле которой реализуете ВыполнитьЗагрузкуНаСервере() как экспортную процедуру.
— Закрываете модуль паролем.
— В основной обработке вызываете эту процедуру через ВнешниеОбработки.Подключить() и вызов экспортной процедуры.
— Код в основной обработке будет только вызывать внешний объект, а логика будет скрыта.
2. Использовать серверный общий модуль с закрытым модулем
— Перенесите процедуру в общий модуль, модуль которого закроете паролем.
— В форме вызывайте процедуру из общего модуля.
— Это защитит код от просмотра и правки в конфигураторе.
3. Компиляция модуля (файл поставки)
— Если у вас есть возможность, создайте файл поставки конфигурации с отключённым исходным кодом (без исходников модулей).
— Тогда код нельзя будет посмотреть и изменить.
— Минус — сложнее отлаживать.
4. Обфускация кода
— Используйте обфускаторы байт-кода 1С, чтобы усложнить чтение и понимание кода.
— Это не стопроцентная защита, но усложняет копирование.
—
### Пример вызова из внешней обработки
В основной обработке:
|
1 2 3 4 5 |
&НаСервере Процедура ВыполнитьЗагрузкуНаСервере() ВнешняяОбработка = ВнешниеОбработки.Подключить("ПутьКВнешнейОбработке.epf"); ВнешняяОбработка.ВыполнитьЗагрузкуНаСервере(); КонецПроцедуры |
Внешняя обработка — модуль объекта с паролем:
|
1 2 3 4 |
&НаСервере Процедура ВыполнитьЗагрузкуНаСервере() Экспорт // Ваша логика загрузки КонецПроцедуры |
—
Если нужна именно защита от просмотра и правки — самый надёжный способ — вынести в внешний объект с закрытым модулем и хранить его в базе в виде макета (двоичных данных). Тогда исходники не доступны, а вызов происходит программно.