Как выгрузить документы поступления и реализации из 1С:Бухгалтерия 3.0 в 1С:Управление торговлей 11?

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

При работе со связкой программ 1С:Бухгалтерия предприятия 3.0 (БП) и 1С:Управление торговлей 11 (УТ) пользователи часто сталкиваются с неожиданной проблемой. Если учет изначально велся в БП, а затем возникла необходимость запустить оперативную торговую базу в УТ, стандартная синхронизация отказывается переносить документы закупки и продажи. В УТ выгружаются только банковские и кассовые документы, в то время как накладные (поступления, реализации) даже не регистрируются к обмену.

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

Выясняем причину: архитектурная логика типового обмена 1С

Прежде чем переходить к настройкам, давайте разберем методологическую логику, заложенную разработчиками фирмы 1С в стандартный механизм синхронизации.

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

Именно поэтому в обратную сторону — из БП в УТ — типовой обмен отправляет строго ограниченный набор документов:

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

Ниже мы рассмотрим четыре практических способа обойти это ограничение.

Способ 1. Обход ограничения через EnterpriseData (режим «Другая программа»)

Рассмотрим самый простой и элегантный лайфхак, не требующий программирования или снятия конфигураций с поддержки. Данный способ основан на использовании универсального формата обмена EnterpriseData.

Состав регистрируемых и выгружаемых документов в БП 3.0 напрямую зависит от того, какой тип конфигурации-приемника вы указываете при создании новой синхронизации:

  1. Если при настройке обмена в БП вы выбираете тип базы-приемника «1С:Управление торговлей, ред. 11», программа автоматически активирует встроенный жесткий фильтр. Накладные блокируются для выгрузки.
  2. Если же при создании настройки в БП выбрать вариант «Другая программа» (или «1С:Управление предприятием / ERP»), обмен будет настроен через универсальный формат данных без ограничений со стороны БП. В этом случае конфигурация снимет блокировку, и документы закупки/продажи будут успешно зарегистрированы к отправке.

Пошаговый алгоритм настройки:

Способ 2. Использование штатной обработки «Помощник перехода»

Проанализируем инструмент, который фирма 1С предлагает для миграции данных. В дистрибутив поставки УТ 11 (каталог шаблонов конфигураций на вашем диске) входит специализированная внешняя обработка Выгрузка данных из БП 3.0.epf.

Разберем особенности работы с ней:

Способ 3. Программная модификация правил регистрации объектов

Если вам требуется постоянная синхронизация, но вы хотите сохранить именно типовую настройку обмена «БП — УТ», нам придется вмешаться в правила регистрации объектов.

Для этого используется конфигурация «1С:Конвертация данных 2.1» (или КД 3.0 для формата EnterpriseData). Посмотрим на логику процесса:

После этого изменения документов купли-продажи начнут регистрироваться в стандартном узле обмена автоматически. Чтобы форсировать процесс для исторических данных, можно воспользоваться программным кодом для ручной регистрации документов в плане обмена.

Рассмотрим пример кода, который регистрирует все проведенные реализации за определенный период для узла обмена:


// Выбираем узел обмена с УТ
УзелОТ = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("УТ-000001");

Если ЗначениеЗаполнено(УзелОТ) Тогда
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Реализация.Ссылка КАК Ссылка
        |ИЗ
        |   Документ.РеализацияТоваровУслуг КАК Реализация
        |ГДЕ
        |   Реализация.Проведен = ИСТИНА
        |   И Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца";
    
    Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(РабочаяДата));
    Запрос.УстановитьПараметр("ДатаКонца", КонецДня(РабочаяДата));
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        // Регистрируем документ для выгрузки в выбранный узел
        ПланыОбмена.ЗарегистрироватьИзменения(УзелОТ, Выборка.Ссылка);
    КонецЦикла;
    
    Сообщить("Регистрация документов купли-продажи успешно завершена!");
КонецЕсли;

Способ 4. Разработка индивидуальных правил обмена в Конвертации Данных 2.1

Если структуры документов сильно различаются (например, в БП у вас простая аналитика, а в УТ включены статусы документов, ордерные склады, соглашения с клиентами и индивидуальные графики оплат), стандартный формат EnterpriseData может не справиться с корректным заполнением реквизитов.

В такой ситуации оптимальным решением является создание собственных правил обмена (ПКО, ПКС) в «1С:Конвертация данных 2.1»:

  1. Выгружаем структуры метаданных БП 3.0 и УТ 11 с помощью обработки MD83Exp.epf.
  2. Загружаем обе структуры в КД 2.1 и сопоставляем необходимые объекты.
  3. Создаем правила конвертации объектов (ПКО) для документов РеализацияТоваровУслуг и ПоступлениеТоваровУслуг.
  4. Важный момент: прописываем алгоритмы заполнения обязательных реквизитов УТ, которых нет в БП. Например, при переносе реализации в УТ необходимо программно подбирать или создавать дефолтное ТиповоеСоглашениеСКлиентом, определять ХозяйственнаяОперация (например, «РеализацияКлиенту») и устанавливать статус документа в значение «Реализовано».
  5. Выгружаем данные из БП через обработку Универсальный обмен данными в формате XML, используя созданные правила, и загружаем в УТ через эту же обработку.

Использование собственных правил XML гарантирует 100% контроль над тем, как именно документы преобразуются при переносе, и исключает появление непроводящихся документов-пустышек в базе УТ.

← На главную