Зачем нужен регистр сведений "НоменклатураКонтрагентовБЭД" в 1С:Управлении торговлей 11.4 и как он работает?

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

При работе с современными типовыми конфигурациями 1С, такими как «1С:Управление торговлей» редакции 11.4, разработчики и аналитики часто сталкиваются с дублированием (на первый взгляд) некоторых бизнес-сущностей в метаданных. Ярким примером является сосуществование справочника НоменклатураПоставщиков и регистра сведений НоменклатураКонтрагентовБЭД. Оба объекта, судя по названиям, призваны хранить информацию о товарах наших деловых партнеров. Однако их техническое назначение, логика работы и области применения существенно различаются.

В этой статье мы подробно разберем, зачем разработчики фирмы «1С» выделили сопоставление номенклатуры для электронного документооборота в отдельный регистр сведений, как устроена архитектура этого механизма и каким образом происходит синхронизация данных между коммерческим учетом и подсистемой ЭДО.

Что такое БЭД и почему для нее создан отдельный регистр?

Аббревиатура БЭД расшифровывается как Библиотека электронных документов. Это специализированная программная подсистема, разрабатываемая фирмой «1С», которая интегрируется во все современные типовые решения (УТ, КА, ERP, УНФ, Бухгалтерия предприятия). БЭД отвечает за обмен электронными документами (ЭДО) с контрагентами: отправку и получение счетов-фактур, УПД, накладных, заказов и т.д.

Когда вы получаете от поставщика входящий электронный документ (например, УПД в формате XML), система должна автоматически сопоставить текстовые наименования и коды товаров, присланные контрагентом, с конкретными элементами вашего справочника Номенклатура. Именно для хранения этих связей сопоставления (какой GUID или артикул контрагента какому нашему товару соответствует) и используется регистр сведений НоменклатураКонтрагентовБЭД. Для прямой загрузки входящих XML-файлов в документы поступления можно использовать обработку загрузки данных из XML файлов ЭДО в поступления.

В чем разница между справочником "Номенклатура поставщиков" и регистром "НоменклатураКонтрагентовБЭД"?

Давайте проведем четкую границу между этими двумя объектами конфигурации, чтобы раз и навсегда устранить путаницу:

  1. Справочник НоменклатураПоставщиков (в пользовательском интерфейсе — "Номенклатура партнеров"):
    • Это объект коммерческого учета.
    • Он используется для ведения прайс-листов поставщиков, регистрации цен номенклатуры контрагентов, оформления заказов поставщикам с использованием их внутренних наименований и кодов.
    • Данные этого справочника выводятся в печатные формы (например, в печатную форму ТОРГ-2 при оформлении акта о расхождениях).
    • Этот справочник подчинен справочнику Партнеры, а не Контрагенты, что отражает управленческую структуру базы данных.
  2. Регистр сведений НоменклатураКонтрагентовБЭД (в интерфейсе — "Номенклатура контрагентов"):
    • Это специализированный технический регистр подсистемы ЭДО.
    • Он спроектирован под требования XML-стандартов электронного документооборота.
    • Его ключевая задача — максимально быстро и точно найти сопоставление при разборе входящего XML-файла от оператора ЭДО и автоматически заполнить табличную часть документа учета 1С.
    • Он оперирует понятиями юридических лиц (измерение Владелец связано со справочником Контрагенты, а не Партнеры), так как электронный документооборот ведется строго между юридическими лицами.

Несмотря на разные задачи, эти объекты работают в тесной связке. Рассмотрим, как это реализовано на практике.

Архитектура регистра и логика сопоставления данных

Для того чтобы понять, как система идентифицирует товары, проанализируем структуру измерений и ресурсов регистра НоменклатураКонтрагентовБЭД. Регистр является независимым и непериодическим, что обеспечивает максимальную скорость чтения данных.

Ключевые измерения регистра:

Основные ресурсы и реквизиты регистра:

Благодаря такой структуре, при получении электронного документа подсистема БЭД выполняет быстрый поиск по индексу Владелец + Идентификатор. Если точное совпадение найдено, документ создается в базе уже полностью заполненным и сопоставленным, не требуя внимания со стороны оператора.

Особенность: Несколько идентификаторов для одного контрагента

Рассмотрим реальную ситуацию: один и тот же контрагент-поставщик может отправлять вам документы из разных программных источников. Например, часть отгрузок оформляется напрямую из его ERP-системы через интеграционный шлюз ЭДО, а часть документов (например, по разовым сделкам) его менеджеры набивают вручную через личный кабинет на сайте оператора ЭДО.

В этих двух случаях уникальные идентификаторы (GUID) одного и того же товара в XML-файлах будут различаться. Механизм БЭД легко справляется с этой коллизией: в регистре НоменклатураКонтрагентовБЭД для одного контрагента может быть создано несколько различных записей с разными уникальными идентификаторами, но все они будут указывать на одну и ту же позицию номенклатуры в вашей информационной базе 1С.

Как происходит сопоставление в интерфейсе?

Когда вы получаете электронный документ, в котором есть новые, ранее не сопоставленные товары, система предлагает выполнить их сопоставление вручную. Для этого используется специализированное рабочее место "Сопоставление номенклатуры (БЭД)".

Разберем по шагам, что происходит под капотом системы, когда пользователь интерактивно связывает товар поставщика со своей номенклатурой в этой обработке:

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

Технический пример: Как программно получить сопоставленную номенклатуру

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


// Запрос для получения сопоставленной номенклатуры по идентификатору контрагента
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	НоменклатураБЭД.Номенклатура КАК НашаНоменклатура,
    |	НоменклатураБЭД.Характеристика КАК НашаХарактеристика,
    |	НоменклатураБЭД.Упаковка КАК НашаУпаковка
    |ИЗ
    |	РегистрСведений.НоменклатураКонтрагентовБЭД КАК НоменклатураБЭД
    |ГДЕ
    |	НоменклатураБЭД.Владелец = &Контрагент
    |	И НоменклатураБЭД.Идентификатор = &ИдентификаторКонтрагента";

Запрос.УстановитьПараметр("Контрагент", СсылкаНаКонтрагента);
Запрос.УстановитьПараметр("ИдентификаторКонтрагента", ТекстовыйИдентификаторИзXML);

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    // Сопоставление найдено, используем полученные данные
    НашаНоменклатура = Выборка.НашаНоменклатура;
КонецЕсли;

Миграция данных и историческая справка

Стоит отметить, что архитектура БЭД не всегда была такой. В старых версиях Библиотеки электронных документов (до версии 1.7) механизмы сопоставления опирались на другие структуры данных. В частности, активно использовался регистр сведений ПоставляемаяНоменклатура.

С переходом на новые версии БЭД разработчики 1С унифицировали архитектуру сопоставления, сделав регистр НоменклатураКонтрагентовБЭД единой "точкой входа" для всех процессов электронного документооборота. При обновлении конфигураций до актуальных релизов (включая переходы в ветках УТ 11.4 / 11.5) автоматически запускаются фоновые обработчики обновления программного кода. Например, процедура:

РегистрыСведений.НоменклатураПоставщиков.ОбработатьДанныеДляПереходаНаНовуюВерсию()

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

Альтернативное использование регистра разработчиками

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

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

← На главную