Защита общего модуля паролем: как открыть код и убрать пароль в Конфигураторе
Содержание
Снять пароль с общего модуля 1С можно только в Конфигураторе и только зная этот пароль: откройте модуль, введите пароль, в меню Текст вызовите команду установки пароля и сохраните её с пустым полем. Затем сохраните конфигурацию и обновите конфигурацию базы данных (F7).
Частое заблуждение — что защиту можно «обойти» выгрузкой в файлы, через внешнюю обработку или сравнение конфигураций. Нельзя: текст закрытого модуля хранится в зашифрованном виде, и штатные инструменты платформы его не раскрывают. Если пароля нет, рабочих путей три: найти пароль у того, кто его ставил, вернуть версию без защиты из архива или запросить открытую поставку у разработчика.
Зачем модуль закрывают паролем и что при этом видно
Пароль на модуль — механизм платформы 1С:Предприятие 8.3 для защиты исходного кода. Его ставят на общий модуль, модуль объекта, менеджера или формы. Чаще всего это делают:
- 🏢 разработчики отраслевых решений и франчайзи — чтобы закрыть своё ноу-хау;
- 🔐 авторы механизмов лицензирования — чтобы код проверки нельзя было прочитать и исправить;
- 🧑💻 штатные программисты — чтобы коллеги случайно не правили критичный код.
Что происходит с закрытым модулем:
| Действие | Без пароля | После ввода пароля |
|---|---|---|
| Открыть текст в Конфигураторе | Запрос пароля, текст не показывается | Текст доступен для чтения и правки |
| Выполнение кода в базе | Работает как обычно | Работает как обычно |
| Отладка | Пошаговая отладка внутри модуля недоступна | Доступна |
| Сравнение и объединение конфигураций | Текст не сравнивается по строкам | Сравнивается |
Отдельно стоит поставка без исходных текстов. Это другой механизм: в конфигурацию попадает уже скомпилированный модуль, исходника там нет вовсе. Пароль к нему не существует, и восстановить текст средствами платформы нельзя.
Определить, какой случай у вас, просто. Если при открытии модуля Конфигуратор спрашивает пароль — это защита паролем. Если пароль не спрашивают, но текст не открывается и редактор пуст — скорее всего, модуль поставлен без исходников.
Что проверить перед снятием пароля с модуля
Пароль снимают в Конфигураторе. Ещё до ввода пароля убедитесь, что модуль вообще можно редактировать. Иначе команда будет недоступна, а вы решите, что пароль неверный.
Права пользователя
Запустить Конфигуратор может только пользователь с правом администрирования (роль «Полные права» или «Администратор системы» в типовых конфигурациях). Если в базе есть список пользователей, войдите под таким пользователем.
Конфигурация на поддержке
Типовая или отраслевая конфигурация обычно стоит на поддержке. Объекты в режиме «Не редактируется» менять нельзя, и снять пароль тоже не получится.
- Откройте
Конфигурация → Поддержка → Настройка поддержки. - Нажмите «Включить возможность изменения», если она ещё не включена.
- Для нужного общего модуля поставьте правило «Редактируется с сохранением поддержки».
Включение возможности изменения необратимо для этой базы: вернуть конфигурацию в полностью «замороженное» состояние штатно нельзя. Последующие обновления станут дольше — изменённые объекты придётся объединять вручную.
Хранилище конфигурации
Если база подключена к хранилищу, модуль нужно захватить: в дереве конфигурации щёлкните правой кнопкой по модулю → «Захватить в хранилище». Без захвата объект открыт только на чтение.
Резервная копия
Перед любыми изменениями конфигурации сделайте выгрузку: Администрирование → Выгрузить информационную базу в Конфигураторе, получится файл .dt. Без копии не начинайте: ошибка при обновлении конфигурации базы данных может оставить базу в нерабочем состоянии.
Пошаговое снятие пароля с общего модуля в Конфигураторе
Процедура одинакова для общих модулей, модулей объектов, менеджеров и форм.
Шаг 1. Откройте модуль
- Запустите базу в режиме «Конфигуратор».
- Откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - В дереве раскройте ветку
Общие → Общие модулии дважды щёлкните по нужному модулю.
Для модуля объекта (документа, справочника) откройте объект и перейдите на вкладку «Прочее» — там кнопки открытия модулей.
Шаг 2. Введите текущий пароль
Конфигуратор покажет запрос пароля. Введите его с учётом регистра и раскладки. После этого текст модуля откроется в редакторе.
Шаг 3. Удалите пароль
- Не закрывая модуль, откройте меню
Текств главном меню Конфигуратора. - Выберите команду установки пароля («Установить пароль …»; в разных версиях платформы формулировка пункта немного отличается).
- В окне оставьте поля пароля и подтверждения пустыми и нажмите «ОК».
Пустой пароль и означает снятие защиты.
Шаг 4. Сохраните и примените изменения
- Сохраните конфигурацию:
Конфигурация → Сохранить конфигурациюилиCtrl+S. - Обновите конфигурацию базы данных:
Конфигурация → Обновить конфигурацию базы данныхилиF7. - Если работаете с хранилищем — поместите модуль в хранилище, чтобы изменение увидели другие разработчики.
Проверка: закройте модуль и откройте снова. Запроса пароля быть не должно.
Если закрыто несколько модулей одним паролем, снимать придётся у каждого по отдельности. Удобно идти по списку: сначала отфильтруйте дерево общих модулей по имени, затем открывайте модули по очереди.
Как поставить пароль обратно
Тот же пункт меню Текст, но поля заполняются новым паролем. Пароль хранится внутри конфигурации, поэтому после переноса .cf в другую базу защита сохраняется.
Выгрузка в файлы, внешние обработки и другие пути к коду
Здесь собраны способы, которые часто предлагают на форумах. Разберём, что они дают на самом деле.
Выгрузка конфигурации в файлы
Команда Конфигурация → Выгрузить конфигурацию в файлы сохраняет структуру конфигурации в каталог XML-файлов. Закрытый модуль в выгрузке не превращается в читаемый текст — он остаётся защищённым. Выгрузка полезна для другого: хранить историю изменений в Git и находить версии модуля, сохранённые до установки пароля.
Сохранение в файл .cf и сравнение
Файл .cf (Конфигурация → Сохранить конфигурацию в файл) переносит модуль вместе с паролем. При сравнении двух конфигураций закрытый модуль не раскладывается построчно — видно только, что он отличается.
Внешние обработки и отчёты
Модуль внешней обработки (.epf) или отчёта (.erf) защищается тем же способом. Снять пароль можно так:
- Откройте файл через
Файл → Открытьв Конфигураторе. - Откройте модуль объекта или формы, введите пароль.
- Очистите пароль через меню
Текст. - Сохраните обработку
Ctrl+S.
Обновлять конфигурацию базы данных здесь не нужно: внешняя обработка — отдельный файл.
Возврат из архива и хранилища
Если пароль ставили вы сами и забыли — это самый рабочий путь:
- 📦 в хранилище конфигурации откройте историю модуля и получите версию до установки пароля;
- 🗂 в Git найдите коммит выгрузки, где модуль ещё был открыт;
- 💾 разверните старый
.dtили.cfв отдельную базу и перенесите код оттуда.
Изменения, сделанные после установки пароля, придётся повторить вручную.
Сравнение способов снять защиту с модуля
| Способ | Когда подходит | Что нужно | Риски |
|---|---|---|---|
| Снятие в Конфигураторе | Пароль известен | Права администратора, возможность изменения | Снятие с поддержки усложнит обновления |
| Версия из хранилища | База в хранилище, есть история | Доступ к хранилищу | Потеря правок, сделанных после пароля |
| Старая выгрузка или Git | Есть архив до установки пароля | Копия .dt, .cf или XML | Ручной перенос свежих изменений |
| Открытая поставка от разработчика | Модуль чужой, нужна доработка | Договор или запрос автору | Дополнительная оплата за исходники |
| Доработка без правки модуля | Код читать не обязательно | Расширение конфигурации | Нельзя изменить логику внутри модуля |
| Сторонние утилиты «взлома» | Не подходит | — | Нарушение закона, порча конфигурации |
Почему не стоит искать «взломщики»
В сети встречаются программы, которые якобы удаляют пароль из .cf. Для чужого кода это обход технических средств защиты авторских прав — он прямо запрещён ст. 1299 ГК РФ. Ст. 1280 ГК РФ разрешает законному владельцу адаптировать программу и исправлять явные ошибки, но не даёт права снимать защиту, поставленную правообладателем.
Практический риск тоже есть: такие утилиты правят внутреннюю структуру файла конфигурации. После них бывают ошибки при открытии и обновлении базы, а сами программы нередко содержат вредоносный код. Наш справочник независим и не связан с фирмой 1С, но здесь рекомендация однозначная: просите исходники у автора.
Если пароль не снимается: ошибки и их причины
Пароль вводится, но ничего не меняется — частая жалоба. Причины обычно в окружении, а не в самом пароле.
- 🔒 Пункт установки пароля недоступен. Модуль открыт только на чтение: конфигурация на поддержке без возможности изменения или модуль не захвачен в хранилище. Вернитесь к разделу о подготовке.
- ❌ Пароль не принимается. Проверьте раскладку и Caps Lock: пароль чувствителен к регистру. Если модулей несколько, у них могут быть разные пароли.
- 🔁 После перезапуска пароль снова спрашивается. Изменения не сохранили или не обновили конфигурацию базы данных. Повторите шаг 4.
- 👥 У коллег модуль по-прежнему закрыт. Изменение не помещено в хранилище. Поместите модуль и попросите коллег обновить конфигурацию из хранилища.
- 🔄 Пароль вернулся после обновления типовой. При объединении с новой версией от поставщика модуль принят из поставки, а у поставщика он закрыт. Это ожидаемо: снимать придётся заново, если пароль у вас есть.
- 🧩 Код не меняется при отладке. Точки останова в закрытом модуле не срабатывают. Сначала снимите пароль, потом отлаживайте.
Как не потерять доступ к своим модулям
Большинство проблем с паролями возникает не при снятии, а через год после установки, когда автор ушёл из компании.
Правила для команды
- 📝 Храните пароли модулей в корпоративном менеджере паролей, а не в голове одного программиста.
- 🗃 Ведите реестр: модуль — кто поставил пароль — когда — зачем.
- 🔄 Держите выгрузку конфигурации в файлы в Git с ежедневными коммитами. Версия до пароля всегда под рукой.
- 🧾 В договоре с подрядчиком пропишите передачу исходных текстов и паролей по окончании работ.
Пароль — не единственная защита
Пароль на модуль защищает код, но не данные. Если цель — не дать пользователям менять настройки или видеть лишнее, используйте роли и права доступа в режиме Администрирование → Настройки пользователей и прав. Если цель — не дать правку конфигурации, ограничьте круг пользователей с правом администрирования и запуска Конфигуратора.
Для собственных доработок типовой конфигурации удобнее расширения: типовые модули остаются нетронутыми, а ваш код лежит отдельно. Закрывать его паролем обычно не требуется.
Частые вопросы
Можно ли поставить один пароль сразу на все общие модули?
Влияет ли пароль на скорость работы базы?
Сохранится ли пароль при переносе базы через .dt?
Законно ли снимать пароль с модуля, купленного у разработчика?
Можно ли исправить ошибку в закрытом модуле, не зная пароля?
Источники
- Гражданский кодекс РФ, часть четвёртая, ст. 1280 «Свободное воспроизведение программ для ЭВМ и баз данных. Декомпиляция программ для ЭВМ»
- Гражданский кодекс РФ, часть четвёртая, ст. 1299 «Технические средства защиты авторских прав»