Как настроить обмен документами между 1С:ERP и 1С:КА 1.1 и правильно перенести договоры

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

Обмен данными между современными конфигурациями, такими как 1С:ERP Управление предприятием, и решениями предыдущих поколений, например 1С:Комплексная автоматизация 1.1 (КА 1.1), является сложной технической задачей. Основная сложность заключается в фундаментальном различии архитектур: ERP построена на управляемых формах и новой методике учета, в то время как КА 1.1 базируется на обычных формах и коде, близком к УПП 1.3. В данной статье мы подробно разберем, как организовать такой обмен, избежав типичных ошибок новичков.

Выбор инструментария: почему «Конвертация данных 2.1»?

Проанализируем доступные варианты реализации обмена. На первый взгляд, джуниору может показаться заманчивым написание собственной обработки выгрузки в Excel или XML. Однако мы настоятельно рекомендуем отказаться от этого пути. Объекты в ERP имеют сотни реквизитов и сложные табличные части. Пытаясь описать их вручную, вы неизбежно столкнетесь с проблемами при обновлении конфигураций.

Единственным промышленным стандартом для такой задачи является использование конфигурации «Конвертация данных 2.1» (КД 2.1). Этот инструмент позволяет создавать правила обмена (XML-файлы), которые описывают логику преобразования объектов одной базы в объекты другой. Рассмотрим основные преимущества этого подхода:

  1. Автоматизация сопоставления: КД умеет автоматически сопоставлять типы данных.
  2. Гибкость поиска: Мы можем задать уникальные поля поиска (например, ИНН + КПП для контрагентов).
  3. Событийная модель: Мы можем вклиниться в процесс выгрузки или загрузки на любом этапе с помощью кода 1С.

Настройка 1С:ERP для корректного переноса договоров

Одной из главных проблем при переносе Заказа клиента из ERP в Заказ покупателя КА 1.1 является несоответствие структур справочников. В ERP по умолчанию часто используются Соглашения, а поле Договор может быть скрыто или не заполнено. В КА 1.1 поле ДоговорКонтрагента является обязательным для проведения документа.

Выясним причину, почему в ERP может не быть видно договора. Это зависит от настроек функциональных опций и конкретного соглашения с клиентом. Чтобы договор «появился» и его можно было перенести, выполним следующие шаги в базе ERP:

  1. Откроем Соглашение с клиентом, которое используется в заказе.
  2. Перейдем на закладку Условия продаж.
  3. В разделе условий оплаты установим флаг «Требуется указание договора, порядок расчетов определяется в договоре».

После этой настройки в документе Заказ клиента появится поле Договор. Теперь при настройке правил в КД 2.1 мы сможем напрямую сопоставить Объект.Договор (источник) с Объект.ДоговорКонтрагента (приемник).

Борьба с «паровозами» и дублями в НСИ

Типичная проблема — когда при переносе одного документа система «тянет» за собой все связанные справочники (номенклатуру, склады, единицы измерения, всю иерархию контрагентов). Это и называют «паровозом». Если не настроить правила поиска, в базе-приемнике (КА 1.1) возникнет хаос и дублирование нормативно-справочной информации (НСИ).

Рассмотрим, как ограничить выгрузку лишних данных в КД 2.1:

  1. Синхронизация по уникальным идентификаторам (GUID): Если базы ранее не были связаны, поиск по GUID не сработает. Нам нужно настроить Поля поиска в ПКО (Правилах конвертации объектов).
  2. Для справочника Контрагенты установим поиск по ИНН и КПП.
  3. Для справочника Номенклатура — по Артикулу или Коду.
  4. В ПКО справочников установим флаг «Не создавать новых объектов в приемнике, если они не найдены». Это критически важно: если справочника нет в КА 1.1, документ просто не загрузится или загрузится с пустым полем, но база не замусорится «битыми» данными.

Проанализируем ситуацию, когда нам все же нужно переносить новые элементы НСИ, но только те, что реально используются. В КД 2.1 для этого используется настройка «Выгружать объект только по ссылке» в ПКС (Полях конвертации свойств). В этом случае система передаст только идентификационные данные, необходимые для поиска, а не весь объект целиком.

Решение проблемы с курсами валют

При переносе документов часто возникает ошибка: «При пересчете из валюты обнаружен нулевой курс. Пересчет не произведен!». Это происходит потому, что документ в КА 1.1 пытается при записи или проведении найти курс в регистре сведений КурсыВалют на дату документа.

Чтобы решить эту проблему, мы можем реализовать алгоритм в правилах обмена. Разберем пример кода, который можно разместить в обработчике «При загрузке» документа-приемника в КД 2.1, чтобы убедиться, что курс существует:


// Проверим наличие курса в базе-приемнике
КурсВалюты = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Объект.Дата, Новый Структура("Валюта", Объект.ВалютаДокумента));
Если КурсВалюты.Курс = 0 Тогда
    // Если курс не найден, можно либо выдать предупреждение,
    // либо программно создать запись в регистре, если данные переданы в параметрах
    Сообщить("Внимание: на дату " + Объект.Дата + " не задан курс валюты " + Объект.ВалютаДокумента);
КонецЕсли;

Более правильным подходом будет создание отдельного ПВД (Правила выгрузки данных) для регистра КурсыВалют, чтобы они всегда переносились перед документами.

Методика отладки обмена

Поскольку вы работаете с разными версиями платформы и конфигураций, стандартная отладка может быть затруднена. Рекомендуем использовать обработку УниверсальныйОбменДаннымиXML. Посмотрим, как правильно организовать процесс отладки:

  1. Выгружаем данные из ERP в файл с помощью ваших правил.
  2. В КА 1.1 открываем обработку загрузки, переходим на закладку «Параметры отладки».
  3. Включаем режим «Выводить информационные сообщения в окно сообщений».
  4. Если происходит ошибка при поиске договора или контрагента, система точно укажет на правило (ПКО), в котором произошел сбой.

Заключение и оценка сроков

Разберем важный организационный момент. Как отмечают опытные специалисты, создание качественного обмена между ERP и КА 1.1 с нуля может занять от нескольких недель до нескольких месяцев. Не стоит ожидать, что задача будет решена за пару дней. Основное время уйдет не на написание кода, а на сопоставление методик учета: как закрываются заказы, как учитывается НДС, как работают статусы документов.

Мы рекомендуем начинать с малого: настроить перенос одного типа документа (например, Заказа), добиться идеальной синхронизации НСИ по ИНН/КПП, и только после этого расширять состав обмена. Помните, что чистота нормативно-справочной информации в базе-приемнике важнее, чем скорость переноса самих документов.

← На главную