Почему партнеры не отображаются в списке клиентов в 1С:УТ 11.4 после переноса данных и как это исправить?

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

При переносе данных из других конфигураций (например, из 1С:УНФ или 1С:Бухгалтерии) в 1С:Управление торговлей 11.4 пользователи часто сталкиваются с ситуацией, когда в справочнике Партнеры записи существуют, признак «Клиент» установлен, однако в специализированном списке «Клиенты» эти записи не отображаются. Рассмотрим причины этой проблемы и разберем пошаговый алгоритм её решения.

Анализируем причину возникновения проблемы

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

Однако простого наличия «галочки» недостаточно. Динамические списки в 1С работают на основе сложных запросов, и если объект записан в базу с нарушением бизнес-логики (например, через прямой перенос данных без проверки обязательных полей), он может попросту игнорироваться формой списка или модулями системы. Проанализируем ситуацию: чаще всего при переносе данных через «Конвертацию данных» или другие механизмы остаются незаполненными ключевые реквизиты, такие как ЮрФизЛицо (тип партнера) и НаименованиеПолное (публичное наименование). Без них объект считается системой «битым» или некорректным.

Разбор архитектурных особенностей: Партнеры и Контрагенты

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

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

Инструкция по исправлению с помощью обработки «Групповое изменение реквизитов»

Если записей много, открывать каждую и пересохранять вручную — трудозатратный процесс. Мы воспользуемся стандартной обработкой ГрупповоеИзменениеРеквизитов. Однако, как заметил автор темы на форуме, обычная перезапись может не сработать, так как стандартная проверка заполнения выдаст ошибку о пустых обязательных полях.

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

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

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


// Устанавливаем публичное наименование из рабочего наименования
Объект.НаименованиеПолное = Объект.Наименование;

// Если не заполнено поле Юр/Физлицо, устанавливаем значение по умолчанию (например, ЮрЛицо)
Если НЕ ЗначениеЗаполнено(Объект.ЮрФизЛицо) Тогда
    Объект.ЮрФизЛицо = Перечисления.КомпанияИлиЧастноеЛицо.ЮрЛицо;
КонецЕсли;

// Убеждаемся, что признак клиента установлен
Объект.Клиент = Истина;

Этот алгоритм позволяет «подтянуть» данные в нужные поля непосредственно перед записью объекта. После выполнения обработки система выполнит метод Объект.Записать(), и партнер станет валидным для всех списков и отборов.

Дополнительные факторы: почему партнеры все еще могут не появиться?

Если после выполнения группового изменения партнеры все равно не видны в списке «Клиенты», разберем еще несколько критических моментов:

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

Заключение

Подводя итог, можно сказать, что проблема «исчезновения» партнеров при переносе из УНФ в УТ 11.4 чаще всего кроется в неполноте данных. Система 1С:Управление торговлей крайне чувствительна к заполнению реквизитов НаименованиеПолное и ЮрФизЛицо. Использование групповой обработки с небольшим фрагментом кода на языке 1С позволяет быстро привести базу в порядок и сделать партнеров доступными для полноценной работы в качестве клиентов.

← На главную