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

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

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

БСП Синхронизация 1С:Предприятие и СУБД

1С БСП: Методы сопоставления данных при синхронизации и загрузке

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

Проблема идентификации (Задвоение данных)

При настройке обменов данными (РИБ, Универсальный формат EnterpriseData) или массовой загрузке данных (из Excel, сторонних API) главная проблема — корректное сопоставление (мэппинг) объектов. Платформа 1С идентифицирует ссылочные объекты (Справочники, Документы) по Уникальному Идентификатору (UUID/GUID). Если данные приходят из внешней системы (где нет 1С-овских GUID), или базы ранее велись независимо, алгоритмы создадут дубли (два контрагента с одним ИНН). Бизнес-риски: искажение бухгалтерского баланса, невозможность сверки взаиморасчетов, хаос в НСИ (нормативно-справочной информации).

Методы поиска объекта в 1С

Метод платформы / БСПТочность поискаКогда использовать
По Уникальному Идентификатору (GUID)Абсолютная (100%)При обменах между базами 1С (РИБ, настроенный КД2/КД3), где объекты изначально порождены в одной среде.
По полям поиска (ИНН, Артикул, Код)ВысокаяИнтеграция с внешними системами (CRM, Сайты). Требует контроля уникальности реквизита.
По Наименованию (Строке)Низкая (Частые ошибки)Крайний случай (загрузка из прайс-листов Excel). Требует нормализации строк (удаление пробелов, регистра).

Алгоритмы сопоставления и устранения дублей

Сценарий 1: Программный поиск и загрузка без изменения GUID

При программной загрузке данных необходимо сначала искать объект по ключевым полям, и только если он не найден — создавать новый. Блокировка ОбменДанными.Загрузка = Истина отключает проверки (при записи), ускоряя процесс.

// Пример правильной загрузки Контрагента из API (JSON/XML)
ВходящийИНН = СтруктураДанных.ИНН;
ВходящееИмя = СтруктураДанных.Наименование;

// 1. Поиск по уникальному ключу (ИНН + КПП)
СсылкаНаОбъект = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", ВходящийИНН);

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

НовыйОбъект.Наименование = ВходящееИмя;
НовыйОбъект.ОбменДанными.Загрузка = Истина; // Отключаем бизнес-логику ПриЗаписи
НовыйОбъект.Записать();

Сценарий 2: Использование подсистемы "Обмен Данными" (БСП)

В типовых конфигурациях (на базе БСП) для пользователей предусмотрена форма «Сопоставление данных». Если при синхронизации (КД3/EnterpriseData) система находит расхождения по полям поиска, она помещает объекты в регистр сведений ПубличныеИдентификаторыСинхронизируемыхОбъектов.

  1. Перейдите в раздел Администрирование -> Синхронизация данных -> Настройки синхронизации.
  2. В узле обмена нажмите кнопку «Сопоставить данные».
  3. Система покажет таблицу: слева объекты текущей базы, справа — пришедшие. Администратор (или MDM-менеджер) должен вручную указать, какие объекты являются идентичными, чтобы БСП связала их GUID'ы в регистре сведений.

Типовые ошибки разработчиков (Код)

  • Поиск в цикле (N+1 проблема): Вызов НайтиПоРеквизиту внутри цикла на 10 000 строк из Excel убьет производительность. Правильный паттерн: загрузить все ИНН из файла во временную таблицу, сделать ОДИН SQL-запрос (через объект Запрос) к справочнику Контрагенты (LEFT JOIN), и обработать результат.
  • Игнорирование регистра и спецсимволов: Поиск НайтиПоНаименованию("ООО Ромашка") не найдет «ООО Ромашка» (с двумя пробелами). Требуется предварительная очистка данных (RegEx или функции БСП Стринг).
Справочник Номенклатуры разросся до миллиона строк из-за дублей с сайта?
Очистка замусоренной НСИ штатными обработками «Поиск и удаление дублей» парализует работу базы на дни. Разработчики ITSTM напишут высокооптимизированные SQL/1C скрипты пакетной замены ссылок и настроят строгую MDM-политику для предотвращения появления дублей в будущем.
💡 Практика специалистов: Практика ITSTM: При построении обменов через EnterpriseData мы часто сталкиваемся с тем, что стандартные алгоритмы БСП не справляются с хитрым поиском (например, когда у Контрагента изменился ИНН, но совпадает OGRN). В таких случаях необходимо переопределять обработчики БСП (например, процедуру 'ПриОпределенииПолейПоиска'), внедряя туда расширенную бизнес-логику нечеткого поиска (Fuzzy Matching).

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

Что делает ОбменДанными.Загрузка = Истина?

Это платформенный флаг. Если он установлен, при вызове метода Записать() платформа игнорирует проверки, прописанные разработчиками в модуле объекта (ОбработкаПроверкиЗаполнения, ПередЗаписью). Это нужно, чтобы загрузить 'неполные' исторические данные без ошибок.

Как заменить ссылки, если дубли уже созданы?

В типовых конфигурациях используйте обработку 'Поиск и удаление дублей' (из раздела Администрирование -> Обслуживание). Она находит дубли, позволяет выбрать 'Оригинал' и автоматически во всех документах меняет ссылки с дублей на оригинал, после чего помечает дубли на удаление.

Можно ли задать свой GUID при создании объекта программно?

Да. НовыйОбъект.УстановитьСсылкуНового(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("Ваш-GUID-строкой"))); Это критически важно при начальной миграции данных, чтобы сохранить связи.

Что такое MDM?

Master Data Management (Управление мастер-данными). Это архитектурный подход, при котором справочник (например, Контрагенты) заводится только в одной базе (Центральной), а в остальные базы (ЗУП, WMS) он передается только на чтение (без права создания новых элементов пользователями).

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