Сопоставление данных в 1С: справочники, товары, контрагенты
Содержание
Соответствие в 1С — это связь между элементом одного справочника (или объектом одной базы) и элементом другого. Задача у неё одна: чтобы при загрузке, обмене или приёмке документа программа подставила уже существующий контрагент, товар или счёт, а не создала дубль. Настраивается соответствие в месте обмена данными — при синхронизации баз, загрузке из файла, разборе банковской выписки и приёмке документов по ЭДО.
Слово «соответствие» в 1С встречается в двух разных смыслах, и их легко перепутать. Первый — сопоставление объектов при обмене данными, о нём и пойдёт речь дальше. Второй — тип данных Соответствие во встроенном языке (аналог словаря, набор пар «ключ — значение»). Второй смысл нужен разработчику в обработках; я его разберу в разделе про автоматизацию.
Что такое сопоставление объектов и зачем оно нужно
Любой обмен данными сводится к вопросу: объект из чужого источника — это наш существующий элемент или новый? Контрагент «ООО Ромашка» из выписки банка и контрагент «Ромашка, ООО» из нашего справочника — один и тот же или два разных? Если программа не свяжет их, в базе появятся два контрагента, две истории расчётов и расхождение в оборотке.
Сопоставление решает эту проблему заранее. Программа сравнивает ключевые поля объектов и предлагает связки:
- 🏢 Контрагенты — по ИНН и КПП, затем по наименованию и расчётному счёту.
- 📦 Номенклатура — по артикулу, штрихкоду и наименованию.
- 📄 Договоры и счета — по номеру и дате в привязке к контрагенту.
Связки, которые вы подтвердили, сохраняются. При следующем обмене 1С уже не спрашивает — подставляет готовое соответствие. Именно поэтому один раз потраченное время на сопоставление окупается при каждой следующей загрузке.
Ключевое правило: чем точнее заполнены ИНН, артикулы и штрихкоды, тем выше доля автоматических связок и тем меньше ручной работы.
Сопоставление при первичной настройке синхронизации
Когда вы связываете две базы (например, бухгалтерию и управление торговлей) через Администрирование → Синхронизация данных, при первом обмене появляется шаг сопоставления данных. Это самый ответственный момент: ошибка здесь задвоит справочники в обеих базах, и разводить дубли потом придётся вручную.
Порядок первичной настройки:
- Включите синхронизацию и выберите сценарий обмена в разделе
Администрирование → Синхронизация данных. - Настройте правила отбора — какие данные и за какой период передаются.
- На шаге сопоставления 1С покажет таблицу: слева объекты из второй базы, справа — предполагаемые соответствия из вашей.
- Проверьте автоподбор. Строки без пары пометьте вручную или оставьте на создание новых элементов.
- Запустите первый обмен только после того, как таблица сопоставления проверена.
Результат сопоставления хранится в служебном регистре соответствия объектов. Это внутренняя таблица связок «объект нашей базы ↔ объект чужой базы», она и не даёт программе плодить дубли при каждом сеансе. Самостоятельно её чистить не нужно — ей управляет механизм обмена.
Отдельного внимания требуют неоднозначные связки — когда одному объекту из чужой базы подходят сразу несколько ваших элементов. Такое бывает, если в справочнике уже есть дубли или два контрагента с одинаковым ИНН (головная организация и обособленное подразделение). Программа в таких случаях не выбирает за вас, а помечает строку как неоднозначную. Разберите её вручную: выберите правильный элемент либо сначала объедините дубли, а потом вернитесь к сопоставлению.
Не запускайте первый обмен «вслепую», пропустив шаг сопоставления. Пропущенный шаг — главная причина задвоения номенклатуры и контрагентов при синхронизации.
Загрузка товаров и номенклатуры без дублей
При загрузке прайса или остатков из Excel (xls, xlsx) 1С должна понять, какая строка файла какому полю справочника соответствует. Этот этап называется сопоставлением колонок.
Механика везде одинаковая:
- Укажите файл-источник и лист с данными.
- Сопоставьте колонки файла с реквизитами номенклатуры: наименование, артикул, штрихкод, единица, ставка НДС.
- Задайте поле поиска существующих позиций — по нему программа решит, обновить карточку или создать новую.
- Проверьте предпросмотр: строки, для которых нашлась пара, помечаются как существующие, остальные — как новые.
Поле поиска — самое важное. Если искать по наименованию, достаточно лишнего пробела или другого регистра, чтобы товар задвоился. Надёжнее искать по артикулу или штрихкоду — они уникальны и не зависят от формулировки.
Приём практика: перед массовой загрузкой выгрузите из 1С текущую номенклатуру с артикулами и сверьте их с колонкой артикулов в прайсе поставщика. Так вы заранее увидите, сколько позиций свяжется автоматически, а сколько создастся заново.
Разбор банковской выписки: сопоставление контрагентов и платежей
Загрузка выписки в Банк и касса → Банковские выписки — ежедневная задача, где сопоставление работает незаметно, пока не ломается. При разборе каждого платежа 1С решает две вещи: кто контрагент и к какому расчёту относится платёж.
Контрагента программа ищет по расчётному счёту из платёжки, затем по ИНН. Логика простая:
- ✅ Счёт найден в карточке контрагента — платёж привязывается автоматически.
- ❓ Счёт не найден, но есть ИНН — программа предложит контрагента по ИНН, вы подтверждаете.
- ❌ Ни счёт, ни ИНН не распознаны — строка остаётся несопоставленной, её разбирают вручную.
Чтобы автоподбор срабатывал, расчётные счета контрагентов должны быть внесены в их карточки. Один раз добавили счёт постоянному поставщику — и его платежи распознаются без вашего участия.
Способ загрузки на логику сопоставления не влияет. Выписка может приходить через прямой обмен с банком (технология ДиректБанк) или файлом kl_to_1c.txt из клиент-банка — в обоих случаях контрагент ищется по одним и тем же полям. Разница только в том, откуда берутся платёжки.
Отдельная история — привязка поступления к документу-основанию. Если включён соответствующий порядок учёта, программа сопоставляет платёж со счётом на оплату или с договором по сумме и назначению платежа. Назначение платежа заполнено аккуратно (есть номер счёта или договора) — связка найдётся сама.
Если один и тот же контрагент грузится из выписки как новый, проверьте карточку: совпадает ли его расчётный счёт с тем, что указан в платёжке. Чаще всего дело в том, что счёт в карточке не заполнен или заполнен с ошибкой.
Соответствие номенклатуры при приёмке документов по ЭДО
При получении электронного УПД или накладной по ЭДО товары приходят в терминах поставщика: его наименования, его единицы. Чтобы оприходовать поступление на нашу номенклатуру, строки документа нужно сопоставить с нашим справочником.
Первая приёмка от нового поставщика — ручная: вы связываете каждую строку его документа с позицией своей номенклатуры. Эти связки сохраняются в справочнике номенклатуры контрагентов. При следующей поставке 1С подставит вашу номенклатуру автоматически — повторно сопоставлять те же товары не придётся.
Похоже устроено сопоставление услуг, счетов и актов: входящий документ привязывается к нашему договору и счёту на оплату по контрагенту, номеру и сумме. Что проверить при приёмке:
- 📌 все строки документа сопоставлены — несопоставленная строка не попадёт в проводки;
- 📌 единицы измерения и количество совпадают с бумажным оригиналом;
- 📌 ставка НДС в строке соответствует нашей карточке номенклатуры.
Не оприходуйте поступление по ЭДО, пока в документе остаются несопоставленные строки. Такая строка молча выпадает из учёта, а расхождение вы увидите только при сверке с поставщиком.
Автоматизация: правила обмена и тип «Соответствие» в коде
Когда сопоставлять нужно сотни позиций регулярно, ручной разбор не выход. Есть два уровня автоматизации.
Правила обмена. В универсальных обменах (формат EnterpriseData, механизм конвертации данных) поиск объектов задаётся правилами: по каким полям искать существующий элемент и что делать, если он не найден — создать или пропустить. Правила настраиваются один раз и дальше работают без участия пользователя. Это штатный способ автоматизировать сопоставление при синхронизации типовых конфигураций.
Для каждого вида объектов в правилах задают свой набор полей поиска и порядок, в котором они проверяются. Контрагента логично искать сначала по ИНН+КПП, затем по наименованию; номенклатуру — сначала по артикулу, затем по штрихкоду. Решение «что делать, если не нашли» тоже важно: для справочников, которые ведутся в обеих базах (например, склады или организации), безопаснее не создавать новый элемент автоматически, а остановиться на ручном сопоставлении, иначе один склад размножится по базам.
Тип Соответствие во встроенном языке. В обработках для массового сопоставления удобно построить в памяти словарь «ключ → ссылка» и искать по нему. Соответствие — это набор пар, где по ключу мгновенно получаешь значение:
// Строим словарь: ИНН -> ссылка на контрагента
СловарьПоИНН = Новый Соответствие;
Для Каждого СтрокаКонтрагента Из ВыборкаКонтрагентов Цикл
СловарьПоИНН.Вставить(СтрокаКонтрагента.ИНН, СтрокаКонтрагента.Ссылка);
КонецЦикла;
// Ищем контрагента из файла
НайденныйКонтрагент = СловарьПоИНН.Получить(ИННИзФайла);
Если НайденныйКонтрагент = Неопределено Тогда
// не нашли — создаём нового или помечаем строку на ручное сопоставление
КонецЕсли;
Метод Получить возвращает значение по ключу или Неопределено, если ключа нет, — на этой проверке и строится вся логика сопоставления. Элементы добавляют через Вставить, удаляют через Удалить, перебирают циклом Для Каждого КлючИЗначение Из СловарьПоИНН Цикл.
Для разовой чистки дублей в типовых конфигурациях есть штатная обработка поиска и удаления дубликатов — она доступна из списков справочников (Контрагенты, Номенклатура). Обработка находит похожие элементы, объединяет их и переносит все документы на один оставшийся.
Перед массовым объединением дублей сделайте резервную копию базы. Объединение необратимо: все движения переносятся на выбранный элемент, а дубли удаляются.
Частые ошибки сопоставления и как их избежать
Большинство проблем с соответствием сводятся к нескольким типовым сценариям. Ниже — симптом и что с ним делать.
Общая профилактика укладывается в три правила:
- Сопоставляйте по уникальным полям (ИНН, артикул, штрихкод), а не по наименованию.
- Заполняйте ключевые реквизиты в карточках заранее — пустой ИНН или счёт ломает автоподбор.
- Проверяйте таблицу сопоставления до запуска обмена, а не после.
Частые вопросы
Чем «соответствие» в обмене отличается от типа «Соответствие» в коде?
Соответствие в коде — коллекция пар «ключ — значение», ею пользуется разработчик в обработках.