Ошибка «Модуль объекта не обнаружен»: кэш, обновление базы и тестирование
Содержание
Ошибку Модуль объекта не обнаружен в 1С обычно исправляют в таком порядке: запуск с параметром /ClearCache, затем в Конфигураторе Конфигурация → Обновить конфигурацию базы данных, затем Администрирование → Тестирование и исправление. Первый шаг занимает минуту и помогает, если сбой видит один пользователь. Второй и третий нужны, когда ошибка у всех и появилась после обновления или аварийного завершения.
Платформа выдаёт это сообщение, когда не может получить откомпилированный код модуля объекта: документа, справочника, обработки или отчёта. Сам код может быть в порядке. Сломан бывает кэш на компьютере, хранимая в базе копия конфигурации или файл внешней обработки. Задача — понять, какой из этих слоёв дал сбой.
Почему 1С не находит модуль объекта
Модуль объекта хранится в конфигурации базы данных. При запуске платформа берёт его оттуда, компилирует и кладёт копию в локальный кэш. Ошибка возникает, когда на одном из этих этапов что-то не сходится.
Типичные причины:
- 🗂️ Повреждённый кэш клиента. Компьютер выключили во время работы, профиль скопировали с другой машины, антивирус заблокировал файлы кэша. Ошибка тогда видна у одного пользователя или на одном компьютере.
- 🔄 Прерванное обновление. Реструктуризация оборвалась из-за сбоя питания, закрытия Конфигуратора через диспетчер задач или нехватки места. В базе остаётся конфигурация «наполовину».
- 💾 Повреждение файла базы или таблиц СУБД. Для файловой базы — сбои диска, работа по сети с нестабильным соединением, копирование файла
1Cv8.1CDпри открытых сеансах. - 📄 Битая внешняя обработка или отчёт. Файл
.epfили.erfскачан не полностью, сохранён в другой версии платформы или испорчен при пересылке. - 🧩 Расширение конфигурации не подходит к базе. Расширение делали под другой релиз, и после обновления оно ссылается на изменившиеся объекты.
- 🔒 Конфигурация без исходных текстов. Некоторые отраслевые решения поставляют часть модулей только в откомпилированном виде. Если поставщик не выпустил сборку под вашу версию платформы, такие модули могут не подняться.
Ниже в таблице — как по признакам быстро сузить круг поиска.
| Что видите | Вероятный слой | С чего начать |
|---|---|---|
| Ошибка у одного пользователя | Кэш клиента | Очистка кэша |
| Ошибка у всех после обновления | Конфигурация базы | Обновление конфигурации БД |
| Ошибка у всех без видимой причины | Данные или файл базы | Тестирование и исправление |
| Только при открытии одной внешней обработки | Файл .epf / .erf | Пересохранить или заменить файл |
| После установки или обновления расширения | Расширение | Отключить расширение и проверить |
Где взять подробности: текст ошибки и журнал регистрации
Само сообщение мало что говорит. Нажмите в окне ошибки кнопку «Подробно» (или ссылку с подробным текстом) и скопируйте всё содержимое. Обычно там указан объект: например, Обработка.ЗагрузкаИзФайла.МодульОбъекта или Документ.РеализацияТоваровУслуг.МодульОбъекта.
Имя объекта сразу подсказывает направление:
- 🔹 имя начинается с
ВнешняяОбработкаилиВнешнийОтчет— проблема в файле, а не в базе; - 🔹 в имени есть префикс расширения или объект вы добавляли сами — проверяйте расширение;
- 🔹 стандартный объект типовой конфигурации — смотрите кэш и конфигурацию базы.
Как найти записи в журнале регистрации
Журнал регистрации показывает, когда ошибка появилась впервые и у кого.
- В пользовательском режиме БП 3.0 и ЗУП 3.1 откройте
Администрирование → Обслуживание → Журнал регистрации. В Конфигураторе —Администрирование → Журнал регистрации. - Установите отбор по уровню «Ошибка» и по интервалу — день, когда пожаловались пользователи.
- Ищите в колонке комментария текст «Модуль объекта не обнаружен».
- Посмотрите записи рядом по времени: события обновления конфигурации, установки расширений, аварийного завершения сеансов.
Если первая ошибка в журнале идёт сразу после записи об изменении конфигурации или расширения — причина почти наверняка в обновлении. Начинайте со второго шага, кэш можно пропустить.
Если журнал пуст или база не открывается в пользовательском режиме, переходите к шагам ниже.
Шаг 1. Очистка кэша, если ошибка у одного пользователя
Самое быстрое и безопасное действие. Данные базы оно не трогает.
Через параметр запуска
- Закройте все окна 1С на этом компьютере.
- В окне запуска выделите базу и нажмите «Изменить».
- Дойдите до последней страницы мастера. В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Нажмите «Готово» и запустите базу.
- Если ошибка ушла, уберите параметр — иначе кэш будет очищаться при каждом входе и запуск станет медленнее.
Вручную через папки профиля
Если параметр не помог, удалите кэш руками. Папки находятся здесь:
%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8
Внутри — каталоги с длинными именами вида GUID, по одному на каждую базу. Удалять нужно именно их. Файлы ibases.v8i и 1cv8strt.pfl в соседней папке %APPDATA%\1C\1CEStart не трогайте: в первом хранится список баз
.
Перед удалением закройте 1С у этого пользователя. Если удалить кэш при открытом сеансе, часть файлов останется занятой, а работа оборвётся с ошибкой.
На терминальном сервере кэш свой у каждой учётной записи. Чистить нужно в профиле того пользователя, у которого ошибка.
Шаг 2. Обновление конфигурации базы данных
Этот шаг нужен, когда ошибка у всех и связана по времени с обновлением. Часто основная конфигурация уже новая, а конфигурация базы данных осталась старой или обновилась не до конца.
Перед любыми действиями в Конфигураторе сделайте резервную копию: Администрирование → Выгрузить информационную базу в файл .dt.
Порядок действий:
- Попросите пользователей выйти из базы. Для обновления структуры нужен монопольный доступ.
- Откройте базу в режиме Конфигуратора.
- Выберите
Конфигурация → Открыть конфигурацию, чтобы увидеть дерево основной конфигурации. - Выполните
Конфигурация → Обновить конфигурацию базы данных(клавишаF7). - Если платформа покажет список изменений структуры — примите его и дождитесь окончания. Не закрывайте окно, даже если процесс идёт долго.
- Запустите базу в режиме 1С:Предприятие и повторите действие, на котором была ошибка.
Если пункт обновления недоступен или платформа сообщает, что конфигурации совпадают, — конфигурация базы цела. Переходите к шагу 3.
Если обновление прервалось
Прерванная реструктуризация — главная причина «пропавших» модулей. Повторите обновление ещё раз из Конфигуратора. Если повторно не проходит и выдаёт ту же или другую ошибку, верните базу из .dt, сделанного до обновления, и обновите заново.
Перед повтором проверьте свободное место. Для реструктуризации больших таблиц нужен запас примерно в размер самой базы: на диске файловой базы или в файлах данных и журнала СУБД.
Проверка синтаксиса модулей
Если конфигурацию дорабатывали, полезно убедиться, что модули компилируются. Выберите Конфигурация → Проверка конфигурации, отметьте синтаксический контроль модулей и запустите. Ошибки компиляции в модуле объекта тоже могут проявляться как отсутствие модуля у пользователя.
Шаг 3. Тестирование и исправление информационной базы
Если кэш и обновление не помогли, проверьте саму базу. Режим доступен в Конфигураторе: Администрирование → Тестирование и исправление.
Тестирование с исправлением запускайте только после выгрузки в .dt: режим удаляет битые записи, и вернуть их без копии нельзя.
Какие флажки ставить:
| Проверка | Зачем при этой ошибке |
|---|---|
| Реиндексация таблиц информационной базы | Перестраивает индексы, в том числе служебных таблиц |
| Проверка логической целостности информационной базы | Находит нарушения во внутренней структуре, включая конфигурацию |
| Проверка ссылочной целостности информационной базы | Ловит «битые» ссылки на удалённые объекты |
| Пересчёт итогов | Для этой ошибки не обязателен, но обычно включают заодно |
| Сжатие таблиц информационной базы | Для файловой базы, уменьшает размер файла |
Сначала запустите режим «Тестирование» без исправления и почитайте отчёт. Если ошибки найдены — повторите с режимом «Тестирование и исправление». Для битых ссылок выберите вариант «Создавать объекты» или «Не изменять», а не «Удалять ссылки»: так вы не потеряете проводки и документы, которые на них ссылаются.
Для режима нужен монопольный доступ. На базе в несколько гигабайт проверка идёт от десятков минут до нескольких часов — планируйте её на вечер.
Если модуль объекта не обнаружен во внешней обработке или расширении
Ошибка часто вообще не связана с базой. Её вызывает один файл или одно расширение.
Внешняя обработка или отчёт
- Проверьте размер файла
.epfили.erf. Пустой или очень маленький файл говорит о неполной загрузке — запросите файл ещё раз. - Откройте его в Конфигураторе через
Файл → Открыть. Если файл открывается и модуль объекта виден, пересохраните его черезФайл → Сохранитьв текущей версии платформы. - Если обработка подключена в базе как дополнительная, загрузите обновлённый файл заново в карточку дополнительной обработки. В БП 3.0 список находится в
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. - Обработку, написанную под другую конфигурацию, лучше не «чинить», а запросить у автора версию под ваш релиз.
Расширение конфигурации
- В пользовательском режиме БП 3.0 откройте
Администрирование → Печатные формы, отчеты и обработки → Расширения. В Конфигураторе —Конфигурация → Расширения конфигурации. - Снимите флажок «Активно» у подозрительного расширения и перезапустите базу.
- Если ошибка пропала — обновите расширение у разработчика или адаптируйте его к новому релизу.
- В Конфигураторе после правки расширения обновите конфигурацию базы данных, иначе изменения не применятся.
Не удаляйте расширение, если в нём есть свои реквизиты или объекты: при удалении пропадут и данные, которые в них хранились. Отключение флажком безопасно.
Файловая и клиент-серверная база: что делается по-разному
Порядок шагов общий, но инструменты разные.
Файловая база
- 🖥️ Проверка физической целостности. В каталоге платформы, в папке
bin, лежит утилитаchdbfl.exe. Она проверяет файл1Cv8.1CDна уровне страниц. Запускайте её, когда никто не работает с базой, и на копии файла. - 🌐 Работа по сети. Если база лежит в общей папке, сбои часто идут от обрывов соединения. Проверьте сеть и исключите папку базы из проверки антивирусом.
- 📦 Копирование файла. Копировать
1Cv8.1CDможно только когда все сеансы закрыты. Копия, снятая «на ходу», может нести этот сбой.
Клиент-серверная база
- 🧠 Серверный кэш. Кроме клиентского кэша, свой кэш есть у сервера 1С: папки с именами, начинающимися на
snccntx, внутри каталога кластера вsrvinfo(по умолчаниюsrvinfo\reg_1541). Удалять их можно только при остановленной службе «Агент сервера 1С:Предприятия 8.3». - 🗄️ Проверка СУБД. Тестирование и исправление работает и для серверной базы. Физическую целостность таблиц проверяют средствами СУБД: в MS SQL Server —
DBCC CHECKDB, в PostgreSQL — средствами резервного копирования и проверки самого сервера. - 👥 Сеансы. Для обновления и тестирования нужно завершить сеансы через консоль администрирования серверов 1С и установить блокировку начала сеансов в свойствах базы.
-- MS SQL Server: проверка базы без исправления
DBCC CHECKDB ('ИмяБазы') WITH NO_INFOMSGS;
Остановка службы агента сервера и завершение сеансов обрывают работу всех пользователей на этом сервере, а не только в одной базе. Делайте это вне рабочего времени и заранее предупредите людей.
Если после очистки серверного кэша ошибка ушла у всех разом — причина была на сервере. Повторять очистку регулярно не нужно, это разовое лечение.
Как не допустить повторения ошибки модуля объекта
Большинство случаев связано с прерванными операциями. Профилактика простая.
- ✅ Резервная копия перед каждым обновлением. Выгрузка в .dt или копия файла базы при закрытых сеансах.
- ✅ Обновление только в монопольном режиме. Не обновляйте конфигурацию базы, пока у пользователей открыты сеансы и идут обмены.
- ✅ Не прерывать реструктуризацию. Если окно «зависло», подождите: на больших базах процесс может идти больше часа.
- ✅ Запас места на диске. Следите, чтобы на диске базы и временных файлов оставалось свободное пространство.
- ✅ ИБП для сервера. Отключение питания во время записи — частая причина повреждений.
- ✅ Расширения и внешние обработки — под ваш релиз. После обновления типовой конфигурации проверяйте каждое расширение.
- ✅ Тестирование по расписанию. Раз в месяц–квартал прогоняйте тестирование без исправления на копии базы, чтобы заметить проблемы до того, как их заметят пользователи.