Как исправить ошибку «Поле объекта не обнаружено (ВидыДокументовМежрасчетныхНачислений)» в 1С:ЗУП 3.1

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

При работе в программе 1С:Зарплата и управление персоналом 3.1 пользователи часто сталкиваются с неприятной ситуацией: при попытке создания ведомости на выплату зарплаты или выборе способа выплаты система выдает критическую ошибку. Текст ошибки обычно выглядит так: Поле объекта не обнаружено (ВидыДокументовМежрасчетныхНачислений). Проблема локализуется в общем модуле СпособыВыплатыЗарплатыРасширенный.

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

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

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

  1. Рассинхронизация кэша: Платформа «помнит» старую структуру метаданных, в которой этого объекта не было или он назывался иначе, в то время как программный код уже обновлен.
  2. Ошибка динамического обновления: Так называемое «демоническое» обновление, когда конфигурация базы данных была изменена при работающих пользователях, что привело к некорректной компиляции модулей.
  3. Влияние расширений: Установленное расширение может подменять логику работы с объектами выплаты, не имея при этом актуальной информации о структуре основной конфигурации.
  4. Повреждение файла базы данных: После аварийного завершения работы ПК (выключение света, системный сбой) индексы таблиц могут быть повреждены.

Метод 1: Радикальная очистка кэша (самый эффективный способ)

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

  1. Полностью закройте все окна 1С и остановите службу сервера (если у вас клиент-серверный вариант).
  2. Найдите каталог, в котором физически расположен файл вашей базы данных (обычно это файл 1Cv8.1CD).
  3. Создайте на диске новую папку с произвольным названием.
  4. Переместите (не скопируйте, а именно переместите) файл базы данных в эту новую папку.
  5. Запустите стартер 1С, удалите старую базу из списка и добавьте её заново, указав путь к новой папке.

Почему это работает? При изменении пути к базе данных 1С генерирует для неё новый уникальный идентификатор (ID). Это заставляет платформу создать абсолютно чистые кэш-директории, полностью исключая влияние «шлаковых» файлов, которые могли остаться в профиле пользователя Windows.

Метод 2: Проверка и отключение расширений

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

  1. Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Расширения.
  2. Посмотрим на список активных расширений. Если есть расширения, затрагивающие зарплатный блок или выплаты, попробуем их временно отключить (снять галочку «Активно»).
  3. Перезапустим программу. Если ошибка исчезла — расширение необходимо обновить до версии, совместимой с вашим релизом ЗУП.

Метод 3: Тестирование и исправление с особыми параметрами

Если проблема вызвана аварийным завершением работы ПК, стандартного chdbfl.exe может быть недостаточно. Рассмотрим, как правильно выполнить тестирование в Конфигураторе:

  1. Запустим Конфигуратор и создадим архивную копию (обязательно!).
  2. Зайдем в меню Администрирование — Тестирование и исправление.
  3. Установим следующие флаги:
    • Реиндексация таблиц информационной базы.
    • Проверка логической целостности.
    • Проверка ссылочной целостности.
    • Пересчет итогов.
  4. В поле «При наличии ссылок на несуществующие объекты» выберем «Очищать ссылки».
  5. Нажмем «Выполнить».

Метод 4: Диагностика через консоль запросов

Чтобы окончательно убедиться, виноват ли код или структура данных, попробуем выполнить простой запрос в «Консоли запросов» (её можно запустить через функции для технического специалиста):


ВЫБРАТЬ ПЕРВЫЕ 1
    ВидыДокументовМежрасчетныхНачислений.Ссылка КАК Ссылка
ИЗ
    Перечисление.ВидыДокументовМежрасчетныхНачислений КАК ВидыДокументовМежрасчетныхНачислений

Если запрос выполняется успешно и возвращает значения (например, Премия, Отпуск), значит, с метаданными всё в порядке, и проблему нужно искать исключительно в программном кэше (см. Метод 1). Если же запрос выдает ошибку «Таблица не найдена», значит, структура базы данных действительно повреждена, и поможет только выгрузка/загрузка в формат .dt.

Метод 5: Особенности базовых версий и платформы

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

  1. Убедимся, что используемая платформа не ниже версии 8.3.18. Старые версии (например, 8.3.15.1700) имели критические ошибки в управлении памятью, которые провоцировали подобные сбои.
  2. Попробуем выполнить «обновление через файл». Даже если у вас установлена актуальная версия, скачайте дистрибутив обновления (файл .cf или .cfu) и запустите процедуру обновления, указав этот файл вручную. Это заставит систему пересобрать дерево объектов метаданных.

Важный совет: Никогда не пренебрегайте очисткой серверного кэша, если работаете в клиент-серверном режиме. Для этого необходимо очистить содержимое папки snaccfg в каталоге данных сервера 1С (обычно C:\Program Files\1cv8\srvinfo), предварительно остановив службу 1C:Enterprise 8.3 Server Agent.

Совместное применение этих методов позволяет устранить ошибку ВидыДокументовМежрасчетныхНачислений и вернуть программу в рабочее состояние без потери данных.

← На главную