К статье
Практический материал

Разработка и Конфигурация · 9 мин

1С: исходный текст модуля отсутствует — как открыть модуль

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

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

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

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

Почему платформа пишет «исходный текст модуля отсутствует»

При поставке конфигурации разработчик выбирает, какие модули включать в поставку с исходным текстом, а какие — только в скомпилированном виде. Платформа исполняет скомпилированный байт-код, поэтому программа работает нормально, но посмотреть и изменить код нельзя. Это стандартный механизм защиты типовых и тиражных решений.

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

Третья группа причин — технические: конфигурация загружена из урезанного cf-файла, обновление выполнено дистрибутивом «только для обновления» без соответствующей предыдущей версии, либо файлы базы повреждены. В этих случаях проблема решается восстановлением корректной поставки, а не поиском обходных путей.

Текст отсутствует во многих модуляхПоставка без исходных кодов

Проверьте, типовая ли это конфигурация и от какого поставщика

Запрос пароля при открытииМодуль защищён паролем

Уточните у разработчика или в документации внедрения

Текст пропал после обновленияНекорректный дистрибутив обновления

Проверьте, подходил ли cf-файл для вашей версии

Текст пропал внезапно, без обновленийВозможное повреждение базы

Выполните тестирование и исправление на копии

Как проверить режим поставки конфигурации

Откройте конфигуратор и перейдите в меню «Конфигурация» → «Поставка конфигурации» → «Настройка поставки». В открывшемся окне видно, какие модули включены в поставку с текстами, а какие — без. Если напротив нужного модуля стоит признак поставки без исходного текста, причина найдена: так задумано поставщиком.

Дополнительно проверьте пункт «Конфигурация» → «Поддержка» → «Настройка поддержки». Там видно, находится ли конфигурация на поддержке у поставщика и включён ли режим запрета изменений. У типовых решений часть объектов обычно закрыта от редактирования, а часть модулей поставляется без исходников — это штатное состояние.

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

Как получить полную поставку с исходными текстами

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

Для отраслевых и партнёрских решений запросите у поставщика cf-файл полной поставки с исходными текстами. Формулировка запроса: «дистрибутив конфигурации с исходными текстами модулей для целей сопровождения». Поставщик вправе отказать, если лицензионное соглашение не предусматривает передачу кода, — это нужно учитывать ещё при покупке решения.

Порядок обновления из полного дистрибутива стандартный: сделайте резервную копию, откройте «Конфигурация» → «Поддержка» → «Обновить конфигурацию», выберите файл поставки и выполните обновление. После завершения проверьте, открываются ли ранее закрытые модули.

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

Что делать с модулем, закрытым паролем

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

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

Восстановление при повреждении базы или ошибочной поставке

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

Действуйте на копии базы. Для файловой базы запустите утилиту chdbfl.exe из каталога установки платформы и выполните проверку физической целостности файла 1Cv8.1CD. Затем в конфигураторе выполните «Администрирование» → «Тестирование и исправление» с проверкой логической и ссылочной целостности.

Если проверка не помогла, восстановите базу из последней рабочей резервной копии. Для клиент-серверных баз используйте штатные средства СУБД (MS SQL, PostgreSQL) — выгрузка dt и восстановление через неё надёжнее, чем манипуляции с файлами напрямую.

Контрольные точки

Как проверить результат

Открытие модуля в конфигураторе
Норма

Текст модуля отображается и доступен для чтения

Тревожный признак

Снова сообщение об отсутствии текста или запрос пароля

Настройка поставки
Норма

Модули включены в поставку с исходными текстами

Тревожный признак

Модули по-прежнему поставляются без текстов

Работа базы
Норма

Нет ошибок формата потока, конфигуратор стабилен

Тревожный признак

Ошибки чтения, пропадают другие объекты

Типичные ошибки при решении проблемы

Типичные ошибки
01
Обновление конфигурации без резервной копии — при сбое восстановить рабочее состояние будет нечем
02
Использование «взломщиков» паролей — нарушение лицензии и риск испортить конфигурацию
03
Тестирование и исправление на рабочей базе вместо копии — процесс может необратимо изменить данные
04
Попытка открыть модуль внешней обработкой, хотя проблема в режиме поставки всей конфигурации
05
Игнорирование договора с подрядчиком — код может юридически принадлежать разработчику

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

Как предотвратить потерю доступа к исходным текстам

Настройте регулярное резервное копирование и периодически сохраняйте конфигурацию в cf-файл: «Конфигурация» → «Сохранить конфигурацию в файл». Храните несколько поколений копий — это спасёт и от утерянных паролей, и от повреждений базы.

При работе с подрядчиками фиксируйте в договоре передачу исходных текстов и паролей на модули. Требуйте актуальный cf-файл с исходниками после каждого этапа доработок, а не только обещание «всё отдать в конце».

Для командной разработки используйте хранилище конфигурации или выгрузку в файлы конфигуратора (XML) под системой контроля версий. Тогда история изменений и исходные тексты сохраняются независимо от состояния конкретной базы.

Итог

Что важно запомнить

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

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

Программа работает нормально, но модуль не открывается — это опасно?

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

Можно ли обновлять конфигурацию, если часть модулей без исходных текстов?

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

Бывший сотрудник поставил пароль на модуль и уволился. Что делать?

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

Поможет ли выгрузка базы в dt и загрузка обратно?

Нет. Выгрузка в dt сохраняет конфигурацию в том виде, в каком она есть: если тексты модулей отсутствуют в поставке, после загрузки они также будут отсутствовать. Выгрузка полезна только как резервная копия.

Законно ли снимать пароль с модуля сторонними программами?

Нет, если модуль защищён правообладателем: это нарушает лицензионное соглашение и авторские права. Даже для собственных доработок безопаснее восстановить код из копии или переписать заново — утилиты взлома могут повредить конфигурацию.

После обновления пропали тексты модулей, которые раньше были открыты. Почему?

Скорее всего, обновление выполнено из дистрибутива, не предназначенного для вашей версии или редакции, либо поставщик изменил состав поставки. Проверьте настройку поставки и при необходимости обновитесь из полного дистрибутива, предварительно сделав копию.