Почему в 1С:УТ 11 при выборе контрагента не устанавливается отбор по партнеру и как это исправить

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

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

Разбираем архитектурную логику: Партнеры vs Контрагенты

Для начала проанализируем базовый принцип, заложенный разработчиками 1С в систему. В УТ 11 разделены понятия управленческого учета (Партнеры) и юридического учета (Контрагенты).

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

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

Проверка связей в карточках объектов

Если автоматическое заполнение не срабатывает, первым делом проанализируем корректность данных в справочниках. Рассмотрим шаги проверки:

1. Откроем карточку Партнера и перейдем на вкладку Контрагенты. Здесь должен быть указан список всех юридических лиц, принадлежащих данному партнеру. Убедимся, что в колонке «Партнер» указана именно та сущность, которую мы ожидаем увидеть в документе.

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

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

Функциональная опция «Независимое ведение партнеров и контрагентов»

Выясним причину поведения системы через настройки программы. Перейдем в раздел НСИ и администрирование -> Настройка НСИ и разделов -> CRM и маркетинг. Здесь находится важная настройка Независимое ведение партнеров и контрагентов.

Если эта галочка снята, то система работает в упрощенном режиме, где партнер и контрагент — это фактически одно и то же лицо. В этом случае проблема с отборами обычно не возникает. Однако если опция включена, система ожидает строгого следования иерархии.

Также обратим внимание на константу ИспользоватьПартнеровКакКонтрагентов. В некоторых подрелизах 11.4 изменение этого значения влияет на то, будет ли подставляться первый найденный партнер в список при выборе контрагента. Рассмотрим пример логики:


// Пример упрощенной логики заполнения в типовой форме
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    // Если партнер еще не заполнен, система пытается найти его по владельцу контрагента
    Если ЗначениеЗаполнено(Объект.Контрагент) И НЕ ЗначениеЗаполнено(Объект.Партнер) Тогда
        Объект.Партнер = ПолучитьПартнераПоКонтрагенту(Объект.Контрагент);
    КонецЕсли;
КонецПроцедуры

Связи параметров выбора в форме документа

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

Для поля Контрагент в Заказе клиента обычно установлена связь по полю Партнер. Это означает, что:

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Установка жесткой связи
    НовыйПараметр = Новый ПараметрВыбора("Отбор.Владелец", Объект.Партнер);
    МассивПараметров = Новый Массив;
    МассивПараметров.Добавить(НовыйПараметр);
    Элементы.Контрагент.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
КонецПроцедуры

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

Влияние Соглашений и статусов

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

Также стоит проверить статусы:

  1. Не помечен ли партнер на удаление?
  2. Установлен ли у партнера статус «Активен»?
  3. Не включена ли дата запрета редактирования для данного сегмента партнеров?

Если партнер имеет статус «Не активен», он не будет автоматически подставляться в документ при выборе контрагента, даже если связь в базе данных физически существует. Система безопасности 1С:УТ 11 блокирует использование неактивных сущностей в новых оперативных документах.

Рекомендации по решению проблемы

Выяснив причины, сформулируем алгоритм действий для исправления ситуации:

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

2. Используйте полнотекстовый поиск: Если пользователь вводит название контрагента текстом прямо в поле, система чаще отрабатывает механизм автоматического заполнения партнера, чем при выборе через форму списка.

3. Проверьте расширения: Если база дорабатывалась, выясним, не перехвачена ли процедура ОбработкаВыбора в расширении. Часто программисты добавляют свои фильтры, которые конфликтуют с типовым механизмом заполнения Связи параметров выбора.

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

Таким образом, отсутствие отбора или автоматического заполнения партнера в УТ 11 чаще всего является не программной ошибкой, а следствием реализации сложной архитектурной модели 1С, где управленческий учет имеет приоритет над юридическим.

← На главную