При настройке синхронизации между конфигурациями «1С:Управление нашей фирмой» (УНФ) и «1С:Бухгалтерия предприятия» (БП) специалисты часто сталкиваются с ситуацией, когда часть документов упорно игнорирует правила обмена. Документы могут либо вообще не попадать в очередь на выгрузку, либо приходить в базу-приемник «пустыми» — только с заголовком, датой и номером, но без номенклатуры и сумм. Разберем подробно, почему это происходит и как решить данную проблему, основываясь на практическом опыте работы с универсальным форматом обмена EnterpriseData.
Рассмотрим стандартную ситуацию: пользователь вносит изменения в документ в УНФ, проводит его, но в мониторе синхронизации количество объектов к отправке не увеличивается. Даже попытка принудительной регистрации через обработку Регистрация изменений для обмена не дает результата — объект исчезает из списка сразу после добавления.
Выясним причину такого поведения системы. В основе любого обмена лежат Правила регистрации объектов (ПРО). Это программный код, который проверяет документ на соответствие определенным критериям перед тем, как разрешить его выгрузку. Если документ не проходит фильтр, система автоматически удаляет его из узла обмена. Проанализируем основные причины срабатывания этих фильтров:
ЗаказПокупателя часто установлено жесткое ограничение: выгружать только операции с видом Продажа.Как показывает практика, камнем преткновения часто становится использование вида операции «Заказ на переработку». Проанализируем ситуацию: в УНФ этот документ используется для планирования производства из давальческого сырья. Однако в «1С:Бухгалтерия предприятия 3.0» прямой аналог такого заказа в том виде, в котором он существует в УНФ, отсутствует.
В типовых правилах конвертации (ПКО) для формата EnterpriseData может просто не быть описания алгоритма перекладывания данных из «Заказа на переработку» УНФ в соответствующие объекты БП. В результате мы получаем следующее:
Посмотрим на ситуацию со стороны базы-приемника. Если вы видите в БП документ, в котором заполнены только номер и дата, это означает, что объект был создан «по ссылке». Рассмотрим, как это работает:
Допустим, вы выгружаете документ Реализация, который создан на основании Заказа покупателя. Сама Реализация проходит все фильтры и попадает в обмен. В XML-файле обмена передается ссылка на документ-основание. БП видит эту ссылку и, если такого заказа в ее базе еще нет, создает новый объект. Однако, поскольку сам Заказ не прошел правила выгрузки в УНФ, его полные данные (состав товаров, цены, счета учета) в файле отсутствуют. Программа-приемник создает «пустышку», чтобы сохранить целостность связей.
Если вам критически важно передавать данные именно по заказам на переработку или другим «нестандартным» операциям, воспользуемся следующими методами решения задачи.
Проанализируем методологию учета. Зачастую в бухгалтерской базе сам «Заказ» не несет учетной нагрузки. Для бухгалтерии важны факты движения ТМЦ и оказания услуг. Вместо того чтобы пытаться заставить систему выгружать заказы, сосредоточимся на выгрузке первичных документов:
Отчет переработчикаРеализация услуг по переработкеПоступление в переработкуЭти документы имеют четкие аналоги в БП и выгружаются без ошибок в рамках типового обмена.
Иногда поддержка новых видов операций появляется в свежих релизах, но синхронизация продолжает работать по старому протоколу. Проверим это:
Если штатные средства не помогают, придется обратиться к изменению логики регистрации. Для этого используется расширение префиксации или специализированные подписки на события. Посмотрим на пример логики, которую можно реализовать в расширении для принудительной регистрации:
Процедура ПередЗаписьюДокументаДляОбмена(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
// Проверяем, что это нужный нам узел обмена
ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ЗарегистрироватьИзменения(УзелБП, Источник.Ссылка);
КонецПроцедуры
Однако помните: простая регистрация объекта не гарантирует его корректную выгрузку, если в правилах конвертации (XSLT-преобразованиях) нет описания полей для этого вида операции. В таком случае документ все равно придет пустым.
Подведем итог. Если вы столкнулись с тем, что заказы в УНФ не регистрируются к обмену:
Заказ на переработку часто игнорируется типовым обменом.Состав отправляемых данных попробуйте добавить документ вручную. Если он тут же исчезает — значит, срабатывают Правила регистрации объектов, и нужно искать причину в фильтрах (склад, организация, подразделение или вид операции).Работа с обменами требует внимательности к деталям каждой хозяйственной операции. Понимая механизмы работы EnterpriseData, мы можем эффективно диагностировать и устранять подобные ошибки синхронизации.