Разработка и Конфигурация · 11 мин
Что такое мэппинг в 1С и как настроить сопоставление данных
Мэппинг в 1С — это сопоставление полей и объектов при обмене данными. Разбираем виды мэппинга, настройку правил конвертации, типичные ошибки и проверку результата.
Мэппинг (от англ. mapping — «сопоставление») в 1С — это процесс установления соответствия между данными разных систем, форматов или конфигураций. Когда информационная база 1С обменивается данными с сайтом, другой конфигурацией, банковским клиентом или внешним сервисом, структуры данных почти никогда не совпадают один в один: поля называются по-разному, типы отличаются, часть реквизитов существует только в одной из систем. Мэппинг описывает, какое поле источника в какое поле приёмника попадает и как его нужно преобразовать.
Практически мэппинг встречается в трёх формах: правила конвертации данных (ПКО, ПКС) в типовой обработке «Конвертация данных» и механизме EnterpriseData, сопоставление объектов при синхронизации через планы обмена, а также ручное сопоставление полей при загрузке данных из табличных документов и файлов. Во всех случаях суть одна — задать таблицу соответствий, по которой система переносит значения без потерь и дублей.
От качества мэппинга напрямую зависит целостность учёта: ошибка в сопоставлении справочника «Номенклатура» приведёт к задвоению позиций, а неверное правило для контрагентов — к потере договоров и документов. Поэтому мэппинг всегда настраивают и проверяют на копии базы, прежде чем запускать обмен в рабочей среде.
Где именно применяется мэппинг в 1С
Чаще всего с мэппингом сталкиваются при синхронизации двух конфигураций — например, «Управление торговлей» и «Бухгалтерия предприятия». Типовая синхронизация уже содержит готовые правила сопоставления справочников и документов, но при доработке конфигураций (добавлении своих реквизитов) эти правила приходится расширять вручную.
Второй типовой сценарий — обмен с внешними системами: сайтом на CMS, CRM, маркетплейсами, WMS или банковскими сервисами. Здесь мэппинг описывает соответствие между структурой 1С и форматом обмена (XML, JSON, CommerceML). Например, поле «Артикул» в 1С может соответствовать полю sku в JSON-запросе к API маркетплейса.
Третий сценарий — первичная загрузка данных при переходе на новую конфигурацию или старт учёта из Excel. Обработка «Загрузка данных из табличного документа» предлагает пользователю вручную сопоставить колонки файла с реквизитами справочника — это тоже мэппинг в упрощённом виде.
Ключевые понятия: ПКО, ПКС и сопоставление объектов
В механизме конвертации данных мэппинг строится на двух базовых сущностях. ПКО — правило конвертации объектов — определяет соответствие между типами: например, справочник «Контрагенты» источника переносится в справочник «Контрагенты» приёмника, а документ «Реализация товаров и услуг» — в «Реализация (акты, накладные)». Для каждого ПКО задаётся способ поиска объекта в приёмнике — по уникальному идентификатору или по комбинации полей поиска (ИНН + КПП, код, наименование).
ПКС — правило конвертации свойств — работает внутри ПКО и описывает отдельные поля: реквизит «Наименование» источника записывается в реквизит «Наименование» приёмника, «ИНН» — в «ИНН» и так далее. Если типы значений различаются, в ПКС указывают правило конвертации значения или произвольный алгоритм на встроенном языке.
Отдельно стоит понятие сопоставления объектов при синхронизации через планы обмена. Перед первой загрузкой система показывает таблицу, где пользователь вручную или автоматически связывает элементы двух баз: какой контрагент в источнике соответствует какому контрагенту в приёмнике. Эти связи сохраняются в регистрах сведений «Соответствия объектов информационных баз» и используются при всех последующих обменах.
Как настроить мэппинг при типовой синхронизации
Типовые конфигурации на БСП (библиотеке стандартных подсистем) содержат готовые настройки синхронизации. Минимальная последовательность выглядит так: в разделе «Администрирование» — «Синхронизация данных» включается нужный вид обмена, создаётся настройка, указывается префикс базы и параметры подключения. После первого выгруженного пакета система переходит к этапу сопоставления.
На этапе сопоставления программа автоматически связывает объекты по типовым полям поиска и показывает статистику: сколько элементов сопоставлено автоматически, сколько требуют ручной проверки. Обязательно просмотрите несопоставленные объекты — именно здесь зарождаются будущие дубли. После подтверждения связей выполняется загрузка, и с этого момента обмен работает по установленным соответствиям.
- 1Сделайте резервную копию обеих баз и проверьте настройку на копиях
- 2Включите синхронизацию данных в разделе «Администрирование» и создайте настройку обмена
- 3Выгрузите начальный пакет данных из базы-источника
- 4На этапе сопоставления проверьте автоматические связи и вручную свяжите спорные объекты
- 5Загрузите данные и сверьте количество и содержимое ключевых справочников
- 6Проведите контрольный документ в источнике и убедитесь, что он корректно появился в приёмнике
Мэппинг через конвертацию данных и произвольные алгоритмы
Когда типовых правил не хватает — например, конфигурации сильно доработаны или обмен идёт с нестандартной системой, — используют конфигурацию «Конвертация данных» (для правил обмена в формате XML) или механизм EnterpriseData с XDTO-пакетами. В конвертации данных разработчик создаёт собственные ПКО и ПКС, а для нестандартных преобразований пишет алгоритмы: обработчики «Перед выгрузкой», «При загрузке», «После загрузки».
Типичный пример произвольного мэппинга — склейка и разборка полей. В источнике адрес хранится одной строкой, а в приёмнике — структурированно по полям КЛАДР (индекс, регион, город, улица). В обработчике ПКС строка разбирается и распределяется по нужным реквизитам. Обратная ситуация — несколько реквизитов источника собираются в одно поле приёмника — решается так же.
При работе с внешними API мэппинг часто реализуют напрямую в коде: структура или соответствие 1С заполняется из реквизитов объекта, сериализуется в JSON и отправляется через HTTP-соединение. При чтении ответа выполняется обратное сопоставление полей. Такой подход гибок, но требует аккуратной обработки типов: даты, булевы значения и числовые форматы в JSON и 1С представлены по-разному.
Соответствие = Новый Соответствие;
Соответствие.Вставить("sku", Объект.Артикул);
Соответствие.Вставить("name", Объект.Наименование);
Соответствие.Вставить("price", Объект.Цена);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Соответствие);
ТелоЗапроса = ЗаписьJSON.Закрыть();Как проверить, что мэппинг настроен правильно
Проверка начинается с контрольных цифр: количество элементов в ключевых справочниках источника и приёмника после обмена должно совпадать с учётом отборов. Для документов полезно сверить итоговые суммы по выбранному периоду — расхождение укажет на потерянные или задвоенные объекты.
Далее выполняется выборочная проверка содержимого: откройте несколько сопоставленных объектов в обеих базах и сравните значения реквизитов, особенно тех, что проходили через произвольные алгоритмы. Отдельно проверьте ссылочные поля — договоры, единицы измерения, склады: именно они чаще всего «слетаяют» при неполном мэппинге, подставляя пустые ссылки.
Как проверить результат обмена
Совпадает с источником с учётом отборов
Появились дубли или пропали элементы
Договоры, склады, единицы измерения заполнены корректно
Пустые ссылки или объекты "<Объект не найден>"
Новых объектов не создаётся, регистрация изменений пуста
При каждом обмене создаются дубли — нарушены поля поиска
Итоги источника и приёмника совпадают
Расхождения — документы теряются или задваиваются
Типичные ошибки и ограничения
Самая распространённая ошибка — неверный выбор полей поиска, из-за которого при каждом обмене создаются дубли справочников. Вторая по частоте проблема — различие типов данных: строка фиксированной длины в приёмнике обрезает длинные значения источника, а перечисление источника не имеет нужного значения в приёмнике, что приводит к пустым ссылкам.
Также учитывайте ограничения: типовые правила синхронизации рассчитаны на определённые версии конфигураций, и после обновления одной из баз правила могут потребовать актуализации. Произвольные алгоритмы в правилах конвертации усложняют поддержку — при смене разработчика разобраться в чужих обработчиках бывает труднее, чем написать заново.
FAQ: частые вопросы о мэппинге в 1С
Чем мэппинг отличается от синхронизации данных?
Синхронизация — это процесс обмена данными между базами в целом, включая транспорт, регистрацию изменений и разрешение коллизий. Мэппинг — только часть этого процесса: правила соответствия, по которым данные одной системы преобразуются в данные другой. Синхронизация без корректного мэппинга переносит данные формально, но с дублями и потерями.
Можно ли настроить мэппинг без программирования?
Да, в типовых сценариях. Синхронизация между стандартными конфигурациями настраивается через интерфейс без единой строки кода, а загрузка из Excel выполняется визуальным сопоставлением колонок. Программирование требуется, когда структуры сильно различаются, нужны нестандартные преобразования значений или обмен идёт с произвольным API.
Что делать, если после обмена появились дубли справочников?
Сначала остановите обмен, чтобы дубли не размножались. Затем проверьте поля поиска в правилах конвертации и ранее установленные соответствия объектов. Существующие дубли объединяют штатной обработкой «Поиск и удаление дублей» (в разделе «Администрирование» — «Обслуживание»), после чего исправляют правила и повторяют тест на копии.
Где хранятся соответствия объектов между базами?
В типовых конфигурациях связи сохраняются в регистрах сведений сопоставления (например, «Соответствия объектов информационных баз»), где для каждого объекта приёмника фиксируется уникальный идентификатор объекта источника. При собственной реализации обмена такие соответствия обычно хранят в аналогичном самостоятельном регистре сведений.
Нужно ли заново сопоставлять объекты после обновления конфигурации?
Как правило, нет — сохранённые соответствия переживают обновления. Но если обновление изменило состав реквизитов или типы объектов, участвующие в поиске, часть связей может стать неактуальной. После мажорных обновлений стоит выполнить контрольный обмен и выборочно проверить сопоставленные объекты.
Что такое мэппинг при обмене с сайтом или маркетплейсом?
Это соответствие между полями 1С и полями внешней системы: артикул — sku, наименование — name, цена из вида цен — price и т.д. В типовых модулях обмена часть соответствий зашита в код, а часть выносится в настройки (например, выбор вида цен и склада для выгрузки). При нестандартных требованиях площадки мэппинг дорабатывают в коде модуля обмена.
Что важно запомнить
Мэппинг — это правила соответствия данных при обмене: ПКО связывают объекты, ПКС — отдельные поля, а регистры соответствий хранят установленные связи. Качество мэппинга определяется полями поиска и проверкой на копии базы: дубли и битые ссылки — почти всегда следствие пропущенного этапа сопоставления или тестирования.