Почему при выборе контрагента в документах 1С:Комплексная автоматизация 2 отображаются дубли, хотя в справочнике контрагентов их нет?

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

При работе в 1С:Комплексной автоматизации 2 пользователи часто сталкиваются с ситуацией, когда при выборе контрагента в документ из выпадающего списка предлагается множество копий одной и той же организации. Это происходит, несмотря на то, что в справочнике Контрагенты существует лишь одна запись для данного контрагента. Давайте вместе разберем эту проблему и найдем эффективные способы ее решения.

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

В чем суть проблемы: роль справочника "Партнеры"

Ключ к пониманию этой проблемы кроется в двухуровневой модели учета, которая используется в современных конфигурациях 1С, таких как 1С:Комплексная автоматизация (КА), 1С:ERP Управление предприятием и 1С:Управление торговлей. Эта модель включает в себя два справочника: Партнеры и Контрагенты.

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

Даже если в настройках учета (раздел НСИ и администрирование → Настройка НСИ и разделов → Продажи → Настройки интеграции) снята галка Независимо вести партнеров и контрагентов, что, казалось бы, должно означать использование только справочника Контрагенты, система все равно неявно создает элемент в справочнике Партнеры при создании нового контрагента. Это происходит потому, что многие механизмы программы, такие как ценообразование, соглашения, взаиморасчеты, а также логика подбора в документах, ориентированы на работу именно со справочником Партнеры.

Таким образом, когда мы ищем контрагента для подстановки в документ, программа зачастую показывает нам список не из справочника Контрагенты, а из справочника Партнеры или из индекса полнотекстового поиска, который мог быть построен по элементам справочника Партнеры. Именно здесь кроется корень проблемы: скорее всего, дубликаты существуют не в Контрагентах, а в Партнерах (как это было обнаружено в Сообщении 10 и подтверждено в Сообщении 11).

Возможные причины появления дубликатов в справочнике "Партнеры"

Давайте выясним наиболее распространенные причины появления дубликатов в справочнике Партнеры, даже если в Контрагентах все чисто:

  1. Некорректный перенос данных: Если данные переносились из старых версий 1С, других информационных систем или по неизвестному методу, как в нашем случае (Сообщение 6), могли возникнуть дубли партнеров. Это часто происходит при неточном сопоставлении уже существующих элементов или при повторном импорте.
  2. Использование различных реквизитов для поиска при обмене: Если вы используете обмены данными, и они настроены на поиск партнеров по неточным реквизитам (например, только по наименованию, а не по ИНН/КПП), это может приводить к созданию новых партнеров вместо обновления уже существующих.
  3. Ошибки пользователей: Ручное создание партнеров, а затем создание контрагентов без должной привязки к существующим партнерам или, наоборот, создание контрагентов, которые автоматически создают новых партнеров, даже если соответствующий партнер уже существует.
  4. Нарушение ссылочной целостности: Редко, но возможно, что ошибки в базе данных или программном коде могли привести к созданию "потерянных" партнеров, не связанных с контрагентами или имеющих некорректные ссылки.
  5. Проблемы с ИНН и КПП: Отсутствие или одинаковые пустые значения ИНН/КПП у разных партнеров могут способствовать их ошибочному объединению или, наоборот, созданию дублей при некорректном поиске в системе. Механизмы поиска в 1С часто используют ИНН для идентификации уникального юридического лица (Сообщение 16).

Пошаговое решение проблемы: как найти и устранить дубликаты

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

  1. Проверка справочника "Партнеры"

    Это первый и самый важный шаг. Как показал опыт из обсуждения (Сообщение 2, 10), причина часто кроется именно здесь.

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

    Это стандартные действия, которые могут помочь при некорректном отображении данных, особенно после внесения изменений (Сообщение 3, 4, 12).

    1. Очистка кэша клиентского приложения:
      • Закройте 1С.
      • Откройте список баз 1С.
      • Удалите вашу базу из списка (кнопка Удалить).
      • Добавьте базу заново (кнопка Добавить), указав путь к ней.

      Этот способ очищает кэш для конкретной базы данных.

    2. Перестройка индекса полнотекстового поиска:
      • Запустите 1С в режиме Конфигуратор.
      • Перейдите в меню Конфигурация → Полнотекстовый поиск.
      • Сначала выберите пункт Очистить индекс.
      • Затем выберите пункт Актуализировать индекс.

      Это обеспечит корректность поисковой выдачи, так как механизмы подбора в документах часто используют полнотекстовый поиск.

  3. Анализ регистра сведений "Ключи аналитики учета по партнерам"

    Этот регистр хранит информацию, которая может влиять на уникальность партнера и его идентификацию в системе (Сообщение 7). Мы должны убедиться, что здесь нет лишних записей, которые могли бы дезориентировать систему.

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

    1С предоставляет встроенные инструменты для поиска и объединения дублирующихся элементов справочников. Это мощный инструмент для решения данной проблемы.

    1. Перейдите в раздел НСИ и администрирование → Обслуживание → Поиск и удаление дублей.
    2. В открывшейся обработке в поле Искать в выберите справочник Партнеры.
    3. Настройте правила поиска дублей. Мы рекомендуем искать по следующим полям: Наименование, ИНН, КПП. Можно также использовать комбинацию этих полей.
    4. Нажмите кнопку Найти дубли. Система проанализирует справочник и предложит возможные дубликаты.
    5. Внимательно проанализируйте предложенные списки. Для каждого набора дублей выберите "оригинал" — тот элемент, который вы хотите оставить, и пометьте остальные как дубли, подлежащие удалению (объединению с оригиналом).
    6. Нажмите кнопку Удалить дубли. Программа перенесет все ссылки с дублирующихся элементов на выбранный "оригинал" и пометит дубли на удаление.
    7. Критически важно: Перед использованием этой обработки обязательно сделайте резервную копию информационной базы! Ошибочное удаление или объединение данных может привести к серьезным проблемам.
  5. Проверка заполненности ИНН и КПП

    Отсутствие или одинаковые пустые значения ИНН/КПП у разных партнеров могут сбивать систему при поиске и приводить к созданию дублей или некорректному объединению (Сообщение 16). Мы должны убедиться, что эти реквизиты заполнены корректно.

    1. Для каждого партнера и связанного с ним контрагента, у которого наблюдаются дубли, проверьте корректность заполнения полей ИНН и КПП.
    2. Если у партнеров или контрагентов отсутствует ИНН или КПП, или они заполнены неверно, скорректируйте эти данные.
    3. Уникальный ИНН (для юридических лиц) и ИНН+КПП (для филиалов) являются важными идентификаторами для системы.
  6. Анализ запросов подбора в документах (для программистов)

    Если после всех вышеперечисленных шагов проблема все еще сохраняется, и вы обладаете навыками программирования, стоит рассмотреть внутренние механизмы подбора, используемые в конкретных документах (Сообщение 13, 15, 16).

    1. Исследование модуля подбора:

      Возможно, стоит проанализировать код, отвечающий за формирование списка выбора. В 1С:КА 2.4 часто используется модуль ПартнерыИКонтрагентыВызовСервера.КонтрагентыДанныеВыбора (Сообщение 16) или другие общие модули, отвечающие за выбор партнеров/контрагентов.

    2. Проверка запросов:

      Если в запросе, формирующем список выбора, есть избыточные соединения с другими таблицами или он не учитывает уникальность элементов, это может привести к дублированию. Иногда, если список формируется динамически, можно добавить оператор РАЗЛИЧНЫЕ в запрос, чтобы гарантировать уникальность выводимых строк. Однако это нужно делать с осторожностью, чтобы не потерять нужные данные, если они намеренно представлены несколько раз (например, разные договоры одного контрагента).

      Пример гипотетического запроса, который может быть скорректирован:

      
      // Оригинальный запрос может выглядеть примерно так:
      // ВЫБРАТЬ
      //     Партнеры.Ссылка,
      //     Партнеры.Наименование,
      //     Контрагенты.Ссылка КАК КонтрагентСсылка
      // ИЗ
      //     Справочник.Партнеры КАК Партнеры
      //         ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
      //         ПО Партнеры.Ссылка = Контрагенты.Партнер
      // ГДЕ
      //     Партнеры.Наименование ПОДОБНО &Подстрока
      //     ИЛИ Контрагенты.Наименование ПОДОБНО &Подстрока
      
      // Скорректированный запрос с использованием РАЗЛИЧНЫЕ для исключения дублей Партнеров
      // если требуется выбирать именно Партнеров:
      ВЫБРАТЬ РАЗЛИЧНЫЕ
          Партнеры.Ссылка,
          Партнеры.Наименование
      ИЗ
          Справочник.Партнеры КАК Партнеры
      ГДЕ
          Партнеры.Наименование ПОДОБНО &Подстрока
      

      Такая корректировка требует глубокого понимания логики формирования списка и должна выполняться только опытным разработчиком.

  7. Актуализация версии платформы и конфигурации

    Иногда подобные ошибки, связанные с поведением стандартных механизмов системы, могут быть исправлены в новых релизах конфигурации или платформы 1С. Мы рекомендуем регулярно обновлять вашу систему до актуальных версий.

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

Таким образом, проблема с дублированием контрагентов при выборе в документах 1С:Комплексной автоматизации 2 чаще всего связана с дубликатами в справочнике Партнеры и особенностями его использования системой. Последовательное выполнение описанных шагов позволит вам эффективно диагностировать и устранить эту проблему, обеспечив корректное отображение данных при работе с контрагентами.

← На главную