Разработка и Конфигурация · 10 мин
Как установить пароль на общий модуль в 1С
Как поставить пароль на общий модуль в 1С через конфигуратор: защита исходного кода, поставка без исходных текстов, ограничения и типичные ошибки.
Защита исходного кода — стандартная задача при передаче конфигурации заказчику, публикации решения или продаже подсистемы. В 1С разработчик может ограничить доступ к тексту общего модуля двумя способами: установить пароль на сам модуль в конфигураторе или поставить конфигурацию без исходных текстов. Оба подхода скрывают код от просмотра и изменения, но работают по-разному и имеют свои ограничения.
Пароль на модуль устанавливается прямо в конфигураторе и действует на уровне конкретного объекта: посторонний увидит общий модуль в дереве конфигурации, но при попытке открыть его текст получит запрос пароля. Это удобно, когда нужно защитить отдельные «ноу-хау» участки кода, оставив остальную конфигурацию открытой для доработки.
Важно понимать: пароль на модуль не шифрует данные информационной базы и не заменяет права доступа пользователей. Он защищает исключительно текст программного кода от просмотра. Ниже разобраны оба механизма, порядок установки, проверка результата и типичные ошибки.
Что даёт пароль на общий модуль и когда он нужен
Общий модуль в 1С — это контейнер серверного или клиентского кода, доступного из разных объектов конфигурации. Именно в общих модулях чаще всего сосредоточена прикладная логика: расчёты, обмены, интеграции, лицензионные проверки. Поэтому защита общего модуля паролем — первое, что приходит в голову разработчику, передающему решение третьей стороне.
Установленный пароль блокирует просмотр и редактирование текста модуля. При этом модуль продолжает нормально исполняться: вызовы процедур и функций работают, отладка по защищённому модулю недоступна, конфигурация обновляется штатно. Для пользователя программы ничего не меняется — защита касается только разработчиков.
Типичные сценарии использования: передача конфигурации заказчику с сохранением права на закрытый код, публикация демонстрационной версии, защита механизмов лицензирования, разграничение доступа внутри команды разработки, когда часть кода ведёт один специалист.
Как установить пароль на общий модуль через конфигуратор
Установка выполняется в режиме «Конфигуратор» и занимает меньше минуты. Потребуются права на изменение конфигурации и монопольный доступ не нужен — достаточно обычного сеанса разработчика.
Порядок действий: откройте конфигуратор и загрузите конфигурацию. В дереве конфигурации раскройте ветку «Общие» → «Общие модули» и откройте нужный модуль двойным щелчком — отобразится окно с текстом кода. Далее в главном меню выберите пункт «Текст» → «Установить пароль». В появившемся диалоге дважды введите пароль и подтвердите. Сохраните конфигурацию (Ctrl+S или «Конфигурация» → «Сохранить конфигурацию»).
- 1Откройте конфигуратор и дерево конфигурации
- 2В ветке «Общие → Общие модули» откройте нужный модуль
- 3В меню «Текст» выберите «Установить пароль»
- 4Введите пароль дважды и подтвердите
- 5Сохраните конфигурацию
- 6Проверьте: закройте и снова откройте модуль — должен появиться запрос пароля
После установки окно модуля при повторном открытии покажет диалог ввода пароля вместо текста. Без пароля код не отобразится ни в конфигураторе, ни при выгрузке конфигурации в файлы — в выгрузке текст защищённого модуля будет отсутствовать или заменён служебной заглушкой.
Снятие и смена пароля
Чтобы снять защиту, откройте модуль, введя текущий пароль, затем в меню «Текст» выберите «Снять пароль» и подтвердите действие. Смена пароля выполняется аналогично: сначала снимается старый, затем устанавливается новый. Отдельной команды «изменить пароль» в конфигураторе нет.
Критический момент: встроенного механизма восстановления пароля не существует. Если пароль утерян, а открытой копии кода нет, текст модуля восстановить штатными средствами не получится. Поэтому перед установкой пароля обязательно сохраните исходный текст модуля во внешнем файле или выгрузите конфигурацию в файлы до защиты.
Альтернатива: поставка конфигурации без исходных текстов
Второй механизм защиты — поставка модулей без исходного кода. Он настраивается не в тексте модуля, а в диалоге создания файлов поставки: «Конфигурация» → «Поставка конфигурации» → «Настройка поставки». На закладке «Модули» для выбранных объектов устанавливается вариант «Поставляется без исходных текстов».
При такой поставке получатель получает работоспособную конфигурацию, где защищённые модули исполняются, но их текст отсутствует физически. В отличие от пароля, здесь нечего «вводить» — кода просто нет в поставке. Это более надёжный вариант для коммерческого распространения, но он требует аккуратности: обновление такой конфигурации возможно только полными файлами поставки от вендора.
Сравнение вариантов
Подходит для разовой защиты внутри команды или при передаче заказчику. Плюс: настраивается за минуту, код остаётся в базе. Минус: пароль можно потерять, защита слабее.
Подходит для коммерческого тиражирования. Плюс: кода физически нет у получателя. Минус: сложнее обновление, требуется организация процесса поставки.
Подходит, если закрываемая логика не обязана быть частью конфигурации. Плюс: не трогает основную конфигурацию. Минус: ограничения по контексту исполнения.
Проверка результата и контрольные точки
После установки пароля или настройки поставки проверьте защиту с позиции «внешнего» разработчика. Закройте окно модуля и откройте его снова — должен появиться запрос пароля, а не текст. Попробуйте выполнить глобальный поиск по фрагменту кода из защищённого модуля: текст не должен находиться.
Дополнительно убедитесь, что конфигурация осталась работоспособной: запустите режим предприятия и выполните операции, вызывающие защищённый модуль. Ошибок вида «процедура не обнаружена» быть не должно — защита не влияет на исполнение.
Как проверить результат
Появляется диалог ввода пароля
Текст кода отображается сразу — пароль не установлен или не сохранена конфигурация
Фрагмент не находится
Код находится — защита не применилась
Код исполняется без ошибок
Ошибки вызова — проверьте, не повреждён ли модуль при сохранении
Текст защищённого модуля отсутствует или недоступен
Код выгружается открытым — пароль не был сохранён
Ограничения и частые ошибки
Главное ограничение: пароль на модуль — это защита от добросовестного пользователя, а не криптографическая гарантия. Существуют специализированные инструменты, снимающие такую защиту. Если код содержит действительно критичные секреты (ключи, алгоритмы лицензирования), не храните сами секреты в тексте модуля — выносите их во внешние защищённые хранилища или серверные механизмы.
Ещё одно ограничение касается командной разработки. При использовании хранилища конфигурации или EDT защищённые паролем модули создают проблемы при сравнении и объединении версий — текст модуля недоступен для анализа изменений. Заранее договоритесь в команде, какие модули закрываются и кто владеет паролями.
Кому и когда стоит применять защиту
Если цель — просто не дать заказчику случайно «сломать» код, достаточно пароля на модуль плюс грамотного разграничения прав: у рядовых пользователей не должно быть права «Администрирование» и доступа к конфигуратору. Если цель — коммерческое тиражирование решения, используйте поставку без исходных текстов и продумайте процесс выпуска обновлений.
Как выбрать действие
Независимо от выбранного способа зафиксируйте решение документально: какие модули защищены, кем, где хранятся пароли и открытые копии кода. Это избавит от проблем при смене команды или передаче сопровождения.
Что важно запомнить
Пароль на общий модуль ставится через меню «Текст» → «Установить пароль» в конфигураторе и скрывает код от просмотра, не нарушая исполнение. Перед установкой сохраните копию исходного кода — пароль не восстанавливается. Для коммерческого распространения надёжнее поставка без исходных текстов, а настоящие секреты не следует хранить в коде вовсе.
Частые вопросы
Можно ли поставить пароль на модуль объекта или формы, а не только на общий модуль?
Да, механизм «Установить пароль» в меню «Текст» доступен для большинства модулей конфигурации: модулей объектов, форм, модулей приложения и сеанса. Порядок действий идентичен — открыть текст модуля и установить пароль через меню.
Что делать, если пароль на модуль утерян?
Штатных средств восстановления нет. Варианты: найти архивную копию конфигурации до установки пароля, обратиться к сохранённой выгрузке в файлы или восстановить код вручную по документации и открытым копиям. Именно поэтому резервная копия исходников обязательна.
Влияет ли пароль на модуль на работу пользователей в режиме предприятия?
Нет. Защищённый модуль исполняется в полном объёме: пользователи не замечают разницы. Защита касается только просмотра и редактирования текста в конфигураторе.
Работает ли защита при выгрузке конфигурации в файлы?
Да. При выгрузке конфигурации в файлы текст защищённого паролем модуля не выгружается в открытом виде. Это дополнительная проверка: если после выгрузки код читается, пароль не был применён или конфигурация не сохранена.
Чем пароль на модуль отличается от прав доступа пользователей?
Права доступа ограничивают действия пользователей с данными и возможность входа в конфигуратор. Пароль на модуль скрывает текст кода даже от того, кто уже работает в конфигураторе. Это дополняющие механизмы: один защищает систему, другой — интеллектуальную собственность в коде.
Можно ли защитить общий модуль при разработке через EDT?
В 1C:EDT прямой команды «установить пароль» на модуль нет — защита настраивается на этапе поставки конфигурации или через конфигуратор после загрузки проекта в информационную базу. Для командной разработки в EDT обычно используют разграничение доступа к исходному репозиторию и поставку без исходных текстов.