Как настроить независимый обмен данными для разных организаций между УТ 10.3 и БП 2.0?

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

При работе в 1С:Управление торговлей 10.3 часто возникает задача разделить потоки данных при выгрузке в 1С:Бухгалтерию предприятия 2.0. Типичная ситуация: в торговой базе ведется учет по многим организациям, а в бухгалтерскую базу нужно передавать данные только по некоторым из них, причем делать это независимо (в разное время и по разным правилам). Если настроить обмен некорректно, можно столкнуться с тем, что номера сообщений «сбиваются», а документы одной организации начинают помечаться на удаление при выгрузке другой. Рассмотрим подробно, как правильно организовать этот процесс и избежать конфликтов данных.

Разберем причину конфликта: почему обмены мешают друг другу

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

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

Шаг 1: Правильная настройка идентификаторов и кодов узлов

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

  1. В базе УТ 10.3 откройте план обмена (обычно это ОбменУправлениемТорговлейБухгалтерияПредприятия).
  2. Для первой организации (уже работающей) код узла может быть, например, БП1.
  3. Для второй организации создайте НОВЫЙ узел с кодом БП2.
  4. В базе БП 2.0 проделайте симметричную операцию: создайте узел с кодом УТ2, который будет соответствовать коду отправителя из УТ.

Важно: Код «Этот узел» (помечен иконкой компьютера) в УТ должен совпадать с кодом узла-отправителя в БП, и наоборот. Только при соблюдении этой парности НомерПринятого и НомерОтправленного будут инкрементироваться корректно и независимо для каждого потока данных.

Шаг 2: Настройка префиксов организаций

Чтобы документы разных организаций не конфликтовали в бухгалтерской базе, выясним, установлены ли префиксы. Префикс позволяет разделять нумерацию документов. Если у Организации №1 префикс 001, а у Организации №2 — 002, то даже при одинаковых номерах документов в УТ, в БП они лягут как разные объекты.

Настройку префиксов проверим в справочнике Организации. Без уникальных префиксов существует риск, что обмен «найдет» документ другой организации по номеру и дате и попытается перезаписать его данными текущей организации.

Шаг 3: Разделение регистрации изменений

Проблема «взаимного удаления» документов (сообщение 16 на форуме) часто кроется в механизме авторегистрации. Проанализируем ситуацию: когда вы записываете документ в УТ, он регистрируется на ВСЕХ узлах плана обмена, к которым он относится по составу. Если у вас два узла (для Орг1 и Орг2), документ зарегистрируется на обоих.

Чтобы решить эту проблему, рассмотрим два способа:

  1. Настройка фильтров в Плане обмена: В карточке настройки обмена (справочник НастройкиОбменаДанными) на вкладке «Объекты обмена» необходимо четко указать фильтр по конкретной организации для каждого узла.
  2. Использование даты запрета загрузки: Чтобы обмен по Организации №2 случайно не затер старые данные по Организации №1, воспользуемся советом из сообщения 18.

В программе 1С:Бухгалтерия предприятия 2.0 перейдем по пути:
Меню Сервис -> Настройка прав доступа -> Дата запрета изменения данных.

Здесь мы можем установить дату запрета не просто для всех пользователей, а в разрезе узлов планов обмена. Установите дату запрета для узла Организации №1, когда планируете заниматься выгрузкой только по Организации №2. Это создаст дополнительный «защитный барьер» для уже проведенных и выверенных документов.

Шаг 4: Использование раздельных файлов обмена

Если вы используете файловый обмен (через каталог), убедитесь, что каждый обмен работает со своим файлом. Рассмотрим пример настройки:

Если оба узла будут пытаться писать и читать из одного и того же файла в одном каталоге, то база-приемник будет постоянно сообщать о несоответствии номеров сообщений, так как каждый узел ожидает увидеть свой порядковый номер (например, узел 1 ждет сообщение №45, а в файл записал данные узел 2 с номером №10).

Шаг 5: Техническая коррекция правил (для продвинутых)

Если проблема с пометкой на удаление сохраняется даже после настройки фильтров, проанализируем правила обмена (файл xml). В конфигурации «Конвертация данных» можно проверить обработчик ПередВыгрузкой.

Иногда в типовых правилах включена опция «Удалять объекты, не попавшие в выборку». Рассмотрим, как это выглядит в коде настроек (метафорически): система формирует список всех ИДов, которые были ранее переданы, и сравнивает их с текущими. Если идентификатора нет в текущем пакете — ставится пометка на удаление.

В такой ситуации наиболее надежным решением будет создание двух отдельных настроек обмена в справочнике НастройкиОбменаДанными в УТ 10.3, каждая из которых ссылается на свой узел плана обмена с жестко заданным фильтром по организации на уровне самого плана обмена (состав плана обмена и фильтрация при регистрации).

Итоги настройки

Подведем итог нашим действиям. Чтобы развести обмены по разным организациям, мы:

  1. Создали уникальные пары кодов узлов в УТ и БП (например, БП_НОВАЯ и УТ_НОВАЯ).
  2. Убедились, что в каждой карточке организации в 1С установлен уникальный префикс.
  3. Настроили фильтрацию по организации в справочнике НастройкиОбменаДанными отдельно для каждой записи.
  4. Разделили пути к файлам обмена, чтобы сообщения не перемешивались.
  5. Использовали дату запрета загрузки в БП для защиты данных в случае пересекающихся периодов.

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

← На главную