Как настроить обмен данными между конфигурациями на обычных и управляемых формах с переносом движений?

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

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

Разделение понятий: формы и правила обмена

Важно уяснить: правила, созданные в Конвертации данных 2.1, не зависят от того, в какой конфигурации (ОФ или УФ) они созданы. Платформа 1С использует XML-файлы для описания логики обмена, и тип интерфейса никак не ограничивает работу правил. План обмена в конфигураторе лишь регистрирует изменения объектов, а правила конвертации определяют, как эти данные будут преобразованы при передаче в приемник.

Проблема передачи движений документов

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

Реализация корректной обработки движений при обмене

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

  1. Настройка правил конвертации (ПКО): Убедитесь, что для документа в правилах КД 2.1 выгружаются наборы записей регистров. В обработчиках события ПослеВыгрузки объекта или в самих правилах выгрузки данных проверьте, чтобы данные регистров попадали в файл обмена.
  2. Модификация модуля обмена: Стандартная обработка ОбменДаннымиXML в типовых конфигурациях при записи объекта часто выполняет ЗаписатьОбъектВИБ. Чтобы поддержать отмену проведения, необходимо вмешаться в логику записи.

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


Если НужноЗаписатьОбъект Тогда
    Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
        // Принудительно вызываем процедуру отмены проведения для очистки наборов записей
        ОтменитьПроведениеОбъектаВИБ(Объект, ТипОбъекта);                                
    Иначе
        // В остальных случаях выполняем стандартную запись
        ЗаписатьОбъектВИБ(Объект, ТипОбъекта);
    КонецЕсли;
КонецЕсли;

Использование штатных механизмов БСП для управления обменом

Вместо того чтобы изобретать велосипед, рекомендуется интегрировать механизмы обмена из БСП в обе конфигурации. Это позволит использовать стандартные справочники НастройкиСинхронизацииДанных и механизмы мониторинга.

Заключение

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

← На главную