Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1C_DATA_MAPPING_FAIL 1С:Предприятие и СУБД

Настройка автоматического сопоставления номенклатуры и контрагентов в 1С (БСП)

Обновлено: 26.08.2026 · Официальная документация ↗

При синхронизации данных между базами 1С (например, УТ -> БП) возникают ошибки:

  • Дублирование карточек контрагентов с одинаковым ИНН/КПП при каждой загрузке.
  • Создание дублей номенклатуры из-за различий в пробелах, регистрах или спецсимволах наименований.
  • Ошибки проведения документов: Поле 'Договор контрагента' не заполнено из-за сбоя сопоставления договоров.
  • Зависание пакетов синхронизации в регистре сведений СоответствияОбъектовИнформационныхБаз.

1. Механизм сопоставления Библиотеки Стандартных Подсистем (БСП)

Синхронизация БСП производит идентификацию объектов в следующем приоритетном порядке:

  1. Поиск по уникальному идентификатору (GUID) в регистре СоответствияОбъектовИнформационныхБаз.
  2. Поиск по полям бизнес-идентификации (для Контрагентов: ИНН + КПП; для Номенклатуры: Артикул + Производитель или Штрихкод).
  3. Создание нового объекта (если сопоставление не найдено и включено автосоздание).

2. Программный поиск и сопоставление контрагентов по ИНН/КПП

&НаСервере
Функция НайтиИлиСоздатьКонтрагента(ДанныеКонтрагентаDTO)
    
    ИНН = СокрЛП(ДанныеКонтрагентаDTO.ИНН);
    КПП = СокрЛП(ДанныеКонтрагентаDTO.КПП);
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Контрагенты.Ссылка КАК Ссылка
        |ИЗ
        |   Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |   Контрагенты.ИНН = &ИНН
        |   И (&КПП = "" ИЛИ Контрагенты.КПП = &КПП)
        |   И НЕ Контрагенты.ПометкаУдаления";
        
    Запрос.УстановитьПараметр("ИНН", ИНН);
    Запрос.УстановитьПараметр("КПП", КПП);
    
    Результат = Запрос.Выполнить();
    
    Если НЕ Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        Возврат Выборка.Ссылка;
    КонецЕсли;
    
    // Если контрагент не найден — создаем новый объект
    НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
    НовыйКонтрагент.Наименование     = ДанныеКонтрагентаDTO.Наименование;
    НовыйКонтрагент.НаименованиеПолное = ДанныеКонтрагентаDTO.НаименованиеПолное;
    НовыйКонтрагент.ИНН              = ИНН;
    НовыйКонтрагент.КПП              = КПП;
    НовыйКонтрагент.ЮридическоеФизическоеЛицо = ?(СтрДлина(ИНН) > 10, 
        Перечисления.ЮридическоеФизическоеЛицо.ФизЛицо, 
        Перечисления.ЮридическоеФизическоеЛицо.ЮрЛицо);
    
    НовыйКонтрагент.Записать();
    
    Возврат НовыйКонтрагент.Ссылка;
    
КонецФункции

3. Регистрация соответствия в регистре БСП

Чтобы при последующих обменах не тратить ресурсы на повторный поиск по полям, сохраните сопоставление в служебном регистре:

&НаСервере
Процедура ЗафиксироватьСоответствиеБСП(УзелОбмена, ВнутренняяСсылка, ВнешнийИдентификатор)
    
    МенеджерЗаписи = РегистрыСведений.СоответствияОбъектовИнформационныхБаз.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.УзелИнформационнойБазы = УзелОбмена;
    МенеджерЗаписи.СобственнаяСсылка      = ВнутренняяСсылка;
    МенеджерЗаписи.УникальныйИдентификаторИсточника = ВнешнийИдентификатор;
    МенеджерЗаписи.ТипИсточника = XMLТипЗнч(ВнутренняяСсылка).ИмяТипа;
    МенеджерЗаписи.ТипПриемника = XMLТипЗнч(ВнутренняяСсылка).ИмяТипа;
    
    МенеджерЗаписи.Записать(Истина);
    
КонецПроцедуры
💡 Практика специалистов: Не допускайте отключения правил сопоставления по кодам/идентификаторам в пользу поиска только по наименованию. Любая опечатка пользователя приведет к дублированию аналитики в регистрах бухгалтерии.

Частые вопросы (FAQ)

Почему при синхронизации создаются дубли номенклатуры с одинаковым наименованием?

Сравнение строк в 1С чувствительно к невидимым символам (неразрывные пробелы, символы перевода каретки). Перед сопоставлением всегда применяйте функции СокрЛП() и нормализацию строк.

Как очистить ошибочные соответствия объектов между базами?

В режиме 1С:Предприятие откройте регистр сведений 'Соответствия объектов информационных баз' с отбором по проблемному узлу обмена и удалите некорректные записи.

Как сопоставлять номенклатуру по характеристикам и сериям?

Используйте составной ключ идентификации: 'Артикул + НаименованиеХарактеристики + Производитель'. В правилах конвертации EnterpriseData настройте соответствующие алгоритмы идентификации.

Что делать, если у одного контрагента-физлица отсутствует КПП?

В запросе сопоставления делайте проверку условия: И (&КПП = "" ИЛИ Контрагенты.КПП = &КПП), чтобы поиск по 12-значному ИНН физического лица не блокировался пустым полем КПП.

Полезные материалы
Рекомендуем