Как выгрузить один документ через обработку «Универсальный обмен данными в формате XML» на управляемых формах?

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

При переходе с обычных форм на управляемый интерфейс многие специалисты сталкиваются с изменением возможностей типовой обработки «Универсальный обмен данными в формате XML». В обычном приложении интерфейс позволял быстро настроить произвольный отбор по любому реквизиту или конкретной ссылке непосредственно в строке правила выгрузки данных с помощью построителя отчета. В управляемой форме этот функционал упрощен: доступен лишь базовый фильтр по периоду, а привычная кнопка настройки детального отбора отсутствует.

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

Выбор режима выполнения: на клиенте или на сервере

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

  1. Режим «На сервере»:

    Выгрузка выполняется непосредственно рабочим процессом кластера серверов 1С. Это обеспечивает максимальную скорость формирования XML-файла и не нагружает локальную сеть клиентского компьютера. Однако важно помнить: все указанные пути к файлам (как к правилам обмена, так и к итоговому файлу выгрузки) воспринимаются относительно файловой системы сервера. У системной учетной записи службы USR1CV8 должны быть полные права на чтение и запись в целевые каталоги.

  2. Режим «На клиенте»:

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

Способ 1. Использование механизма планов обмена и регистрации изменений

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

Разберем по шагам алгоритм действий:

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

Способ 2. Передача ссылки через параметры правил обмена

Если требуется регулярная выгрузка одиночных объектов без постоянной манипуляции регистрацией изменений, настроим правила конвертации в конфигурации «Конвертация данных 2.0».

Рассмотрим порядок реализации:

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

Посмотрим на пример программного кода обработчика:


Если ЗначениеЗаполнено(Параметры.ВыгружаемыйДокумент) Тогда
    Если Объект.Ссылка <> Параметры.ВыгружаемыйДокумент Тогда
        Отказ = Истина;
    КонецЕсли;
КонецЕсли;

После выгрузки обновленного файла правил в управляемой форме на вкладке «Параметры» появится возможность выбрать конкретный документ перед запуском обмена.

Способ 3. Выгрузка между идентичными конфигурациями

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

Для таких задач предназначена типовая обработка «Выгрузка и загрузка данных XML» (без приставки «Универсальный обмен»). В ее управляемой версии изначально реализован полноценный отбор по периоду, типу данных, реквизитам и прямым ссылкам, а также автоматическая выгрузка связанных ссылочных объектов и движений регистров по документу.

← На главную