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