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

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

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

Выясним причину: почему визуальный режим не видит реквизиты расширения

Проанализируем механику работы визуальной настройки в плагине Диадока. В сценарии ДополнительныеСведения визуальный конструктор ориентирован исключительно на типовой механизм БСП — подсистему «Дополнительные реквизиты и сведения». Список выбора в столбце «Ссылка» формируется динамически на основании данных плана видов характеристик ДополнительныеРеквизитыИСведения, а также связанных регистров сведений ДополнительныеСведения и ЗначенияСвойствОбъектов.

Собственные реквизиты шапки документа (как типовые реквизиты конфигурации, так и новые реквизиты, добавленные разработчиком через расширение) конструктивно не попадают в этот перечень, поскольку плагин в визуальном режиме не считывает метаданные самого объекта 1С.

Решение проблемы: отключение визуальной настройки

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

  1. Откроем модуль интеграции Диадок и перейдем в настройки сценариев плагина «Изменение контента».
  2. Выберем сценарий типа ДополнительныеСведения для документа РеализацияТоваровУслуг.
  3. Снимем флаг «Визуальная настройка».

Снятие этого флага переключает плагин из табличного режима привязок БСП в режим исполнения произвольного программного кода на встроенном языке 1С. В этом режиме разработчику становится доступен контекст выполнения, в котором передаются объектные данные документа и структура формируемого электронного документа.

Программное заполнение дополнительных сведений

Рассмотрим подробнее, как обратиться к реквизиту из расширения в коде сценария. В контексте обработчика доступна ссылка на исходный документ (обычно через переменную Документ1С) и XDTO-структура контента формируемого файла (например, Content или специализированные коллекции информационных полей):


// Получаем значение реквизита, добавленного через расширение конфигурации
ЗначениеПоля = Документ1С.ИмяНовогоРеквизита;

Если ЗначениеЗаполнено(ЗначениеПоля) Тогда
    // Заполняем пользовательское информационное поле УПД (ИнфПолФХЖ1)
    ИнфоПоле = Content.AddAdditionalInfo();
    ИнфоПоле.Id = "ИдентификаторПоля";
    ИнфоПоле.Value = Строка(ЗначениеПоля);
КонецЕсли;

Обратите внимание: обращение к свойству Документ1С.ИмяНовогоРеквизита работает напрямую, так как расширение дополняет структуру объекта при условии корректного применения в информационной базе.

Важные ограничения платформы и расширений

При работе с реквизитами из расширений необходимо учитывать технические нюансы платформы 1С:Предприятие:

  1. Безопасный режим расширения: если расширение конфигурации подключено с установленным флагом «Безопасный режим», доступ к его метаданным и свойствам из внешних обработок и плагинов может блокироваться. Для корректного считывания реквизитов безопасный режим у расширения необходимо отключить.
  2. Корректность применения расширения: при несовпадении версий конфигурации или ошибках сопоставления объектов расширение может отключиться. В этом случае программное обращение к свойству приведет к аварийному завершению с ошибкой Поле объекта не обнаружено. Перед вызовом в критичных сценариях рекомендуется проверять доступность реквизита.
  3. Режим совместимости: добавление реквизитов в существующие документы через расширения поддерживается платформой 1С:Предприятие начиная с режима совместимости 8.3.11.

Альтернативные варианты реализации

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

  1. Использование типовых дополнительных сведений БСП:

    Вместо добавления реквизита в метаданные через расширение можно создать стандартное дополнительное сведение. Для этого перейдем в раздел «Администрирование» → «Общие настройки» → «Дополнительные реквизиты и сведения» и назначим для документа Реализация (акты, накладные, УПД) нужное свойство. Такое сведение сразу появится в выпадающем списке колонки «Ссылка» при включенной визуальной настройке плагина.

  2. Использование внешнего подключаемого модуля (ПМ) Диадока:

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

← На главную