Как передать дополнительные параметры для строк табличной части в КД 2.0?

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

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

Принцип работы механизма параметров табличной части

Для того чтобы передать дополнительные данные, не привязанные к полям объекта, разработчики 1С предусмотрели механизм ПараметрыОбъекта. Суть метода заключается в том, что при выгрузке вы формируете структуру данных, которая «прикрепляется» к табличной части. При загрузке объекта эти данные становятся доступны в обработчиках события После загрузки.

Важно понимать, что система сериализует ваши параметры в специальную структуру. Ключом доступа к этой структуре в коде будет являться имя вашей табличной части с добавлением суффикса ТабличнаяЧасть. Для проверки структуры и состава переданных параметров в сформированном XML-файле подойдёт обработка для анализа выгруженных данных конвертации.

Пошаговая реализация передачи параметров

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

Пример программной реализации обработки параметров

Давайте разберем, как получить доступ к переданным данным на стороне приемника. Предположим, ваша табличная часть называется ОсновныеНачисления, и вы передали в неё параметр НачислениеНаименование. В коде После загрузки это будет выглядеть следующим образом:


Если ПараметрыОбъекта <> Неопределено Тогда
    // Получаем таблицу параметров по ключу с суффиксом "ТабличнаяЧасть"
    ТаблицаПараметров = ПараметрыОбъекта["ОсновныеНачисленияТабличнаяЧасть"];
    
    // Перебираем таблицу параметров для доступа к каждому значению
    Для Каждого СтрокаПараметров Из ТаблицаПараметров Цикл
        // Здесь можно выполнить алгоритм изменения реквизитов объекта
        // Например: Сообщить(СтрокаПараметров.НачислениеНаименование);
    КонецЦикла;
КонецЕсли;

Важные рекомендации и ограничения

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

Альтернативный подход

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

Использование описанного «хака» с суффиксом ТабличнаяЧасть является штатным и эффективным инструментом, который позволяет гибко управлять данными без внесения изменений в метаданные конфигурации, что является важным преимуществом при обновлении типовых решений.

← На главную