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