Пароль на модуле 1С: когда его можно убрать законно, а когда нельзя

· 9 мин

Содержание

Распаролить модуль 1С за минуту можно в одном случае — если пароль вам известен. Откройте модуль в Конфигураторе, введите пароль, затем в главном меню выберите Текст → Установить пароль и оставьте поле пароля пустым. После сохранения конфигурации модуль открывается без запроса.

Частое заблуждение — путать пароль модуля с паролем пользователя базы или хранилища. Это три разные защиты. Пароль пользователя пускает в базу, пароль хранилища — к захвату объектов, а пароль модуля закрывает только текст одного конкретного модуля. Если пароль модуля забыт или модуль написан чужим разработчиком, снять пароль с модуля 1С «технически» можно лишь способами, которые обходят защиту автора. У этого есть юридические последствия, и о них ниже.

Зачем разработчики ставят пароль на модуль 1С

Пароль на модуле — это способ показать код программе, но не человеку. Платформа исполняет модуль как обычно, а в Конфигураторе вместо текста появляется запрос пароля.

Ставят его по нескольким причинам:

  • 🔒 Защита ноу-хау. Отраслевые решения и тиражные доработки продают за деньги. Открытый код легко скопировать в другую базу.
  • 🧾 Лицензирование. В закрытом модуле часто лежит проверка ключа или регистрационного номера решения.
  • 🛡️ Защита от случайных правок. Бухгалтер с правами администратора или стажёр не «поправит» расчёт, от которого зависит отчётность.
  • 🤝 Граница ответственности. Разработчик отвечает за модуль, пока его никто не менял. Изменили — гарантия и поддержка заканчиваются.

Пароль — не единственный вариант закрытия. Разработчик может поставить конфигурацию без исходных текстов (настраивается в Конфигурация → Поставка конфигурации → Настройка поставки). В таком модуле текста нет вообще, пароль ему не нужен, и вернуть код из базы нельзя никак — только получить у автора.

Вид защитыЧто видно в КонфигуратореМожно ли вернуть текст
Пароль на модулеЗапрос пароля при открытииДа, если знаете пароль
Поставка без исходных текстовМодуль пустой или недоступенНет, только у разработчика
Объект на поддержке «не редактируется»Текст виден, но изменить нельзяТекст и так открыт, нужно включить возможность изменения

Последняя строка — частая путаница. Если модуль типовой конфигурации просто серый и не даёт печатать, пароля там нет. Это режим поддержки, и решается он настройкой поддержки, а не снятием пароля.

Снять пароль с модуля, если пароль известен

Это законный и самый простой сценарий: вы автор доработки, пароль хранится в документации или его передал разработчик по договору.

Подготовка

  1. Сделайте резервную копию: Администрирование → Выгрузить информационную базу в файл .dt или хотя бы Конфигурация → Сохранить конфигурацию в файл (.cf).
  2. Если конфигурация подключена к хранилищу, захватите объект, которому принадлежит модуль. Без захвата изменения не сохранятся.
  3. Если объект на поддержке поставщика и редактирование запрещено, включите изменение: Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения. Для самого объекта выберите правило «Объект поставщика редактируется с сохранением поддержки».

Пошагово

  1. Откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  2. Найдите в дереве нужный объект и откройте его модуль (модуль объекта, менеджера, формы или общий модуль).
  3. Введите пароль в окне запроса — текст модуля откроется.
  4. Не закрывая модуль, выберите в главном меню Текст → Установить пароль.
  5. Оставьте поля пароля и подтверждения пустыми и нажмите ОК. Пустой пароль снимает защиту.
  6. Сохраните конфигурацию (Ctrl+S) и обновите конфигурацию базы данных (F7). Если работаете с хранилищем — поместите объект обратно в хранилище.

Тем же пунктом меню пароль меняют на новый: вместо пустого значения введите новый пароль дважды.

Обновление конфигурации базы данных в рабочей базе делайте вне рабочего времени. Если в изменениях есть правки структуры, платформа потребует монопольный доступ, и пользователей придётся выгнать из базы.

Если модулей с паролем много

Пароль ставится на каждый модуль отдельно, и пароли в одной конфигурации могут быть разными. Перед началом составьте список закрытых модулей: откройте по очереди модули доработанных объектов и отметьте, где появляется запрос. Для крупной доработки попросите разработчика прислать перечень модулей с паролями — так быстрее и без пропусков.

Перед тем как снимать пароль с модуля
Выполнено: 0 / 5

Забыли пароль от своего модуля: законные способы вернуть код

Вы сами закрыли модуль, а пароль потерялся. Ломать защиту не нужно: собственный код почти всегда где-то сохранился в открытом виде.

Где искать открытую версию

  • 💾 Старые файлы .cf и .dt. Найдите копию, сделанную до установки пароля. Загрузите её в отдельную пустую базу и скопируйте текст модуля.
  • 📚 История хранилища конфигурации. Если доработку вели в хранилище, в истории объекта есть версии до установки пароля. Получите нужную версию во временную базу и возьмите оттуда код.
  • 🗂️ Выгрузка в файлы и система контроля версий. Если конфигурацию выгружали через Конфигурация → Выгрузить конфигурацию в файлы или вели в 1С:EDT с Git, текст модуля лежит в репозитории в истории коммитов до момента защиты.
  • 📄 Файлы поставки и обновлений. Если вы выпускали свою доработку как поставку, проверьте архив сборок — ранние .cf и .cfu могли собираться до установки пароля.

Как перенести текст обратно

  1. Создайте пустую информационную базу и загрузите в неё старую конфигурацию: Конфигурация → Загрузить конфигурацию из файла.
  2. Откройте там модуль и скопируйте текст.
  3. В рабочей конфигурации откройте Конфигурация → Сравнить, объединить с конфигурацией из файла, укажите старый .cf и отметьте к объединению только объект с закрытым модулем.
  4. Проверьте, какие правки в модуле появились после старой копии, и внесите их заново вручную.

Построчно сравнить закрытый модуль со старым не получится — его текст не виден. Поэтому замену делайте осознанно: всё, что дописали после старой копии, придётся восстановить по памяти, задачам или переписке.

Как больше не терять пароль от своих модулей

  • 🔑 Храните пароли в общем менеджере паролей команды с пометкой: конфигурация, объект, модуль, дата установки.
  • 🧩 Для каждой выпущенной поставки держите открытую копию исходников отдельно от закрытой сборки.
  • 📝 Ставьте пароль на этапе сборки поставки, а не в рабочей конфигурации разработки. Тогда в разработке код всегда открыт.
  • 👥 Не давайте одному человеку единолично ставить пароли. Уход программиста не должен закрывать код для всей компании.

Если копий нет совсем, остаётся одно — переписать модуль заново. Для обработки или отчёта это часто быстрее, чем кажется: известны входные данные и ожидаемый результат.

Пароль на чужом модуле: что говорит закон

Здесь начинается зона, которую в запросах называют «обходом защиты». Пароль на модуле относится к техническим средствам защиты авторских прав. Программы для ЭВМ, включая конфигурации и доработки 1С, охраняются как произведения.

Что из этого следует:

  • ⚖️ Обход технических средств защиты запрещён. Это прямо установлено статьёй 1299 ГК РФ. Купленная лицензия на решение не даёт права снимать защиту автора.
  • 💸 Гражданская ответственность. Правообладатель вправе потребовать компенсацию по статье 1301 ГК РФ — от 10 тысяч до 5 миллионов рублей по усмотрению суда, либо двукратную стоимость права использования.
  • 🚨 Уголовная ответственность. При крупном ущербе нарушение авторских прав подпадает под статью 146 УК РФ.
  • 📉 Потеря поддержки. Даже без суда разработчик откажет в обновлениях и сопровождении базы с изменённым кодом.

Статья 1280 ГК РФ разрешает пользователю программы ограниченный набор действий без согласия автора, в том числе декомпилирование для совместимости с другими программами. Условия там узкие: нужная информация недоступна из других источников, действия касаются только частей, нужных для совместимости, а полученные сведения нельзя передавать третьим лицам и использовать для создания похожей программы. Снять пароль, чтобы переделать чужое решение под себя, эта норма не позволяет.

Утилиты и сервисы «снятия паролей с модулей 1С» — это обход технической защиты. Запуск такой программы на чужой конфигурации — уже нарушение, даже если код потом не публикуется.

Отдельный риск — сами утилиты. Их распространяют на форумах и в архивах без автора. Под видом «разблокировщика» легко получить программу, которая ворует пароли пользователей базы или портит файл конфигурации.

Не запускайте сторонние программы для «распароливания» на рабочей базе. Испорченная конфигурация — меньшая из бед: доступ к базе с учётом и персональными данными получают посторонние.

Если пароль снять нельзя: рабочие альтернативы

Задача обычно не в пароле, а в том, чтобы поменять поведение решения. Для этого есть пути без вскрытия кода.

Что вам нужно от закрытого модуля?

Расширение вместо правки модуля

Расширение конфигурации — основной инструмент, когда менять поставку нельзя. Его создают в Конфигурация → Расширения конфигурации. В расширении можно:

  • добавить свои справочники, документы, отчёты и обработки;
  • добавить реквизиты и команды к существующим объектам;
  • изменить формы объектов;
  • подписаться на события записи и проведения документов через свои подписки.

Перехват методов в расширении (аннотации &Перед, &После, &Вместо) рассчитан на модули, текст которых вам доступен. С закрытым модулем на него не опирайтесь: свою логику надёжнее положить рядом — в подписку на событие или в модуль формы расширения. Расширение проверяйте на копии базы, а в рабочую подключайте после теста.

Переговоры с разработчиком

Это звучит банально, но решает большинство историй. Разработчику выгоднее продать доступ к коду или доработку, чем потерять клиента. Что можно попросить:

  1. Пароль на конкретный модуль под обязательство не распространять код.
  2. Версию решения с открытыми исходниками за отдельную плату.
  3. Доработку под вашу задачу в рамках сопровождения.
  4. Описание экспортных процедур для интеграции.

Зафиксируйте договорённость письменно. Право модифицировать программу — отдельное право, и его лучше иметь на бумаге.

Мини-пример. Компания купила отраслевую доработку для складского учёта, а через год понадобилось добавить в расчёт себестоимости новую статью затрат. Модуль расчёта закрыт паролем. Вместо поиска «разблокировщика» компания заказала у автора доработку: её сделали за несколько дней, и решение осталось на поддержке. Самостоятельное вскрытие кода стоило бы и поддержки, и обновлений.

Ошибки при работе с запароленными модулями

Несколько ситуаций, на которых теряют время и данные:

  • ❌ Путают режим поддержки с паролем. Модуль типовой конфигурации не редактируется, а пароль никто не ставил. Ищут «как распаролить», хотя нужна настройка поддержки.
  • ❌ Снимают пароль без захвата в хранилище. Изменения не сохраняются, и кажется, что пароль «не снимается».
  • ❌ Ищут пароль в списке пользователей. Пароль модуля не связан с учётными записями базы: смена пароля администратора в Администрирование → Пользователи на модуль никак не влияет.
  • ❌ Снимают защиту с модуля решения «на поддержке» и обновляются. При следующем обновлении от поставщика изменённые модули попадут в объединение, и правки придётся разбирать вручную.
  • ❌ Удаляют закрытый объект целиком, чтобы «избавиться от пароля». Вместе с ним уходят данные справочника или регистра и ломаются ссылки в других объектах.

Частые вопросы

Можно ли поставить один пароль сразу на все модули конфигурации?
Пароль задают для каждого модуля отдельно через Текст → Установить пароль. Для закрытия всей поставки разработчики обычно используют поставку без исходных текстов.
Мешает ли пароль на модуле работе пользователей?
Нет. Платформа исполняет защищённый модуль как обычно. Пароль закрывает только просмотр и правку текста в Конфигураторе.
Сохраняется ли пароль при выгрузке базы в .dt?
Да. Пароль — свойство модуля в конфигурации, и он переезжает вместе с ней при выгрузке и загрузке базы.
Законно ли снять пароль, если решение куплено официально?
Покупка даёт право использования, а не право обходить защиту автора. Снимать пароль можно, если разработчик сам дал пароль или разрешил изменения по договору.
Что делать, если модуль пустой, а пароля не спрашивает?
Скорее всего, решение поставлено без исходных текстов. Вернуть код из базы нельзя, получить его можно только у разработчика.

Источники

  • Гражданский кодекс РФ, часть четвёртая, ст. 1280 и ст. 1299
  • Гражданский кодекс РФ, ст. 1301
  • Уголовный кодекс РФ, ст. 146