При переходе на новую информационную базу 1С:Управление торговлей 11.4 (УТ 11.4) или 1С:ERP специалисты часто сталкиваются с ситуацией, когда после успешной, на первый взгляд, загрузки данных (партнеров и контрагентов) из старых систем, они не отображаются в выпадающих списках или формах выбора документов. В поле «Клиент» или «Поставщик» доступен только один элемент — «Розничный покупатель». Рассмотрим подробно причины этой проблемы и разберем по шагам методы её решения.
Для начала проанализируем, как устроена работа со сведениями о клиентах в современных конфигурациях на платформе 1С:Предприятие 8.3. В УТ 11.4 реализовано разделение на две сущности:
Если в настройках программы включена опция Независимо вести партнеров и контрагентов, система требует строгой привязки этих объектов друг к другу. Однако основной причиной «невидимости» данных в списках выбора чаще всего являются не сами справочники, а служебные механизмы платформы, предназначенные для оптимизации поиска.
Выясним основную техническую причину. В конфигурации УТ 11.4 для быстрого построения динамических списков и форм подбора используется вспомогательный регистр сведений ИерархияПартнеров. Этот регистр хранит структуру подчиненности и связи, которые позволяют системе мгновенно фильтровать тысячи записей.
При штатном создании партнера через интерфейс записи в этом регистре создаются автоматически. Однако, если загрузка производилась программно (через COM-соединение, XML, Excel или самописные обработки), механизм подписки на события или логика формы может не сработать. В результате справочник Партнеры заполнен, а служебный регистр — пуст.
Как исправить ситуацию:
Нам необходимо заставить систему пересчитать иерархию. Для этого можно воспользоваться следующими методами:
Партнеры, добавьте условие (например, по дате создания или группе), и выполните запись объектов без изменения реквизитов.Рассмотрим ситуацию, когда с иерархией все в порядке, но фильтры в документах все равно отсекают записи. В УТ 11.4 у каждого партнера есть флаги (признаки), определяющие его роль в бизнес-процессах:
При массовой загрузке эти реквизиты часто остаются в значении Ложь. Проанализируем данные: если у «Розничного покупателя» эти флаги установлены по умолчанию, а у загруженных партнеров — нет, то система ведет себя корректно, скрывая неподходящие записи. Проверьте реквизиты Клиент и Поставщик в справочнике Партнеры.
Система 1С:УТ 11 использует специальный индекс для полнотекстового поиска и оптимизированного подбора. Посмотрим на работу регламентных операций. Зайдите в раздел «НСИ и администрирование» — «Обслуживание» — «Регламентные операции».
Найдите задание Обновление данных для подбора партнеров. Если база новая, и в неё только что «закачали» большой объем данных, это задание могло еще не выполниться или зависнуть из-за ошибок блокировки. Выполните его принудительно. Это обновит поисковые индексы, и партнеры станут доступны для выбора в документах.
Иногда причина кроется в установленных фильтрах по умолчанию в самой форме выбора. Проанализируем следующие параметры:
В работе (или Активен). Если партнеры загружены со статусом Закрыт или В архиве, они будут скрыты фильтрами формы выбора.Если в базе включено ограничение прав доступа на уровне записей (RLS), система проверяет, имеет ли текущий пользователь право видеть конкретного партнера. Разберем, как это работает в УТ 11.4:
В карточке партнера есть поле Группа доступа. Если это поле не заполнено при загрузке, а в профиле групп доступа пользователя указаны ограничения, то система может запретить отображение таких партнеров всем, кроме пользователей с полными правами. Даже если вы работаете под учетной записью администратора, иногда требуется «протолкнуть» обновление кэша прав доступа.
Рекомендуется массово назначить всем партнерам корректную Группу доступа партнеров (например, создать группу «Основная» и привязать её ко всем записям).
Если вы программист и вам нужно быстро исправить записи в регистре ИерархияПартнеров для всех загруженных объектов, можно использовать следующий фрагмент кода в обработке:
Выборка = Справочники.Партнеры.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектПартнер = Выборка.ПолучитьОбъект();
// Метод ОбновитьИерархию обычно вызывается при записи объекта
// в модуле менеджера или через подписки.
// Просто перезапишем объект для инициализации механизмов.
Попытка
ОбъектПартнер.Записать();
Исключение
Сообщить("Ошибка записи партнера: " + Выборка.Наименование);
КонецПопытки;
КонецЦикла;
Этот простой цикл инициирует все необходимые подписки на события, которые заполнят регистр ИерархияПартнеров и обновят поисковые индексы. После выполнения этой операции и завершения регламентных заданий, все партнеры должны появиться в списках выбора документов рядом с «Розничным покупателем».
Выяснив причину отсутствия контрагентов, мы понимаем, что в 90% случаев это связано с незаполненным регистром иерархии или неактивными функциональными ролями. Пошаговая проверка регламентных заданий и массовое перепроведение (перезапись) объектов справочника Партнеры позволяют полностью решить данную техническую проблему в новой базе 1С:УТ 11.4.