Как перенести документы поступления из Бухгалтерии предприятия 3.0 в Управление торговлей 11.4 с помощью Конвертации данных

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

При внедрении «1С:Управление торговлей 11.4» (УТ) в компанию, где ранее учет велся только в «1С:Бухгалтерия предприятия 3.0» (БП), часто возникает задача обратного переноса данных. Типовой обмен настроен таким образом, что первичные документы (поступления, реализации) создаются в торговой базе и транслируются в бухгалтерию. Однако в ситуации «чистой» торговой базы пользователям необходимо оперативно получить документы поступления в УТ для корректного подбора номеров ГТД и контроля остатков. Разберем, как реализовать этот перенос, используя механизмы «Конвертации данных» (КД).

Анализ технологического стека: КД2 или КД3?

Первым делом нам необходимо разобраться, какая технология обмена используется в современных версиях конфигураций. Начиная с релизов БП 3.0.44 и УТ 11.2, фирма «1С» перевела типовую синхронизацию на формат Enterprise Data (ED), который базируется на «Конвертации данных 3.0». В отличие от классической КД 2.0, обмен здесь происходит не напрямую «объект в объект», а через промежуточное звено — XDTO-пакет (универсальный формат).

Проанализируем ситуацию: если мы хотим изменить типовой обмен, нам придется дорабатывать МенеджерОбменаЧерезУниверсальныйФормат. Это трудоемкая задача, требующая отличного знания структуры XDTO. Однако, если задача разовая или требуется специфический перенос «один в один», использование «Конвертации данных 2.0» остается актуальным и более простым в реализации инструментом. Важно понимать: штатный синхронизатор в интерфейсе программ не примет правила КД2. Для работы с ними нам потребуется внешняя обработка Универсальный обмен данными в формате XML.

Подготовка базы УТ 11.4 перед загрузкой

Прежде чем приступать к написанию правил, мы должны подготовить «чистую» базу УТ. Перенос документов без предварительной синхронизации справочников приведет к дублированию данных. Рассмотрим шаги подготовки:

  1. Синхронизация НСИ: Необходимо перенести справочники Номенклатура, Контрагенты, Склады и Организации. Крайне важно сохранять УИД (уникальные идентификаторы) объектов. Если справочники в УТ уже созданы вручную, придется настраивать правила поиска по ИНН/КПП для контрагентов и по Артикулу/Наименованию для номенклатуры.
  2. Настройка учетной политики: В УТ 11.4 учет ГТД тесно связан с аналитикой ВидыЗапасов. Если документ поступления просто «закинуть» в базу без проведения и заполнения этой аналитики, номера ГТД в реализации автоматически не подтянутся.

Разработка правил обмена в КД 2.1

Рассмотрим процесс создания правил для переноса документов «Поступление (акты, накладные, УПД)» из БП в «Приобретение товаров и услуг» в УТ. Разберем по шагам:

Шаг 1: Выгрузка метаданных. С помощью обработки MD83Exp.epf выгружаем структуру метаданных из БП 3.0 и УТ 11.4. Загружаем их в конфигурацию «Конвертация данных 2.1».

Шаг 2: Создание ПВД и ПКО. Создаем правило конвертации объекта (ПКО) для документа. В БП это ПоступлениеТоваровУслуг, в УТ — ПриобретениеТоваровУслуг. Настраиваем сопоставление полей:

Шаг 3: Перенос табличной части и ГТД. Это самая важная часть. В БП номер ГТД может храниться непосредственно в табличной части или в справочнике НомераГТД. В УТ 11 нам нужно передать данные так, чтобы заполнилось поле НомерГТД в табличной части Товары. Проанализируем пример кода в обработчике ПриЗагрузке для поиска или создания номера ГТД в приемнике:


// Пример логики поиска номера ГТД в УТ 11
Если ЗначениеЗаполнено(Объект.НомерГТД) Тогда
    НайденныйГТД = Справочники.НомераГТД.НайтиПоНаименованию(СтрокаГТД);
    Если НайденныйГТД.Пустая() Тогда
        НовыйГТД = Справочники.НомераГТД.СоздатьЭлемент();
        НовыйГТД.Наименование = СтрокаГТД;
        НовыйГТД.Записать();
        Объект.НомерГТД = НовыйГТД.Ссылка;
    Иначе
        Объект.НомерГТД = НайденныйГТД;
    КонецЕсли;
КонецЕсли;

Проблема циклического обмена

Выясним причину, по которой двусторонний обмен может «зациклиться». Если мы настроили обмен так, что документы мигрируют в обе стороны, то при изменении документа в УТ он улетает в БП, там перезаписывается, признается «новым» для обмена и летит обратно в УТ, затирая изменения пользователя. Чтобы этого избежать, при использовании КД2 в правилах выгрузки рекомендуется:

Использование готовых решений

Если разработка собственных правил кажется слишком сложной, стоит обратить внимание на существующие наработки. В сообществе 1С популярны «Правила обмена от Макса», которые оптимизированы именно для перехода с БП на УТ. Такие решения часто включают в себя сложные алгоритмы сопоставления ВидовЗапасов и Партий, что критично для корректного формирования себестоимости в УТ 11.4.

Альтернативный метод: Загрузка через COM-соединение

Если нам нужно перенести документы разово, рассмотрим вариант использования обработки «Загрузка данных из табличного документа» или написание простого скрипта через COM-соединение. Проанализируем алгоритм:

  1. Устанавливаем соединение с базой БП 3.0: V83.COMConnector.
  2. Выбираем документы за период.
  3. В цикле создаем документы в УТ 11.4, заполняя реквизиты напрямую из объектов базы-источника.

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

Подведем итог: Перенос документов из БП в УТ через КД 2.0 возможен и часто является более быстрым решением для разовых задач, чем доработка типового Enterprise Data. Однако при этом вся ответственность за целостность данных (особенно в части ГТД и складского учета) ложится на разработчика правил. Для долгосрочного использования рекомендуется осваивать КД 3.0 и расширять типовой формат обмена.

← На главную