Сопоставление данных в 1С: справочники, товары, контрагенты

· 9 мин

Содержание

Соответствие в 1С — это связь между элементом одного справочника (или объектом одной базы) и элементом другого. Задача у неё одна: чтобы при загрузке, обмене или приёмке документа программа подставила уже существующий контрагент, товар или счёт, а не создала дубль. Настраивается соответствие в месте обмена данными — при синхронизации баз, загрузке из файла, разборе банковской выписки и приёмке документов по ЭДО.

Слово «соответствие» в 1С встречается в двух разных смыслах, и их легко перепутать. Первый — сопоставление объектов при обмене данными, о нём и пойдёт речь дальше. Второй — тип данных Соответствие во встроенном языке (аналог словаря, набор пар «ключ — значение»). Второй смысл нужен разработчику в обработках; я его разберу в разделе про автоматизацию.

Что такое сопоставление объектов и зачем оно нужно

Любой обмен данными сводится к вопросу: объект из чужого источника — это наш существующий элемент или новый? Контрагент «ООО Ромашка» из выписки банка и контрагент «Ромашка, ООО» из нашего справочника — один и тот же или два разных? Если программа не свяжет их, в базе появятся два контрагента, две истории расчётов и расхождение в оборотке.

Сопоставление решает эту проблему заранее. Программа сравнивает ключевые поля объектов и предлагает связки:

  • 🏢 Контрагенты — по ИНН и КПП, затем по наименованию и расчётному счёту.
  • 📦 Номенклатура — по артикулу, штрихкоду и наименованию.
  • 📄 Договоры и счета — по номеру и дате в привязке к контрагенту.

Связки, которые вы подтвердили, сохраняются. При следующем обмене 1С уже не спрашивает — подставляет готовое соответствие. Именно поэтому один раз потраченное время на сопоставление окупается при каждой следующей загрузке.

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

Сопоставление при первичной настройке синхронизации

Когда вы связываете две базы (например, бухгалтерию и управление торговлей) через Администрирование → Синхронизация данных, при первом обмене появляется шаг сопоставления данных. Это самый ответственный момент: ошибка здесь задвоит справочники в обеих базах, и разводить дубли потом придётся вручную.

Порядок первичной настройки:

  1. Включите синхронизацию и выберите сценарий обмена в разделе Администрирование → Синхронизация данных.
  2. Настройте правила отбора — какие данные и за какой период передаются.
  3. На шаге сопоставления 1С покажет таблицу: слева объекты из второй базы, справа — предполагаемые соответствия из вашей.
  4. Проверьте автоподбор. Строки без пары пометьте вручную или оставьте на создание новых элементов.
  5. Запустите первый обмен только после того, как таблица сопоставления проверена.

Результат сопоставления хранится в служебном регистре соответствия объектов. Это внутренняя таблица связок «объект нашей базы ↔ объект чужой базы», она и не даёт программе плодить дубли при каждом сеансе. Самостоятельно её чистить не нужно — ей управляет механизм обмена.

Отдельного внимания требуют неоднозначные связки — когда одному объекту из чужой базы подходят сразу несколько ваших элементов. Такое бывает, если в справочнике уже есть дубли или два контрагента с одинаковым ИНН (головная организация и обособленное подразделение). Программа в таких случаях не выбирает за вас, а помечает строку как неоднозначную. Разберите её вручную: выберите правильный элемент либо сначала объедините дубли, а потом вернитесь к сопоставлению.

Не запускайте первый обмен «вслепую», пропустив шаг сопоставления. Пропущенный шаг — главная причина задвоения номенклатуры и контрагентов при синхронизации.

Загрузка товаров и номенклатуры без дублей

При загрузке прайса или остатков из Excel (xls, xlsx) 1С должна понять, какая строка файла какому полю справочника соответствует. Этот этап называется сопоставлением колонок.

Механика везде одинаковая:

  1. Укажите файл-источник и лист с данными.
  2. Сопоставьте колонки файла с реквизитами номенклатуры: наименование, артикул, штрихкод, единица, ставка НДС.
  3. Задайте поле поиска существующих позиций — по нему программа решит, обновить карточку или создать новую.
  4. Проверьте предпросмотр: строки, для которых нашлась пара, помечаются как существующие, остальные — как новые.

Поле поиска — самое важное. Если искать по наименованию, достаточно лишнего пробела или другого регистра, чтобы товар задвоился. Надёжнее искать по артикулу или штрихкоду — они уникальны и не зависят от формулировки.

Сопоставление полей
Наименование товара→Номенклатура (поиск по наименованию)
Артикул→Номенклатура (поиск по артикулу)
Штрихкод→Штрихкоды номенклатуры
Единица измерения→Единица
Ставка НДС→Ставка НДС в карточке

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

Разбор банковской выписки: сопоставление контрагентов и платежей

Загрузка выписки в Банк и касса → Банковские выписки — ежедневная задача, где сопоставление работает незаметно, пока не ломается. При разборе каждого платежа 1С решает две вещи: кто контрагент и к какому расчёту относится платёж.

Контрагента программа ищет по расчётному счёту из платёжки, затем по ИНН. Логика простая:

  • ✅ Счёт найден в карточке контрагента — платёж привязывается автоматически.
  • ❓ Счёт не найден, но есть ИНН — программа предложит контрагента по ИНН, вы подтверждаете.
  • ❌ Ни счёт, ни ИНН не распознаны — строка остаётся несопоставленной, её разбирают вручную.

Чтобы автоподбор срабатывал, расчётные счета контрагентов должны быть внесены в их карточки. Один раз добавили счёт постоянному поставщику — и его платежи распознаются без вашего участия.

Способ загрузки на логику сопоставления не влияет. Выписка может приходить через прямой обмен с банком (технология ДиректБанк) или файлом kl_to_1c.txt из клиент-банка — в обоих случаях контрагент ищется по одним и тем же полям. Разница только в том, откуда берутся платёжки.

Отдельная история — привязка поступления к документу-основанию. Если включён соответствующий порядок учёта, программа сопоставляет платёж со счётом на оплату или с договором по сумме и назначению платежа. Назначение платежа заполнено аккуратно (есть номер счёта или договора) — связка найдётся сама.

Если один и тот же контрагент грузится из выписки как новый, проверьте карточку: совпадает ли его расчётный счёт с тем, что указан в платёжке. Чаще всего дело в том, что счёт в карточке не заполнен или заполнен с ошибкой.

Соответствие номенклатуры при приёмке документов по ЭДО

При получении электронного УПД или накладной по ЭДО товары приходят в терминах поставщика: его наименования, его единицы. Чтобы оприходовать поступление на нашу номенклатуру, строки документа нужно сопоставить с нашим справочником.

Первая приёмка от нового поставщика — ручная: вы связываете каждую строку его документа с позицией своей номенклатуры. Эти связки сохраняются в справочнике номенклатуры контрагентов. При следующей поставке 1С подставит вашу номенклатуру автоматически — повторно сопоставлять те же товары не придётся.

Похоже устроено сопоставление услуг, счетов и актов: входящий документ привязывается к нашему договору и счёту на оплату по контрагенту, номеру и сумме. Что проверить при приёмке:

  • 📌 все строки документа сопоставлены — несопоставленная строка не попадёт в проводки;
  • 📌 единицы измерения и количество совпадают с бумажным оригиналом;
  • 📌 ставка НДС в строке соответствует нашей карточке номенклатуры.

Не оприходуйте поступление по ЭДО, пока в документе остаются несопоставленные строки. Такая строка молча выпадает из учёта, а расхождение вы увидите только при сверке с поставщиком.

Автоматизация: правила обмена и тип «Соответствие» в коде

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

Правила обмена. В универсальных обменах (формат EnterpriseData, механизм конвертации данных) поиск объектов задаётся правилами: по каким полям искать существующий элемент и что делать, если он не найден — создать или пропустить. Правила настраиваются один раз и дальше работают без участия пользователя. Это штатный способ автоматизировать сопоставление при синхронизации типовых конфигураций.

Для каждого вида объектов в правилах задают свой набор полей поиска и порядок, в котором они проверяются. Контрагента логично искать сначала по ИНН+КПП, затем по наименованию; номенклатуру — сначала по артикулу, затем по штрихкоду. Решение «что делать, если не нашли» тоже важно: для справочников, которые ведутся в обеих базах (например, склады или организации), безопаснее не создавать новый элемент автоматически, а остановиться на ручном сопоставлении, иначе один склад размножится по базам.

Тип Соответствие во встроенном языке. В обработках для массового сопоставления удобно построить в памяти словарь «ключ → ссылка» и искать по нему. Соответствие — это набор пар, где по ключу мгновенно получаешь значение:

// Строим словарь: ИНН -> ссылка на контрагента
СловарьПоИНН = Новый Соответствие;
Для Каждого СтрокаКонтрагента Из ВыборкаКонтрагентов Цикл
    СловарьПоИНН.Вставить(СтрокаКонтрагента.ИНН, СтрокаКонтрагента.Ссылка);
КонецЦикла;

// Ищем контрагента из файла
НайденныйКонтрагент = СловарьПоИНН.Получить(ИННИзФайла);
Если НайденныйКонтрагент = Неопределено Тогда
    // не нашли — создаём нового или помечаем строку на ручное сопоставление
КонецЕсли;

Метод Получить возвращает значение по ключу или Неопределено, если ключа нет, — на этой проверке и строится вся логика сопоставления. Элементы добавляют через Вставить, удаляют через Удалить, перебирают циклом Для Каждого КлючИЗначение Из СловарьПоИНН Цикл.

Для разовой чистки дублей в типовых конфигурациях есть штатная обработка поиска и удаления дубликатов — она доступна из списков справочников (Контрагенты, Номенклатура). Обработка находит похожие элементы, объединяет их и переносит все документы на один оставшийся.

Перед массовым объединением дублей сделайте резервную копию базы. Объединение необратимо: все движения переносятся на выбранный элемент, а дубли удаляются.

Частые ошибки сопоставления и как их избежать

Большинство проблем с соответствием сводятся к нескольким типовым сценариям. Ниже — симптом и что с ним делать.

Диагностика: выберите симптом

Общая профилактика укладывается в три правила:

  • Сопоставляйте по уникальным полям (ИНН, артикул, штрихкод), а не по наименованию.
  • Заполняйте ключевые реквизиты в карточках заранее — пустой ИНН или счёт ломает автоподбор.
  • Проверяйте таблицу сопоставления до запуска обмена, а не после.

Частые вопросы

Чем «соответствие» в обмене отличается от типа «Соответствие» в коде?
Это разные вещи с одним названием. В обмене соответствие — это связь объектов двух баз или справочников, настраивается пользователем. Тип Соответствие в коде — коллекция пар «ключ — значение», ею пользуется разработчик в обработках.
Можно ли сопоставить объекты, если дубли уже созданы?
Да. Сначала объедините дубли штатной обработкой поиска и удаления дубликатов (с резервной копией), а затем настройте поиск по уникальным полям, чтобы новые дубли не появлялись.
По каким полям 1С сопоставляет контрагентов и номенклатуру?
Контрагентов — по ИНН, КПП, расчётному счёту и наименованию. Номенклатуру — по артикулу, штрихкоду и наименованию. Поле поиска можно выбрать в настройках загрузки или правилах обмена.
Нужно ли заново сопоставлять номенклатуру при каждой приёмке по ЭДО?
Нет. После первого сопоставления связка сохраняется в справочнике номенклатуры контрагентов, и дальше товары поставщика подставляются автоматически.
Сохраняется ли сопоставление между сеансами синхронизации?
Да. Подтверждённые связки хранятся в служебном регистре соответствия объектов и используются при каждом следующем обмене — повторно сопоставлять те же объекты не нужно.