Почему в 1С вместо сотрудника отображается «Объект не найден» и как это исправить?

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

Ситуация, когда пользователь видит загадочную надпись «Объект не найден» (за которой следует длинный набор символов — GUID) вместо фамилии сотрудника, часто вызывает недоумение. Особенно странным кажется то, что в общих отчетах по зарплате цифры по этому сотруднику могут суммироваться, но детальная информация или выбор его в списке остаются недоступными. Разберем детально, почему это происходит в системах на базе 1С (таких как BAS Бухгалтерия КОРП, ЗУП или ERP) и как восстановить корректное отображение данных.

Различие между битой ссылкой и ограничением прав

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

  1. Физическое удаление объекта: Элемент справочника был помечен на удаление и удален из базы, но ссылка на него осталась в документе. В этом случае объект не увидит даже администратор с полными правами.
  2. Ограничение доступа (RLS): Объект существует в базе, но текущему пользователю запрещено его «чтение» на уровне платформенных настроек прав.

Проанализируем ситуацию: если под учетной записью с полными правами сотрудник виден корректно, значит, мы имеем дело с Record Level Security (RLS) — механизмом управления доступом на уровне отдельных записей. Платформа видит, что в поле документа записан идентификатор (GUID), но при попытке получить текстовое представление (ФИО сотрудника) срабатывает фильтр безопасности, который возвращает заглушку вместо данных.

Механизм работы RLS в конфигурациях КОРП-уровня

В продвинутых конфигурациях, таких как BAS Бухгалтерия КОРП, механизмы прав доступа значительно сложнее, чем в базовых версиях. Рассмотрим, по каким измерениям может быть ограничен доступ к сотруднику:

Почему в отчетах данные видны частично?

Выясним причину странного поведения системы: в отчете «Расчетный листок» сотрудника нет, а в общем «Своде» суммы сходятся. Это происходит из-за особенностей работы Системы Компоновки Данных (СКД) и использования ключевого слова РАЗРЕШЕННЫЕ в запросах.

Рассмотрим пример запроса, который может выполняться в отчете:


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Зарплата.Сотрудник КАК Сотрудник,
    Зарплата.СуммаНачисления КАК Сумма
ИЗ
    РегистрРасчета.Зарплата КАК Зарплата

Если на Регистр Расчета у пользователя есть полные права, а на справочник Сотрудники наложен RLS, то произойдет следующее:

  1. Система выберет все записи из регистра.
  2. В колонке «Сотрудник» вместо ссылки на объект будет возвращено значение, которое система не сможет расшифровать для пользователя.
  3. Если в отчете стоит группировка по подразделениям или просто вывод итогов, суммы будут верными, так как они берутся из числовых полей регистра.
  4. Однако, как только вы попытаетесь установить отбор по конкретному сотруднику, система обратится к справочнику, не найдет там разрешенных записей и вернет пустой результат.

Пошаговая диагностика и решение проблемы

Проанализируем ситуацию последовательно, чтобы найти «узкое место» в настройках:

Шаг 1. Проверка справочника физических лиц

Перейдем в карточку физического лица, соответствующего проблемному сотруднику. Проверим поле Группа доступа. Если оно заполнено, убедимся, что у проблемного пользователя в его профиле групп доступа (раздел Администрирование — Настройки пользователей и прав) добавлена эта группа в список разрешенных.

Шаг 2. Проверка иерархии подразделений

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

Шаг 3. Использование консоли запросов

Для программиста или администратора самый быстрый способ подтвердить теорию RLS — выполнить простой запрос в консоли под учетной записью пользователя (или через запуск сеанса под ним):


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Сотрудники.Ссылка,
    Сотрудники.Наименование
ИЗ
    Справочник.Сотрудники КАК Сотрудники
ГДЕ
    Сотрудники.Наименование ПОДОБНО "%ФамилияСотрудника%"

Если запрос возвращает пустой результат, а под полными правами запись видна — ограничение прав подтверждено на 100%.

Шаг 4. Обновление дескрипторов доступа

В современных версиях 1С используется механизм управления доступом через дескрипторы. Иногда система не успевает обновить права при быстром изменении кадровых данных. Проверим, выполняются ли регламентные задания:

Попробуйте запустить их принудительно из раздела «Обслуживание» — «Регламентные операции».

Влияние кэширования

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

Для решения рекомендуем выполнить очистку кэша: либо через удаление базы из списка и повторное добавление, либо путем удаления папок в директории %AppData%\1C\1Cv8\.

Резюме

Проблема «Объект не найден» в 1С при наличии данных в базе — это классический признак работы механизма RLS. Для исправления ситуации необходимо проверить настройки профилей групп доступа, обращая особое внимание на разрешенные подразделения и группы доступа физических лиц. Использование СКД в отчетах часто маскирует эту проблему, показывая общие суммы, что не должно вводить вас в заблуждение при диагностике.

← На главную