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