Как настроить односторонний обмен УНФ — БП 3.0 и кастомизировать правила без снятия с поддержки?

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

Синхронизация данных между конфигурациями «1С:Управление нашей фирмой» (УНФ) и «1С:Бухгалтерия предприятия» (БП 3.0) — одна из самых частых задач при автоматизации торговых и производственных компаний. Переход фирмы «1С» на современный формат обмена EnterpriseData (на базе технологии КД3) принес много преимуществ, но вместе с тем усложнил процесс кастомизации правил для разработчиков. Часто возникает ситуация, когда требования бухгалтерии (например, «не переносить определенные счета», «фильтровать документы по конкретным аналитикам», «делать обмен только в одну сторону») заставляют разработчиков задуматься о возврате к старой доброй технологии «Конвертация данных 2.0» (КД2).

В этой статье мы подробно разберем, как решить проблемы кастомизации обмена между УНФ 1.6/3.0 и БП 3.0, рассмотрим варианты настройки обмена через КД2 без снятия конфигураций с поддержки, а также проанализируем, как сделать тонкую настройку через современный формат EnterpriseData без переписывания типового кода.

---

Почему возвращение к классическому КД2 — это «ловушка»?

На первый взгляд, откат к обмену через обработку Универсальный обмен данными в формате XML кажется спасением. В КД2 всё наглядно, просто и знакомо. Однако в долгосрочной перспективе это решение несет критические риски:

  1. Регулярные обновления конфигураций. Изменения законодательства (например, новые ставки НДС, маркировка, форматы отчетности) требуют постоянного обновления БП 3.0 и УНФ. Фирма «1С» регулярно меняет состав реквизитов и типы данных. Использование старых правил КД2 приведет к тому, что после очередного обновления обмен просто сломается, и вам придется вручную переписывать правила.
  2. Отсутствие автоматической регистрации изменений. При ручном обмене файлами через универсальную обработку теряется контроль измененных объектов. Пользователям придется вручную указывать периоды или настраивать сложные отборы, что неизбежно приведет к дублированию или потере данных.
  3. Постепенное удаление поддержки КД2. Из современных редакций УНФ 3.0 старые правила КД2 планомерно вырезаются разработчиками «1С».

Поэтому лучшим решением является тонкая настройка обмена с использованием штатных механизмов платформы 1С. Рассмотрим пошагово оба варианта: кастомизацию правил регистрации КД2 и правильную настройку EnterpriseData.

---

Вариант 1. Использование встроенных правил КД2 и тонкая настройка правил регистрации

Если вам все же необходимо использовать классические правила КД2, нет необходимости снимать базы с поддержки или дописывать планы обмена в конфигураторе. Конфигурация 1С позволяет загружать измененные правила обмена и регистрации непосредственно в пользовательском режиме.

Выясним, как это сделать по шагам:

Шаг 1. Получение типовых правил

Типовые правила обмена КД2 между УНФ и БП 3.0 хранятся внутри самих конфигураций или в каталоге шаблонов на вашем диске (обычно это путь вида AppData\Local\1C\1Cv8\tmplts\... в папке соответствующего релиза). Также правила можно извлечь прямо из базы данных. Для этого перейдем в регистр сведений Правила для обмена данными, найдем нужную настройку обмена и сохраним правила конвертации (XML) и правила регистрации изменений на диск.

Шаг 2. Кастомизация правил регистрации изменений в КД 2.1

Бухгалтеры часто просят исключить из выгрузки определенные документы (например, внутренние перемещения, документы по определенным складам или счетам учета). Чтобы не переписывать правила конвертации, достаточно запретить саму регистрацию этих документов к отправке. Для этого мы отредактируем Правила регистрации изменений (ПР):

  1. Запустим базу «Конвертация данных 2.1».
  2. Загрузим в нее наши правила регистрации изменений.
  3. Найдем нужное правило для конкретного документа (например, ПриходнаяНакладная).
  4. В обработчике события Перед обработкой или При регистрации пропишем условие отбора.

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


// Пример фильтрации в правилах регистрации изменений КД 2.1
Если Объект.Организация.ИНН <> "7701020304" Тогда
    Отказ = Истина; // Документ не будет зарегистрирован к отправке
КонецЕсли;

Если Объект.Склад.Наименование = "Архивный склад" Тогда
    Отказ = Истина; // Исключаем выгрузку по данному складу
КонецЕсли;

Шаг 3. Загрузка правил обратно в информационную базу

После сохранения правил регистрации из КД 2.1 в XML-файл, нам нужно загрузить их обратно в 1С. Для этого выполним следующие действия:

  1. Откроем УНФ в режиме «1С:Предприятие».
  2. Перейдем в раздел Администрирование -> Синхронизация данных.
  3. Откроем список настроек синхронизации данных, выберем нужную настройку и перейдем в меню Параметры подключения -> Правила отправки данных (или откроем регистр сведений Правила для обмена данными).
  4. В поле «Правила регистрации» выберем вариант «Использовать другие правила» и загрузим наш отредактированный XML-файл.

Таким образом, мы настроили жесткую фильтрацию объектов на этапе регистрации, полностью сохранив конфигурацию на типовой поддержке!

---

Вариант 2. Настройка одностороннего обмена и доработка EnterpriseData (ED)

Если вы хотите идти в ногу со временем и не бояться обновлений 1С, давайте разберем, как решить озвученные проблемы (односторонний обмен, фильтрация данных) непосредственно в современном формате EnterpriseData.

Штатная настройка одностороннего обмена

Для того чтобы документы выгружались только из УНФ в БП 3.0, но не загружались обратно, не нужно переписывать код. Настроим это в пользовательском интерфейсе:

  1. В базе БП 3.0 перейдем в настройки синхронизации данных.
  2. Откроем правила отправки данных для этой синхронизации.
  3. Установим переключатель отправки документов и справочников в положение «Не отправлять».
  4. В базе УНФ оставим настройки отправки активными. Теперь обмен будет работать строго в одну сторону (только загрузка в БП 3.0).

Доработка логики сопоставления и счетов учета через Расширения

Вся логика трансформации данных в EnterpriseData описана в общем модуле МенеджерОбменаЧерезУниверсальныйФормат. Если нам нужно изменить счета учета при загрузке в БП 3.0 или переопределить заполнение реквизитов, мы можем использовать **расширение конфигурации**.

Создадим расширение и перехватим обработчики нужных объектов. Например, при загрузке документа ПоступлениеТоваровУслуг нам нужно принудительно изменить счет учета расчетов с контрагентом:


&После("ПОД_Документ_ПриходнаяНакладная_Отправка_ПриОбработке")
Процедура Расш_ПОД_Документ_ПриходнаяНакладная_Отправка_ПриОбработке(ДанныеЗаписи, Источник, Отказ)
    // Код выполняется на стороне УНФ перед отправкой данных в формат ED
    // Например, исключаем из выгрузки документы с нулевой суммой
    Если Источник.СуммаДокумента = 0 Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

Если же мы хотим скорректировать данные уже на стороне Бухгалтерии предприятия в процессе загрузки из формата ED, мы можем перехватить обработчик в расширении БП 3.0:


&После("ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПриОтражении")
Процедура Расш_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПриОтражении(НаправлениеОбмена, ДанныеПО, Объект, ДанныеXDTO, КомпонентОбмена)
    // Переопределяем счета учета расчетов при загрузке в БП 3.0
    Если Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком Тогда
        Объект.СчетУчетаРасчетовСПоставщиком = ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками; // 60.01
        Объект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным; // 60.02
    КонецЕсли;
КонецПроцедуры

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

---

Резюме

При возникновении сложностей с обменом УНФ — БП 3.0 не торопитесь откатываться на устаревшие методы ручного обмена КД2 через XML-файлы. Проанализируем наши шаги:

Такой подход сбережет ваше время при последующих обновлениях баз данных и обеспечит корректный и контролируемый учет у бухгалтеров.

← На главную