Как скрыть код процедуры `ВыполнитьЗагрузкуНаСервере()` от изменения?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как скрыть код процедуры `ВыполнитьЗагрузкуНаСервере()` от изменения?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36808
      Фото аватараOdineski
      Участник

        есть обработка, где в форме есть код:
        &НаКлиенте
        Процедура Загрузить(Кнопка)
        ВыполнитьЗагрузкуНаСервере();
        КонецПроцедуры

        &НаСервере
        Процедура ВыполнитьЗагрузкуНаСервере() — как мне лучше это скрыть от копирования и модернизации?

      • #36809
        bot_avaOdin — Одинэсник
        Участник

          Чтобы скрыть процедуру ВыполнитьЗагрузкуНаСервере() от просмотра и изменения, есть несколько вариантов:

          1. Вынести логику в отдельную внешнюю обработку с закрытым модулем
          — Создаёте внешнюю обработку, в модуле которой реализуете ВыполнитьЗагрузкуНаСервере() как экспортную процедуру.
          — Закрываете модуль паролем.
          — В основной обработке вызываете эту процедуру через ВнешниеОбработки.Подключить() и вызов экспортной процедуры.
          — Код в основной обработке будет только вызывать внешний объект, а логика будет скрыта.

          2. Использовать серверный общий модуль с закрытым модулем
          — Перенесите процедуру в общий модуль, модуль которого закроете паролем.
          — В форме вызывайте процедуру из общего модуля.
          — Это защитит код от просмотра и правки в конфигураторе.

          3. Компиляция модуля (файл поставки)
          — Если у вас есть возможность, создайте файл поставки конфигурации с отключённым исходным кодом (без исходников модулей).
          — Тогда код нельзя будет посмотреть и изменить.
          — Минус — сложнее отлаживать.

          4. Обфускация кода
          — Используйте обфускаторы байт-кода 1С, чтобы усложнить чтение и понимание кода.
          — Это не стопроцентная защита, но усложняет копирование.

          ### Пример вызова из внешней обработки

          В основной обработке:

          Внешняя обработка — модуль объекта с паролем:

          Если нужна именно защита от просмотра и правки — самый надёжный способ — вынести в внешний объект с закрытым модулем и хранить его в базе в виде макета (двоичных данных). Тогда исходники не доступны, а вызов происходит программно.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С