Как исправить ошибку «Поле не найдено "ДанныеДляПодбора.ВидЗанятости"» после обновления в 1С?

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

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

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

Проанализируем техническую сторону проблемы. Текст ошибки выглядит следующим образом:

Ошибка при получении значения атрибута контекста (Параметры)... по причине: Поле не найдено "ДанныеДляПодбора.ВидЗанятости"

Дело в том, что начиная с версии 3.1.5, разработчики изменили структуру хранения метаданных в конфигурации. Ранее реквизит ВидЗанятости находился непосредственно в кадровых таблицах и некоторых связанных объектах подбора. В новых релизах этот реквизит был переименован в УдалитьВидЗанятости, а сами данные перенесены в новый периодический регистр сведений ВидыЗанятостиСотрудников.

Платформа 1С сохраняет персональные настройки динамических списков (видимость колонок, отборы, группировки) для каждого пользователя. Если до обновления у пользователя были настроены кастомные отборы или видимость колонок по полю ВидЗанятости в списке сотрудников, то после обновления система пытается применить старые настройки к новому динамическому списку. Так как старого поля в структуре больше нет, платформа выдает ошибку и блокирует открытие формы.

Способ 1. Очистка настроек пользователя через режим «1С:Предприятие»

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

Разберем процесс по шагам:

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

После этого настройки формы будут сброшены до стандартных (заводских), и справочник «Сотрудники» откроется без ошибок.

Способ 2. Программный сброс настроек для всех пользователей

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

Для этого в консоли кода (или через внешнюю обработку) администратор может выполнить следующую команду:


ХранилищеСистемныхНастроек.Удалить("Справочник.Сотрудники.ФормаСписка/НастройкиКомпоновщикаНастроек", , );

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

Способ 3. Очистка локального кэша платформы 1С

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

  1. Закройте программу «1С:Предприятие».
  2. В окне запуска выберите вашу информационную базу и нажмите кнопку Удалить.
  3. Нажмите кнопку Добавить и заново добавьте базу в список, указав тот же путь к файлу или серверу. Это действие сгенерирует новый уникальный идентификатор папки кэша.
  4. В качестве альтернативы можно вручную удалить папки временных файлов в каталогах:
    • %userprofile%\AppData\Local\1C\1cv8
    • %userprofile%\AppData\Roaming\1C\1cv8

Способ 4. Исправление внешних отчетов, обработок или расширений

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

← На главную