Как защитить ключевую логику в 1С через внешние обработки?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как защитить ключевую логику в 1С через внешние обработки?

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

        2. Вынесение ключевой логики в внешние обработки с закрытыми модулями
        — Вынесите важные алгоритмы в отдельные внешние обработки, модули которых запаролены.
        — В основной обработке вызывайте эти внешние обработки.
        — Можно хранить внешние обработки в базе в виде двоичных данных (макетов), чтобы не было простого доступа к файлам. — можно поподробнее

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

          Разберу подробно, как организовать защиту ключевой логики через внешние обработки с закрытыми модулями и хранением их в базе в виде двоичных данных.

          ### 1. Вынесение ключевой логики в отдельную внешнюю обработку с закрытым модулем

          — Создаёте внешнюю обработку (файл *.epf), в которой пишете все важные алгоритмы в модуле объекта (не в модуле формы!).
          — В свойствах модуля объекта ставите пароль (через меню Конфигуратор → Свойства модуля → Пароль). Это закрывает исходный код от просмотра.
          — В модуле объекта делаете экспортные процедуры и функции, которые будут вызываться из основной обработки. Например:

          ### 2. Вызов внешней обработки из основной обработки

          — В основной обработке (или конфигурации) вы программно загружаете внешнюю обработку из файла или из двоичных данных (макета).
          — Для этого используйте методы из менеджера ВнешниеОбработки:

          ### 3. Хранение внешней обработки в базе в виде двоичных данных (макетов)

          — В конфигураторе в вашей основной конфигурации создаёте макет (например, «ВнешняяОбработка.epf»).
          — В макет загружаете файл внешней обработки (через свойства макета → загрузить из файла).
          — Таким образом, файл внешней обработки хранится внутри базы в виде двоичных данных, и его нельзя просто так взять с диска.
          — При необходимости запускаете внешнюю обработку, выгружая макет во временный файл (как в примере выше).

          ### 4. Почему это защищает?

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

          ### 5. Дополнительные советы

          — Для повышения защиты создайте пустую конфигурацию, встроите туда внешнюю обработку, снимите флаг «Включать исходный текст модулей» и создайте файл поставки. После этого модуль будет скомпилированным и закрытым.
          — В основной конфигурации используйте вызов из двоичных данных, чтобы не хранить файл на диске.
          — Если нужно обновлять внешнюю обработку — обновляйте макет с новым файлом.

          ### Пример кода для вызова из макета

          Если нужна помощь с конкретным кодом или настройкой — могу помочь.

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