Почему заказы из 1С:УНФ выгружаются в 1С:Бухгалтерию пустыми или не регистрируются к обмену?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Промышленность, строительство и АПК
← На главную

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

Анализ проблемы: почему документы не регистрируются?

Рассмотрим стандартную ситуацию: пользователь вносит изменения в документ в УНФ, проводит его, но в мониторе синхронизации количество объектов к отправке не увеличивается. Даже попытка принудительной регистрации через обработку Регистрация изменений для обмена не дает результата — объект исчезает из списка сразу после добавления.

Выясним причину такого поведения системы. В основе любого обмена лежат Правила регистрации объектов (ПРО). Это программный код, который проверяет документ на соответствие определенным критериям перед тем, как разрешить его выгрузку. Если документ не проходит фильтр, система автоматически удаляет его из узла обмена. Проанализируем основные причины срабатывания этих фильтров:

  1. Вид операции документа: Это наиболее частая причина. В типовом обмене УНФ — БП для документа ЗаказПокупателя часто установлено жесткое ограничение: выгружать только операции с видом Продажа.
  2. Дата документа: Документ может находиться за пределами периода, установленного в настройках синхронизации.
  3. Специфические реквизиты: Например, если в документе не заполнена организация или склад, который является обязательным для бухгалтерского учета, правила регистрации могут заблокировать такой объект.

Проблема вида операции «Заказ на переработку»

Как показывает практика, камнем преткновения часто становится использование вида операции «Заказ на переработку». Проанализируем ситуацию: в УНФ этот документ используется для планирования производства из давальческого сырья. Однако в «1С:Бухгалтерия предприятия 3.0» прямой аналог такого заказа в том виде, в котором он существует в УНФ, отсутствует.

В типовых правилах конвертации (ПКО) для формата EnterpriseData может просто не быть описания алгоритма перекладывания данных из «Заказа на переработку» УНФ в соответствующие объекты БП. В результате мы получаем следующее:

Почему в Бухгалтерию приходят «пустые» заказы?

Посмотрим на ситуацию со стороны базы-приемника. Если вы видите в БП документ, в котором заполнены только номер и дата, это означает, что объект был создан «по ссылке». Рассмотрим, как это работает:

Допустим, вы выгружаете документ Реализация, который создан на основании Заказа покупателя. Сама Реализация проходит все фильтры и попадает в обмен. В XML-файле обмена передается ссылка на документ-основание. БП видит эту ссылку и, если такого заказа в ее базе еще нет, создает новый объект. Однако, поскольку сам Заказ не прошел правила выгрузки в УНФ, его полные данные (состав товаров, цены, счета учета) в файле отсутствуют. Программа-приемник создает «пустышку», чтобы сохранить целостность связей.

Разберем по шагам: как исправить ситуацию

Если вам критически важно передавать данные именно по заказам на переработку или другим «нестандартным» операциям, воспользуемся следующими методами решения задачи.

Способ 1: Использование документов-результатов

Проанализируем методологию учета. Зачастую в бухгалтерской базе сам «Заказ» не несет учетной нагрузки. Для бухгалтерии важны факты движения ТМЦ и оказания услуг. Вместо того чтобы пытаться заставить систему выгружать заказы, сосредоточимся на выгрузке первичных документов:

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

Способ 2: Проверка версии формата EnterpriseData

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

  1. Зайдем в раздел Администрирование — Синхронизация данных.
  2. Откроем Настройки синхронизации.
  3. Проверим версию формата (например, 1.13). Если в одной из баз версия ниже, необходимо обновить конфигурацию до актуального релиза.

Способ 3: Корректировка правил регистрации (для разработчиков)

Если штатные средства не помогают, придется обратиться к изменению логики регистрации. Для этого используется расширение префиксации или специализированные подписки на события. Посмотрим на пример логики, которую можно реализовать в расширении для принудительной регистрации:


Процедура ПередЗаписьюДокументаДляОбмена(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    // Проверяем, что это нужный нам узел обмена
    ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ЗарегистрироватьИзменения(УзелБП, Источник.Ссылка);
КонецПроцедуры

Однако помните: простая регистрация объекта не гарантирует его корректную выгрузку, если в правилах конвертации (XSLT-преобразованиях) нет описания полей для этого вида операции. В таком случае документ все равно придет пустым.

Резюме и рекомендации

Подведем итог. Если вы столкнулись с тем, что заказы в УНФ не регистрируются к обмену:

  1. Проверьте вид операции: Операция Заказ на переработку часто игнорируется типовым обменом.
  2. Проанализируйте необходимость: Действительно ли этот документ нужен в Бухгалтерии? Возможно, достаточно выгружать только результирующие накладные и акты.
  3. Используйте ручную регистрацию: Через обработку Состав отправляемых данных попробуйте добавить документ вручную. Если он тут же исчезает — значит, срабатывают Правила регистрации объектов, и нужно искать причину в фильтрах (склад, организация, подразделение или вид операции).

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

← На главную