Почему добавленный реквизит бизнес-процесса не отображается на форме в 1С?

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

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

Причина 1: Несоответствие редактируемой формы объекту метаданных

Самая распространенная причина — путаница между объектами БизнесПроцесс и Задача. В архитектуре платформы «1С:Предприятие» бизнес-процессы и задачи являются самостоятельными прикладными объектами:

  1. Бизнес-процесс управляет логикой маршрутизации и содержит общие параметры процесса.
  2. Задача создается бизнес-процессом на определенных точках маршрута для конкретных исполнителей и имеет свой независимый состав реквизитов.

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

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

Причина 2: Особенности обновления редактора управляемых форм

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

  1. Закроем окно редактора формы.
  2. Сохраним конфигурацию или обновим структуру метаданных.
  3. Заново откроем форму объекта. В правой панели на вкладке Реквизиты внутри группы Объект появится добавленный реквизит.
  4. Платформа не выносит новые реквизиты в интерфейс автоматически: перетащим реквизит мышью из правой панели в дерево элементов формы слева.

Как вывести реквизит бизнес-процесса на форму задачи

Если бизнес-процесс содержит данные, которые исполнитель обязательно должен видеть или редактировать при выполнении задачи, разберем доступные варианты реализации.

Вариант 1. Программное чтение для отображения (только просмотр)

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

Посмотрим на пример кода в модуле формы задачи:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если ЗначениеЗаполнено(Объект.БизнесПроцесс) Тогда
        // Считываем значение реквизита из связанного бизнес-процесса
        РеквизитПроцесса = Объект.БизнесПроцесс.ВашРеквизит;
    КонецЕсли;
    
КонецПроцедуры

Вариант 2. Программная запись изменений в бизнес-процесс

Если пользователю разрешено менять это значение непосредственно из карточки задачи, сохраним изменения в бизнес-процесс при записи задачи:


&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    Если ЗначениеЗаполнено(ТекущийОбъект.БизнесПроцесс) Тогда
        ОбъектПроцесса = ТекущийОбъект.БизнесПроцесс.ПолучитьОбъект();
        Если ОбъектПроцесса <> Неопределено Тогда
            ОбъектПроцесса.ВашРеквизит = РеквизитПроцесса;
            ОбъектПроцесса.Записать();
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Вариант 3. Дублирование реквизита в задачу

Если по значению реквизита требуется строить списки задач, динамические списки или настраивать быстрый отбор, добавим аналогичный реквизит и в объект ЗадачаИсполнителя. Заполнение реквизита настраивается в модуле бизнес-процесса при формировании задач в обработчике точки маршрута ПриСозданииЗадач.

Вариант 4. Использование дополнительных реквизитов (без изменения конфигурации)

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

← На главную