При работе в режиме «Конфигуратор» разработчики и администраторы иногда сталкиваются с ситуацией, когда при попытке открыть, отредактировать или удалить форму определенного объекта (документа, справочника или отчета) платформа аварийно завершает работу с сообщением «Файл не обнаружен». В результате становится невозможным не только внести изменения в проблемный объект, но и выполнить типовое обновление конфигурации — реструктуризация зависает или аварийно прерывается.
Разберем природу возникновения этой ошибки, выясним, почему стандартные средства проверки базы данных не помогают, и рассмотрим пошаговые способы восстановления целостности конфигурации.
Проанализируем техническое устройство хранения метаданных в 1С. Внутренняя структура конфигурации хранится в таблицах базы данных (CONFIG — основная конфигурация и CONFIGSAVE — редактируемая конфигурация) в виде сжатых бинарных потоков (BLOB). Каждая форма, макет, модуль и элемент структуры привязаны к своему уникальному идентификатору (GUID).
Ошибка «Файл не обнаружен» свидетельствует о нарушении целостности метаданных: в общем дереве объектов конфигурации присутствует ссылка на поток формы, но сама бинарная запись в таблице CONFIG отсутствует, повреждена или имеет нарушенный заголовок сжатия (*Deflate/zlib*). Это часто происходит в результате некорректного динамического обновления информационной базы («демонического обновления») или сбоя при записи на диск.
Почему же стандартные инструменты не видят дефекта:
chdbfl.exe проверяет исключительно физическую структуру файла базы данных 1Cv8.1CD (целостность страниц, заголовков и таблиц), но не выполняет валидацию внутреннего содержимого сжатых потоков 1С.Если в конфигурацию не вносились серьезные нетиповые доработки (или если база типовая, но находилась на поддержке с возможностью редактирования), самым надежным и быстрым способом является полная перезапись таблиц метаданных из чистого файла поставщика того же самого релиза.
Важное примечание: многие ошибочно полагают, что команда «Загрузить конфигурацию из файла» удаляет пользовательские данные (проводки, документы, справочники). Это не так. Данная операция полностью перезаписывает только таблицы метаданных (структуру), сохраняя при этом все накопленные учетные данные в базе.
Разберем порядок действий по шагам:
.dt или прямое копирование файла 1Cv8.1CD для файловых баз / бэкап СУБД для клиент-серверных).Справка → О программе (например, релиз 2.0.23.13).Конфигурация → Сохранить конфигурацию в файл... и получаем чистый файл configuration.cf. Если доступна исходная база, файл поставщика можно также сохранить через Конфигурация → Поддержка → Настройка поддержки → Сохранить в файл.Конфигурация → Загрузить конфигурацию из файла..., выбрав сохраненный эталонный .cf.Обновить конфигурацию базы данных (клавиша F7) и подтверждаем реструктуризацию.После выполнения этой процедуры битые записи в таблице CONFIG будут полностью заменены корректными бинарными потоками от поставщика, ошибка «Файл не обнаружен» исчезнет, а конфигурация вернется на полную поддержку, что позволит штатно продолжить последующие обновления.
Если в поврежденную конфигурацию внесены многочисленные доработки и просто заменить её типовым файлом .cf нельзя, применим механизм выгрузки исходных кодов в иерархию XML-файлов.
Рассмотрим порядок решения:
Конфигурация → Выгрузить конфигурацию в файлы... (или используем пакетный запуск конфигуратора с ключом /DumpConfigToFiles).Конфигурация → Загрузить конфигурацию из файлов... (параметр /LoadConfigFromFiles).F7.В некоторых случаях ошибка вызвана повреждением локального кэша сеанса или таблицы незафиксированных изменений CONFIGSAVE (когда в режиме предприятия база работает стабильно, а сбой происходит только в конфигураторе).
Проанализируем сопутствующие действия:
1cv8.exe и очищаем каталоги кэша пользователя:
%LocalAppData%\1C\1cv8\
%AppData%\1C\1cv8\
%TEMP%.
DELETE FROM CONFIGSAVE;
Это возвращает конфигуратор к стабильному состоянию основной конфигурации базы данных, зафиксированному в таблице CONFIG.