Защита внешней обработки 1С паролем: что реально можно закрыть
Содержание
Вы написали внешнюю обработку
для коллег или клиента и не хотите, чтобы кто-то лазил в код. Или, наоборот, получили чужой .epf, а он просит пароль при попытке открыть модуль
. Пароль на внешнюю обработку 1С ставится в Конфигураторе, но защищает он только текст модулей, а не запуск обработки.
Пароль не шифрует файл и не мешает пользователю открыть обработку через «Файл — Открыть». Он закрывает просмотр и правку кода. Ниже разберём, как это настроить, чем пароль отличается от других способов защиты и что делать, когда доступ не работает .
Что нужно сделать до установки пароля
Пароль ставят на готовую и проверенную обработку. Если вы забудете его, вернуть код будет сложно. Поэтому сначала подготовьте рабочую копию.
Сохраните исходники отдельно
Сохраните незащищённый .epf (или .erf для отчёта) в папку с резервными копиями. Хорошо, если исходники лежат ещё и в системе контроля версий. Выгрузка во внешние файлы делается через «Файл — Сохранить как…» в Конфигураторе.
Готовый чек-лист перед защитой:
Определите, что именно закрывать
У внешней обработки несколько мест, где живёт код:
- 🧩 модуль объекта обработки;
- 🪟 модули форм (основной и дополнительные);
- 📄 макеты: кода в них нет, но запросы и служебные тексты видны всем, их проверьте глазами до публикации;
- 🔗 процедуры, которые вызываются из других модулей: если закрыть модуль формы, а логику оставить в открытом модуле объекта, смысла в защите мало.
Пароль ставится на каждый модуль отдельно. Закрыли только модуль формы — модуль объекта остаётся открытым. Это самая частая причина «защита не работает».
Проверьте платформу
Откройте Конфигуратор той версии платформы 8.3, на которой обработка будет работать. Обработку, сохранённую в новой версии, старая платформа может не открыть вовсе. Для файла с паролем это тоже верно.
Если обработку будут запускать на разных релизах платформы, соберите и сохраните её на самой старой из них.
Пошагово: как поставить пароль на модуль в Конфигураторе
Работаем в Конфигураторе, не в обычном режиме 1С:Предприятие. Пароль на обработку из пользовательского режима поставить нельзя.
Шаг 1. Откройте обработку
- Запустите базу в режиме
Конфигуратор(кнопка «Конфигуратор» в окне запуска). Подойдёт и пустая служебная база. - Выберите «Файл — Открыть» и укажите
.epfили.erf. - Обработка откроется отдельным окном дерева метаданных.
Шаг 2. Откройте нужный модуль
Двойным щелчком откройте модуль объекта или модуль формы. Редактор модуля показывает текст на языке 1С.
Для формы сначала откройте форму, затем вкладку «Модуль» в её редакторе.
Шаг 3. Установите пароль
- Поставьте курсор в окно модуля.
- В главном меню откройте раздел «Текст» и найдите пункт установки пароля на модуль. Название может немного отличаться в разных релизах, ищите слово «пароль».
- В диалоге введите пароль и повторите его для подтверждения.
- Подтвердите ввод.
После этого модуль помечается как защищённый. Повторите действие для каждого модуля, который хотите закрыть.
Шаг 4. Сохраните файл
Нажмите «Файл — Сохранить» (Ctrl+S). Защита записывается в файл только при сохранении.
Закройте обработку и откройте снова. Если модуль без пароля не открылся, защита поставлена. Если открылся, вы закрыли не тот модуль или не сохранили файл.
Как снять или поменять пароль
Откройте защищённый модуль, введите текущий пароль, затем в том же меню текста выберите пункт снятия или смены пароля. Без старого пароля ни то, ни другое не сделать.
Пример: обработка выгрузки для заказчика
Допустим, вы сделали обработку выгрузки остатков в Excel для клиента. В ней три модуля: модуль объекта с запросами, форма выбора периода и форма настроек. Порядок такой:
- Собираете финальную версию и тестируете на копии базы клиента.
- Сохраняете открытый вариант в архив с датой в имени файла.
- Ставите пароль на все три модуля, одинаковый или разный, как удобнее вам.
- Сохраняете, закрываете, открываете заново и проверяете каждый модуль.
- Запускаете обработку в пользовательском режиме: выгрузка должна работать точно так же.
- Отдаёте клиенту файл. Пароль остаётся у вас.
Если клиент потом попросит доработку, вы открываете архивную копию или защищённый файл со своим паролем, правите и снова сохраняете.
Для разных клиентов лучше использовать разные пароли. Тогда утечка одного пароля не раскрывает остальные обработки.
Чем пароль отличается от шифрования и других способов защиты
Здесь путаница возникает чаще всего. Слова «защитить обработку» разные люди понимают по-разному, и на практике это три разные задачи.
Что делает пароль на модуль
Пароль на модуль скрывает исходный код от разработчика, у которого нет пароля. Платформа при этом читает код и выполняет его нормально. Пользователь запускает обработку, как обычную.
Шифрования в привычном смысле нет. Файл .epf остаётся обычным файлом, его можно скопировать, переслать и подключить в любую базу.
Что пароль не закрывает
- 🚫 запуск обработки: она откроется без пароля;
- 🚫 копирование файла;
- 🚫 результат работы: данные, которые обработка читает и меняет в базе;
- 🚫 макеты и форма как интерфейс: видно, какие кнопки и поля в окне.
Если вам нужно, чтобы обработку не мог запустить посторонний, пароль на модуль для этого не нужен. Нужно ограничивать доступ другими способами.
Сравнение способов
| Способ | Что закрывает | Что остаётся открытым | Когда использовать |
|---|---|---|---|
| Пароль на модуль | Просмотр и правка кода | Запуск, интерфейс | Передаёте обработку заказчику, код не показываете |
| Дополнительные отчёты и обработки в базе | Кто и где видит обработку | Код доступен тому, у кого есть файл | Нужно управлять доступом по ролям |
| Права и роли пользователей | Действия с данными | Сам файл | Ограничиваете операции внутри базы |
| Хранение на сервере, не у пользователя | Копирование файла | Всё в пределах базы | Внутренняя корпоративная эксплуатация |
Ни один способ не даёт абсолютной защиты. Платформа 1С не рассчитана на то, чтобы прятать код от человека, который имеет файл и желание его вскрыть. Пароль — это защита от любопытства, а не от целенаправленного взлома.
Не храните в коде обработки пароли от баз, ключи доступа и токены сервисов, рассчитывая на пароль модуля. Выносите их в настройки базы с ограниченным доступом.
Какой способ выбрать
Как пользователь запускает защищённую обработку
Для пользователя ничего не меняется. Он открывает обработку так же, как любой внешний файл, и она работает.
Запуск через меню
- В 1С:Предприятие выберите «Файл — Открыть» (
Ctrl+O). - Укажите файл
.epf. - Обработка откроется окном формы.
Если открытие внешних файлов запрещено в базе, пункт меню неактивен или появится сообщение о запрете. Это настройка прав и не связано с паролем на модуль.
Запуск через подключённую обработку
Если администратор подключил обработку в справочник дополнительных отчётов и обработок, пользователь найдёт её в соответствующем разделе. Файл самому искать не нужно.
Безопасный режим при запуске может ограничить действия обработки: доступ к файловой системе, запуск внешних программ. Если обработка внезапно перестала выгружать файл, проверьте, не включён ли безопасный режим для неё в карточке в справочнике.
Когда пароль нужен самому пользователю
Только если он открывает код в Конфигураторе. Тогда 1С запросит пароль на каждом защищённом модуле. Пользователь, который просто работает с обработкой, пароль не вводит.
Типичные ошибки и как их устранить
Здесь только то, что не повторяет шаги выше.
Если не помогло
Проверьте цепочку по порядку. Сначала откройте файл в Конфигураторе: если открылся и просит пароль на модуль, защита работает. Если файл вообще не читается, это проблема версии или повреждения файла.
Если обработка открывается, но ведёт себя странно, сравните поведение в тестовой базе с правами администратора. Различия укажут на роли или безопасный режим.
Ещё один быстрый тест: откройте обработку на другом компьютере с той же платформой. Если там всё в порядке, а у пользователя нет, ищите разницу в версии платформы, в правах или в настройках безопасного режима. Сам файл с паролем здесь ни при чём.
Отдельно проверьте, не блокирует ли файл антивирус или политика на ограничение запуска внешних файлов. Такое бывает на терминальных серверах, где пользователям запрещены сторонние файлы с сетевых папок. В этом случае обработку кладут в разрешённый каталог или подключают через базу.
Как не потерять код и доступ
Защищённая обработка живёт долго, а разработчики и пароли меняются. Несколько привычек, которые это спасают:
- 📦 храните исходники в репозитории, а выдавайте клиенту только собранный файл с паролем;
- 🔑 пароль держите в корпоративном менеджере паролей, а не в заметках на рабочем столе;
- 🗓️ при каждой публикации новой версии пересохраняйте защиту, а не копируйте модули из старой;
- 🧪 после установки пароля прогоняйте обработку на тестовой базе: защита не должна менять поведение.
Если обработку делает подрядчик, зафиксируйте в договоре, кто хранит исходники. Иначе через год вы окажетесь с рабочим файлом и без возможности его поправить.
Наконец, если у вас есть возможность, переведите функционал в расширение конфигурации. Расширение проще поддерживать и контролировать, чем разрозненные файлы, а доступ к нему регулируется через ролевую модель базы.