Обмен данными между современными конфигурациями, такими как 1С:ERP Управление предприятием, и решениями предыдущих поколений, например 1С:Комплексная автоматизация 1.1 (КА 1.1), является сложной технической задачей. Основная сложность заключается в фундаментальном различии архитектур: ERP построена на управляемых формах и новой методике учета, в то время как КА 1.1 базируется на обычных формах и коде, близком к УПП 1.3. В данной статье мы подробно разберем, как организовать такой обмен, избежав типичных ошибок новичков.
Проанализируем доступные варианты реализации обмена. На первый взгляд, джуниору может показаться заманчивым написание собственной обработки выгрузки в Excel или XML. Однако мы настоятельно рекомендуем отказаться от этого пути. Объекты в ERP имеют сотни реквизитов и сложные табличные части. Пытаясь описать их вручную, вы неизбежно столкнетесь с проблемами при обновлении конфигураций.
Единственным промышленным стандартом для такой задачи является использование конфигурации «Конвертация данных 2.1» (КД 2.1). Этот инструмент позволяет создавать правила обмена (XML-файлы), которые описывают логику преобразования объектов одной базы в объекты другой. Рассмотрим основные преимущества этого подхода:
Одной из главных проблем при переносе Заказа клиента из ERP в Заказ покупателя КА 1.1 является несоответствие структур справочников. В ERP по умолчанию часто используются Соглашения, а поле Договор может быть скрыто или не заполнено. В КА 1.1 поле ДоговорКонтрагента является обязательным для проведения документа.
Выясним причину, почему в ERP может не быть видно договора. Это зависит от настроек функциональных опций и конкретного соглашения с клиентом. Чтобы договор «появился» и его можно было перенести, выполним следующие шаги в базе ERP:
После этой настройки в документе Заказ клиента появится поле Договор. Теперь при настройке правил в КД 2.1 мы сможем напрямую сопоставить Объект.Договор (источник) с Объект.ДоговорКонтрагента (приемник).
Типичная проблема — когда при переносе одного документа система «тянет» за собой все связанные справочники (номенклатуру, склады, единицы измерения, всю иерархию контрагентов). Это и называют «паровозом». Если не настроить правила поиска, в базе-приемнике (КА 1.1) возникнет хаос и дублирование нормативно-справочной информации (НСИ).
Рассмотрим, как ограничить выгрузку лишних данных в КД 2.1:
Контрагенты установим поиск по ИНН и КПП.Номенклатура — по Артикулу или Коду.Проанализируем ситуацию, когда нам все же нужно переносить новые элементы НСИ, но только те, что реально используются. В КД 2.1 для этого используется настройка «Выгружать объект только по ссылке» в ПКС (Полях конвертации свойств). В этом случае система передаст только идентификационные данные, необходимые для поиска, а не весь объект целиком.
При переносе документов часто возникает ошибка: «При пересчете из валюты обнаружен нулевой курс. Пересчет не произведен!». Это происходит потому, что документ в КА 1.1 пытается при записи или проведении найти курс в регистре сведений КурсыВалют на дату документа.
Чтобы решить эту проблему, мы можем реализовать алгоритм в правилах обмена. Разберем пример кода, который можно разместить в обработчике «При загрузке» документа-приемника в КД 2.1, чтобы убедиться, что курс существует:
// Проверим наличие курса в базе-приемнике
КурсВалюты = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Объект.Дата, Новый Структура("Валюта", Объект.ВалютаДокумента));
Если КурсВалюты.Курс = 0 Тогда
// Если курс не найден, можно либо выдать предупреждение,
// либо программно создать запись в регистре, если данные переданы в параметрах
Сообщить("Внимание: на дату " + Объект.Дата + " не задан курс валюты " + Объект.ВалютаДокумента);
КонецЕсли;
Более правильным подходом будет создание отдельного ПВД (Правила выгрузки данных) для регистра КурсыВалют, чтобы они всегда переносились перед документами.
Поскольку вы работаете с разными версиями платформы и конфигураций, стандартная отладка может быть затруднена. Рекомендуем использовать обработку УниверсальныйОбменДаннымиXML. Посмотрим, как правильно организовать процесс отладки:
Разберем важный организационный момент. Как отмечают опытные специалисты, создание качественного обмена между ERP и КА 1.1 с нуля может занять от нескольких недель до нескольких месяцев. Не стоит ожидать, что задача будет решена за пару дней. Основное время уйдет не на написание кода, а на сопоставление методик учета: как закрываются заказы, как учитывается НДС, как работают статусы документов.
Мы рекомендуем начинать с малого: настроить перенос одного типа документа (например, Заказа), добиться идеальной синхронизации НСИ по ИНН/КПП, и только после этого расширять состав обмена. Помните, что чистота нормативно-справочной информации в базе-приемнике важнее, чем скорость переноса самих документов.