Почему не видны некоторые контрагенты в справочнике «Контрагенты» 1С:ERP и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет IT и автоматизация бизнеса
← На главную

В современных конфигурациях на платформе 1С:Предприятие 8.3, таких как 1С:ERP, 1С:Комплексная автоматизация (КА) и 1С:Управление торговлей (УТ 11), пользователи часто сталкиваются с ситуацией, когда контрагент физически существует в базе, но не отображается в списке. При попытке создать его заново программа выдает предупреждение, что объект с таким ИНН уже есть, однако поиск в справочнике не дает результатов. Ситуация осложняется тем, что в документах этот контрагент может выбираться корректно, а под другими учетными записями вместо наименования может отображаться сообщение «Объект не найден».

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

Причина 1. Разделение понятий «Партнеры» и «Контрагенты»

Самая распространенная причина «невидимости» заключается в двухуровневой архитектуре ведения нормативно-справочной информации. В 1С:ERP разделены управленческий учет (справочник Партнеры) и регламентированный учет (справочник Контрагенты).

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

Как решить проблему:

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


// Пример логики для поиска контрагентов без партнеров
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Контрагенты.Ссылка КАК КонтрагентСсылка,
    |	Контрагенты.Наименование КАК Наименование
    |ИЗ
    |	Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |	Контрагенты.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)";

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    // Логика создания или привязки партнера
КонецЦикла;

Причина 2. Ограничения на уровне записей (RLS)

Если один пользователь видит контрагента, а другой получает ошибку «Объект не найден (89:...)», проанализируем настройки прав доступа. В 1С:ERP реализована сложная система RLS (Record Level Security). Даже если флаг общего ограничения прав кажется выключенным, могут действовать ограничения по Группам доступа партнеров.

Разберем по шагам, как это проверить:

  1. Зайдем в систему под пользователем с полными правами.
  2. Откроем карточку «проблемного» контрагента или партнера.
  3. Проверим поле Группа доступа. Если там указано значение, то увидеть этот объект смогут только те пользователи, в чьи профили групп доступа включена данная группа.
  4. Сформируем отчет «Права доступа» непосредственно из карточки пользователя, который не видит объект. Это позволит точно определить, блокирует ли система чтение данной записи.

Причина 3. Пользовательские фильтры и настройки формы

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

Рассмотрим подробнее популярные настройки:

Для быстрого исправления рекомендуется выполнить команду: Еще — Установить стандартные настройки. Это сбросит все пользовательские отборы в динамическом списке.

Причина 4. Проблемы с индексом полнотекстового поиска

Когда мы вводим название компании в строку поиска, система обращается не напрямую к таблицам БД, а к индексу полнотекстового поиска (ПП). Если индекс не обновлен или поврежден, поиск будет выдавать пустой результат, хотя запись в базе присутствует.

Посмотрим, как обновить индекс:

  1. Перейдем в раздел НСИ и администрирование — Администрирование — Поддержка и обслуживание.
  2. Найдем пункт Управление полнотекстовым поиском.
  3. Нажмем кнопку Обновить индекс или, в случае серьезных расхождений, выберем Очистить индекс, а затем Создать индекс.

Причина 5. Технические повреждения базы данных и кэш

Если все методические настройки проверены, но контрагент по-прежнему ведет себя странно (например, «мерцает» в списке или выдает ошибку ссылки), стоит заподозрить технический сбой.

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

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

Выяснив причину и применив один из описанных методов, мы сможем восстановить корректное отображение данных в справочнике «Контрагенты» и обеспечить стабильную работу пользователей в системе 1С:ERP.

← На главную