Как исправить ошибку «Таблица не найдена "РегистрСведений.НаличиеПрисоединенныхФайлов"» в 1С:ЗУП?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При работе в программе «1С:Зарплата и управление персоналом 8» (редакция 3.1) пользователи могут столкнуться с критической ошибкой при попытке открыть журнал документов «Приемы, переводы, увольнения». Система выдает сообщение: «Таблица не найдена "РегистрСведений.НаличиеПрисоединенныхФайлов"». Особенность ситуации заключается в том, что в типовой конфигурации такого регистра может не существовать — стандартный объект называется НаличиеФайлов.

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

Выясняем причину возникновения ошибки

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

  1. Некорректное обновление конфигурации. Если база была доработана или обновлялась в режиме «демонического» (динамического) обновления, внутренняя таблица соответствий имен объектов (dbnames) могла повредиться.
  2. Ошибки в расширениях. Часто сторонние расширения или старые кастомные доработки обращаются к объектам, которые были переименованы в новых релизах поставщика.
  3. Кэш платформы. Локальные временные файлы на компьютере пользователя могут хранить старые определения запросов или метаданных.
  4. Пользовательские настройки. Платформа 1С сохраняет настройки динамических списков (отборы, группировки). Если ранее в системе существовал регистр НаличиеПрисоединенныхФайлов, ссылка на него могла «застрять» в настройках конкретной формы у пользователя.

Способ 1. Очистка локального кэша (основное решение)

Как показывает практика, в большинстве случаев проблема решается полной очисткой кэша. Рассмотрим, как это сделать правильно. Выясним, что удаление временных файлов заставляет платформу заново считать актуальную структуру метаданных из базы.

Для очистки кэша выполним следующие действия:

  1. Закроем все сеансы работы с базой 1С.
  2. Удалим базу из списка в окне запуска и добавим её заново. Это самый простой способ очистить локальный кэш для конкретной информационной базы.
  3. Или воспользуемся ключом запуска /ClearCache. Для этого в настройках информационной базы в списке запуска, в поле «Дополнительные параметры запуска», пропишем данную команду. Стоит учитывать, что этот ключ очищает только кэш клиент-серверных вызовов.
  4. Для ручной очистки перейдем в каталоги %AppData%\Local\1C\1cv8 и %AppData%\Roaming\1C\1cv8 и удалим папки с именами в виде длинных идентификаторов (например, 2840740a-995a-4648-9363-f9d2d7c48972).

Способ 2. Сброс настроек формы и динамического списка

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

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Выберем пункт Персональные настройки пользователей — Очистка настроек.
  3. В открывшемся списке найдем нужного пользователя и форму журнала документов ПриемыПереводыУвольнения.
  4. Удалим все настройки для этой формы (отборы, условное оформление, настройки списка).

Способ 3. Проверка и отключение расширений

Посмотрим на проблему со стороны программного кода. Если поиск по основной конфигурации (Ctrl+Shift+F) не находит строку «НаличиеПрисоединенныхФайлов», значит запрос формируется динамически или находится в расширении. Проверим этот момент:

  1. Откроем список расширений конфигурации.
  2. Поочередно отключим активные расширения и проверим, открывается ли журнал.
  3. Если после отключения расширения ошибка исчезла, значит в коде расширения или в его динамических списках прописано обращение к несуществующему регистру. Рассмотрим возможность исправления кода в расширении на РегистрСведений.НаличиеФайлов.

Способ 4. Тестирование и исправление информационной базы

В ситуациях, когда проблема вызвана «демоническим» обновлением, необходимо восстановить логическую целостность базы данных. Разберем шаги выполнения процедуры в конфигураторе:

  1. Обязательно создадим резервную копию базы данных.
  2. Запустим конфигуратор и выберем пункт меню Администрирование — Тестирование и исправление.
  3. Установим флажки:
    • Проверка логической целостности;
    • Проверка ссылочной целостности;
    • Реиндексация таблиц.
  4. Запустим выполнение и дождемся завершения процесса.

Способ 5. Серверные процедуры обслуживания

Если база работает в клиент-серверном варианте, локальной очистки кэша может быть недостаточно. Проанализируем состояние серверного сеанса. Рекомендуется выполнить перезагрузку службы 1C:Enterprise 8.3 Server Agent. Это принудительно очистит серверный кэш и временные данные сеансов, которые могут содержать устаревшие ссылки на таблицы метаданных.

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

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

← На главную