Тип бизнес процесса 1с в запросе
В информационной базе может храниться большое количество различных задач пользователям: это и выполненные задачи, и те, которые только предстоит сделать. Очень неэффективно, если каждый пользователь получает общий перечень задач, поскольку ему придется фильтровать список, оставлять только свои задачи, выбирать, какие из них нужно выполнить. Кроме того, по соображениям безопасности и конфиденциальности не все задачи можно просматривать другим пользователям, кроме исполнителя.
В связи с этим в конфигурациях, использующих задачи, чаще всего предусмотрена отдельная форма, которая будет отображать только невыполненные задачи текущего пользователя.
На аттестации есть специальное требование к задачам по бизнес-процессам – при запуске конфигурации в пользовательском режиме на начальной странице должен располагаться список невыполненных задач текущего пользователя.
Также есть требование, что пользователь должен иметь возможность видеть полный список задач, без отбора по исполнителю. Поэтому в каждом экзаменационном билете, где встречается задача по бизнес-процессам, должны быть доступны две формы – форма со списком невыполненных задач текущего пользователя, а также форма с общим списком задач.
Рассмотрим подробнее, как выполнить эти требования.
Как отобразить на форме список задач
Создадим форму списка задачи:
Рисунок 1 – Создание формы списка задачи
Основной реквизит в созданной форме – динамический список:
Рисунок 2 – Реквизит формы типа ДинамическийСписок
Подробно динамические списки управляемых форм рассматриваются в курсе «Профессиональная разработка интерфейсов и форм в 1С:Предприятие 8.3» (см. Занятие 19), а также в курсе«1С:Программист – Быстрый старт в профессию» (см. Модуль 4, Глава 8).Обратимся к свойствам динамического списка, в качестве свойства ОсновнаяТаблица укажем ЗадачиИсполнителям.ЗадачиПоИсполнителю:
Рисунок 3 – Настройка основной таблицы динамического списка
Это виртуальная таблица для объекта метаданных Задача, которая возвращает список задач, назначенных конкретному пользователю.
Для того, чтобы такой динамический список работал, система должна понимать, для какого пользователя следует отображать список задач. Поэтому необходимо для объекта метаданных ЗадачиИсполнителям (ранее созданный объект типа Задача) указать значение свойства Текущий исполнитель на закладке Адресация окна редактирования объекта:
Рисунок 4 – Свойство «Текущий исполнитель» объекта метаданных «Задача»
В этом свойстве нужно указать параметр сеанса, где хранится текущий исполнитель, для которого нужно получить список задач.
Создадим новый параметр сеанса, назовем его ТекущийПользователь (тип – СправочникСсылка.ФизическиеЛица):
Рисунок 5 – Параметр сеанса «Текущий пользователь»
На закладке Адресация для объекта метаданных ЗадачиИсполнителям (объект типа Задача) укажем в качестве свойства Текущий исполнитель созданный параметр сеанса:
Рисунок 6 – Указание для Задачи значения свойства «Текущий исполнитель»
Рассмотрим кратко, как работает виртуальная таблица ЗадачиПоИсполнителю.
Система получает значение параметра сеанса, указанного в свойстве Текущий исполнитель. Все задачи, у которых Основной реквизит адресации (Исполнитель) равен значению параметра сеанса ТекущийПользователь, попадают в результат виртуальной таблицы.
Затем система ищет задачи, у которых не указан основной реквизит адресации (Исполнитель), но значения остальных реквизитов адресации точно совпадают со значениями измерений регистра адресации.
Для лучшего понимания работы виртуальной таблицы рассмотрим отвлеченный конкретный пример. В регистр адресации внесены следующие записи:
Рисунок 7 – Заполнение регистра адресации
Существуют следующие задачи исполнителей:
Рисунок 8 – Перечень задач
Пусть текущим пользователем является Иванов, тогда в виртуальную таблицу ЗадачиПоИсполнителю попадут следующие задачи:
Рисунок 9 – Задачи пользователя Иванов
Если текущим пользователем является Петров, в виртуальную таблицу ЗадачиПоИсполнителю попадут следующие задачи:
Рисунок 10 – Задачи пользователя Петров
Таким образом, в виртуальную таблицу ЗадачиПоИсполнителю попадут те задачи, у которых или явно указан требуемый исполнитель, или его можно определить косвенно по записям регистра адресации. При получении данных учитываются настройки объекта конфигурации типа Задача и те записи, которые были внесены в регистр сведений РегистрАдресации.
Важно, что виртуальная таблица не фильтрует задачи по их выполненности. Она возвращает как выполненные, так и невыполненные задачи. Чтобы отображались только невыполненные задачи, нужно установить отбор. Для этого обратимся к настройкам динамического списка на форме:
Рисунок 11 – Реквизит формы «Список» типа «ДинамическийСписок»
Рисунок 12 – Настройка динамического списка
В настройках установим отбор по значению поля Выполнена равному Ложь:
Рисунок 13 – Настройка отбора записей динамического списка
Чтобы определить, для какого конкретного исполнителя необходимо отображать список задач, требуется указать системе, какой пользователь является текущим. То есть нужно установить значение параметра сеанса ТекущийПользователь.
Рассмотрим два варианта установки значения параметра сеанса ТекущийПользователь для решения поставленной задачи.
Как вручную установить значение параметра сеанса
Первый вариант установки значения параметра сеанса – это указывать текущего пользователя вручную. Данный вариант самый простой и быстрый. В этом случае не потребуется организовывать связь пользователей информационной базы со справочником физических лиц, элементы которого в нашем случае являются Исполнителями. Можно будет вообще не заводить пользователей информационной базы (списка справочника ФизическиеЛица).
Создадим форму списка справочника ФизическиеЛица. Создадим команду формы: УстановитьТекущегоПользователя:
Рисунок 14 – Создание команды формы списка справочника «Физические лица»
Вынесем добавленную команду на форму:
Рисунок 15 – Размещение созданной команды на форме
В обработчике команды УстановитьТекущегоПользователя выполним установку значения параметра сеанса:
В пользовательском режиме назначим Иванова текущим пользователем:
Рисунок 16 – Установка текущего пользователя
В форме списка «Задачи исполнителям» будут отображаться задачи для выбранного текущего исполнителя Иванова:
Рисунок 17 – Задачи исполнителя (текущего пользователя)
Если не установить текущего пользователя и попытаться обратиться к списку задач, система выдаст ошибку:
Рисунок 18 – Ошибка, возникающая при неустановленном значении параметра сеанса
Дело в том, что виртуальная таблица ЗадачиПоИсполнителю при получении данных использует значение параметра сеанса ТекущийПользователь. Если это значение не было установлено, возникает ошибка.
Чтобы такая ошибка не возникала, можно в модуле сеанса инициализировать параметр сеанса при помощи пустой ссылки на справочник Физические лица:
В таком случае при открытии списка задач ошибка не возникнет, даже если текущий пользователь не был предварительно назначен из формы списка. Но нужно понимать, что в таком случае в списке задач будут отображаться задачи, для которых не определен исполнитель. В нашей базе таких задач нет, поэтому список будет пустым:
Рисунок 19 – Список задач, для которых исполнитель не определен
Таким образом, текущего пользователя можно назначать вручную. При этом в списке задач отображаются только задачи, касающиеся текущего пользователя.
Как автоматически установить значение параметра сеанса по данным информационной базы
Второй вариант установки значения параметра сеанса более сложный. Необходимо связать пользователей информационной базы со справочником физических лиц. Тогда устанавливать значение параметра сеанса можно будет автоматически.
Чтобы в информационную базу можно было добавить пользователей, необходимо создать роли. Создадим только одну роль ПолныеПрава, в ней разрешим все действия, кроме интерактивного удаления объектов:
Рисунок 20 – Создание роли ПолныеПрава
В Конфигураторе создадим двух пользователей (Иванов и Петров) и назначим им роль ПолныеПрава:
Рисунок 21 – Создание пользователей информационной базы
При запуске конфигурации в пользовательском режиме нужно выполнить проверку, не является ли имя текущего пользователя пустым. Если имя текущего пользователя заполнено, то находим в справочнике ФизическиеЛица элемент, Код которого совпадает с именем текущего пользователя.
Параметру сеанса ТекущийПользователь присваиваем найденное значение (ссылку на элемент справочника ФизическиеЛица). Если такого элемента в справочнике нет, то нужно его создать, а ссылку на созданный элемент присвоить параметру сеанса.
Для выполнения этих действий заполним соответствующий код в модуле сеанса, в процедуре УстановкаПараметровСеанса. Код процедуры может выглядеть следующим образом:
В таком случае после открытия пользователем базы можно будет сразу просматривать задачи по исполнителю, дополнительного назначения параметра сеанса вручную не требуется.
Теперь необходимо обеспечить, чтобы при запуске приложения в пользовательском режиме список невыполненных задач отображался на рабочем столе. На экзамене рекомендуется использовать данный способ заполнения параметра сеанса ТекущийПользователь.
Как разместить список задач на рабочем столе
Общие принципы настройки рабочего стола (начальной страницы) рассматриваются в курсах: «1С:Программист – Быстрый старт в профессию» (см. Модуль 4, Глава 1), «Профессиональная разработка интерфейсов и форм в 1С:Предприятие 8.3» (см. Занятие 20), бесплатный курс «Программирование в 1С – за 21 день!» (Модуль 1, День 5).К решению аттестационной задачи предъявляются следующие требования:
- На начальной странице должен располагаться список невыполненных задач текущего пользователя
- Должен быть доступен полный список задач, без отбора по исполнителю.
Сначала разместим созданную форму списка объекта конфигурации ЗадачиИсполнителям на рабочем столе. Для этого из контекстного меню корневого элемента конфигурации выберем пункт Открыть рабочую область начальной страницы:
Рисунок 22 – Выбор команды «Открыть рабочую область начальной страницы»
В открывшемся окне выберем форму списка задачи:
Рисунок 23 – Выбор формы списка объекта «ЗадачиИсполнителям» в рабочей области начальной страницы
Запустим приложение в пользовательском режиме. На начальной странице отобразятся невыполненные задачи текущего пользователя:
Рисунок 24 – Невыполненные задачи пользователя Иванова
Однако кроме списка задач по исполнителю необходимо вывести полный список задач. Поэтому в окне настроек объекта конфигурации ЗадачиИсполнителям очистим поле для формы списка задачи:
Рисунок 25 – Очистка поля для формы списка задачи в окне настроек
В таком случае система будет генерировать форму списка автоматически, и в ней будут отображаться все задачи, а не только невыполненные задачи по исполнителю. При выборе в пользовательском режиме команды для открытия списка задач будет открываться форма, сгенерированная автоматически:
Рисунок 26 – Общий список задач
Таким образом, необходимые формы отображаются – поставленная задача решена.
В следующем блоке материалов разберем, как реализовать отображение карты маршрута в форме бизнес процесса.
Данная функция позволяет автоматически подставлять объекты адресации из предмета процесса в роль с объектом адресации. Для добавления новых автоподстановок в адресной книге необходимо нажать кнопку "Обновить автоподстановки":
После обновления появятся автоподстановки для ролей, которые используются с объектами адресации:
Допустим у нас есть роль "_Тест":
Исполняет данную роль пользователь "Администратор" по организации "ООО Управляющая компания" и по подразделению "Администрация":
Автоподставнока "_Тест (Роль)" со скришота выше сможет автоматически определить объекты адресации по предмету для роли "_Тест".
В расширении изменения объекта проверяются другим способом. Если хотя бы один реквизит из документа изменен, тогда файлы, которые не заняты на редактирование, созданы по шаблону, не помечены на удаление обновляются данными документа.
Настройка данной функции выполняется в виде внутреннего/исходящего документа.
Данная функция работает только при создании процесса по шаблону. В шаблоне процесса добавлен реквизит "Создавать задачу ознакомления":
В данном реквизите настраивается вариант создания задачи ознакомления.
Для заполнения реквизита "Создавать задачу ознакомления" после обновления расширения запустите обработку "Перенос значения реквизита не создавать задачу ознакомления".
Запрет повторного запуска комплексного процесса по предмету.
При открытии формы комплексного процесса стоит проверка, если пользователь пытается запустить более 1 комплексного процесса по документу форма нового процесса не открывается и пользователю выдается предупреждение.
Настройки расширения находятся в отдельной подсистеме "Дополнительные функции":
Динамические роли включены по умолчанию без возможности отключения.
Пользовательские автоподстановки.
Добавлена новая функция "Пользовательские автоподстановки". С помощью данной функции можно добавлять собственные автоподстановки для шаблонов бизнес-процессов в режиме предприятия. Пользовательские автоподстановки находятся в подсистеме "Дополнительные функции":
На закладке "Тестирование" можно проверить автоподстановку с нужными параметрами (если они требуются), результат работы кода автоподстановки выводится в список значений:
Технически пользовательские автоподстановки реализованы следующим образом:
- В функции"ПолучитьСписокДоступныхФункций" общего модуля "ШаблоныБизнесПроцессов" добавляются автоподстановки из справочника.
К имени функции автоподстановки добавляется префикс "ПользовательскаяАвтоподстановка_" для поиска элемента справочника с программным кодом при получении значения автоподстановки.
- В функцию "ПолучитьЗначениеАвтоподстановки" общего модуля "ШаблоныБизнесПроцессов" добавлена дополнительная проверка. В функции автоподстановки выполняется поиск префикса "ПользовательскаяАвтоподстановка_", если данный префикс найден, тогда выполняется поиск элемента справочника пользовательской автоподстановки по наименованию. Далее выполняется программный код элемента справочника. Запись пользовательских автоподстановок с одинаковым наименованием запрещена, поэтому при поиске элемента по наименованию будет найдено не более 1 автоподстановки.
Указание минут и секунд в правилах эскалации задач.
В правила эскалации задач добавлена возможность указания минут и секунд:
Автоматическое расширение рабочей группы связанных документов.
В справочник "Типы связей" добавлен реквизит "Автоматически вести состав участников рабочей группы":
При установке данного флага состав рабочей группы для связанных документов по данному типу связи будет вестись автоматически.
При установке связи "Договор" из документа "Закупка дисков для СХД" участники рабочей группы документа "Закупка дисков для СХД" будут автоматически перенесены в связанный договор:
При дальнейшем изменении рабочей группы документа "Закупка дисков для СХД" новые пользователи, которые были добавлены в рабочую группу документа будут автоматически перенесены в документ "Договор на поставку бетона".
Автоматическое создание делегирования прав заместителям при создании отсутствия.
При создании документа "Отсутствие" автоматически создаются делегирования прав доступа заместителям. Данная функция работает только для новых документов отсутствия.
Алгоритмы обработки задач и бизнес-процессов.
В шаблоны бизнес-процессов добавлены закладки "Назначения алгоритмов обработки задач", "Назначения алгоритмов обработки процессов":
На данных закладках можно назначить произвольные алгоритмы, которые будут выполняться перед записью задачи или бизнес-процесса. В дальнейшем будут добавлено событие "При записи".
На данный момент для выбора доступно только событие перед записью:
Для переноса настроенных алгоритмов из старой версии (до 2.1.27.1) расширения запустите обарботку "Перенос алгоритмов в новые объекты" из подсистемы "Дополнительные функции". В обработке нажмите кнопку "Запустить перенос".
Для переноса алгоритмов в единый справочник из старой версии (до 2.1.18.12) запустите обработку "Перенос алгоритмов в новый справочник, изменение назначений алгоритмов обработки". В обработке нажмите кнопку "Запустить перенос".
Отображение связей предметов на формах выполнения задач.
Добавлено отображение связанных документов, файлов связанных документов на формах выполнения задач, на форме "Задачи мне":
Отображение листа согласования на форме выполнения бизнес-процесса "Утверждение/Подписание".
Добавлено отображение листа согласования на форму выполнения утверждения/подписания:
Перенос файлов из задачи в предметы процесса.
Настройка переноса файлов из задачи в предметы процесса настраивается в шаблоне процесса:
В настройке необходимо указать имя предмета, в который необходимо переносить файл. При включенной настройке файлы не будут дублироваться в задаче. При добавлении файла в задачу файл будет добавлен в предмет в процесса.
Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа.
Добавлена функция "Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа" для внутренних, входящих, исходящих документов.
Настройка выполняется в виде документа:
Запрет интерактивного создания документов.
Добавлена функция "Запрет интерактивного создания документов" для внутренних, входящих, исходящих документов.
Настройка выполняется в виде документа:
- Добавлен механизм пользовательских автоподстановок
- Добавлена возможность отключения создания задачи ознакомления для регистрации и утверждения/подписания. Функция работает также как и отключение создания задачи ознакомления для согласования.
- В пользовательскую автоподстановку добавлена возможность прикрепления ссылки на файл (удобно хранить файлы с внешними обработками тестирования и т.д.):
Такой способ является не совсем оптимальным, но через расширение проблематично подключить собственный объект к посистеме хранения файлов, если перенести доработку в основную конфигурацию, то естественно удобнее использовать существующую подсистему хранения файлов.
- Поднят режим совместимости расширения до версии 8.3.14.
- Функции расширения переведены на новую версию конфигурации.
- В правила эскалации задач добавлена возможность указания минут и секунд
- Автоматическое расширение рабочей группы связанных документов
- Автоматическое создание делегирования прав заместителям при создании отсутствия
- Выполнение произвольного алгоритма перед записью задачи
- Отображение связей предметов в формах выполнения задач
- Отображение листа согласования в форме выполнения бизнес-процесса "Утверждение/Подписание"
- В пользовательские автоподстановки добавлен реквизит "ЗависитОтПредмета" для разделения автоподстановок, которые зависят от предмета процесса
- Выполнение произвольного алгоритма перед записью бизнес-процесса
- Удалены условия на пустую ссылку и состояние бизнес-процесса в произвольных алгоритмах перед записью задачи и перед записью бизнес-процесса
- Изменена логика работы алгоритмов перед записью задач и процессов
- Добавлена новая функция - перенос файлов из задачи в предметы процесса
- Добавлена функция "Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа" для внутренних, входящих, исходящих документов
- Добавлена функция "Запрет интерактивного создания документов"
- Алгоритмы обработки задач и бизнес-процессов перенесены в единый справочник
- Настройка функции "Автоматическое обновление файлов данными владельца" перенесена в вид внутреннего/исходящего документа
- Исправлена ошибка записи документа при автоматическом расширении рабочей группы документов
- Исправлена ошибка при открытии формы "Задачи мне"
- Реквизиты с префиксом "Удалить" убраны с форм "Назначения алгоритмов обработки задач", "Назначения алгоритмов обработки процессов"
Данное расширение тестировалось на версии 2.1.28.14 1С:Документооборот КОРП.
В платформе «1С:Предприятие» бизнес-процесс и задача – это разные объекты метаданных, хоть они и связаны друг с другом. Поэтому может возникнуть потребность отображать на одной форме и бизнес-процесс, и задачи по этому бизнес-процессу. Решить эту задачу можно несколькими способами в зависимости от дополнительных требований заказчика. Но в любом случае на экзамене это нужно реализовать как можно оперативнее, поскольку задача достаточно простая.
Аттестационная задача может быть сформулирована следующим образом:
На форме бизнес-процесса нужно вывести список задач, подчиненных текущему бизнес-процессу.
Далее рассмотрим два варианта решения задачи – с использованием динамического списка и с переходом к связанной информации из формы бизнес-процесса.
Как отобразить список задач при помощи динамического списка
Первым делом выясним, как связаны между собой объекты метаданных Задача и БизнесПроцесс. Для этого в конфигураторе обратимся к списку стандартных реквизитов для задачи. Это можно сделать из контекстного меню или из окна редактирования объекта конфигурации ЗадачиИсполнителям:
Рисунок 1 – Стандартный реквизит «БизнесПроцесс» объекта метаданных Задача
В этом списке присутствует стандартный реквизит БизнесПроцесс. Именно при помощи этого реквизита можно получить бизнес-процесс, к которому относится конкретная задача.
Следовательно, чтобы решить поставленную задачу и получить список задач, подчиненных определенному бизнес-процессу, нужно отобрать данные по полю БизнесПроцесс. Затем полученные данные необходимо вывести на форму.
Для решения задачи воспользуемся динамическим списком, поскольку это специальный объект платформы, предназначенный для отображения списков большого объема. Динамический список считывает данные из базы не целиком, а отдельными порциями, которые необходимы для вывода информации на экран. Если пользователь прокручивает список на форме, из базы будет получена очередная порция данных. Это оптимально с точки зрения производительности.
Создадим реквизит формы бизнес-процесса СписокЗадач (тип – Динамический список):
Рисунок 2 – Создание динамического списка
Получаемые данные необходимо отбирать по конкретному бизнес-процессу, поэтому в тексте запроса воспользуемся секцией ГДЕ. Чтобы текст запроса динамического списка можно было редактировать вручную, для свойства созданного реквизита Произвольный запрос установим галочку:
Рисунок 3 – Свойство «ПроизвольныйЗапрос» реквизита «СписокЗадач»
При помощи конструктора запроса создадим следующий текст запроса динамического списка:
Таким образом будут получены все задачи по текущему бизнес-процессу. Параметр БизнесПроцесс нужно установить в программном коде. Устанавливать его будем в обработчиках двух событий: ПриСозданииНаСервере и ПослеЗаписиНаСервере. Это связано с тем, что при открытии формы нового, еще не записанного в базу бизнес-процесса, его ссылка пустая. После записи ссылка будет уже заполнена, и следует обновить значение параметра динамического списка.
В обработчиках событий ПриСозданииНаСервере и ПослеЗаписиНаСервере будет использоваться один и тот же программный код. Чтобы дважды не писать одинаковый фрагмент кода, вынесем его в отдельную процедуру УстановитьТекущийБизнесПроцесс.
Сформированный программный код выглядит следующим образом:
Перенесем динамический список на форму и отобразим колонки списка.
Рисунок 4 – Отображение списка на форме
Откроем форму бизнес-процесса в пользовательском режиме:
Рисунок 5 – Список задач текущего бизнес-процесса
На форме отображаются задачи, подчиненные этому бизнес-процессу.
Как перейти к списку задач конкретного бизнес-процесса
Теперь рассмотрим второй вариант решения задачи – с использованием штатных механизмов платформы. Они позволяют добавить в панель навигации формы бизнес-процесса ссылку для перехода к задачам, подчиненным текущему бизнес-процессу.
Для этого в конструкторе управляемой формы бизнес-процесса перейдем на закладку Командный интерфейс и в разделе Перейти включим видимость для Задач исполнителям:
Рисунок 6 – Включение видимости команды «Задачи исполнителям» в панели навигации
После таких настроек в пользовательском режиме на форме бизнес-процесса в панели навигации отображается гиперссылка для перехода к задачам по текущему бизнес-процессу:
Рисунок 7 – Переход к задачам из формы бизнес-процесса
Таким образом, без написания программного кода можно получить список задач для конкретного бизнес-процесса.
В зависимости от того, какое представление списка задач требуется, при решении данной задачи можно выбрать наиболее подходящий способ из рассмотренных выше.
Бизнес-процессы
Механизм бизнес-процессов (далее "Процесс") направлен на автоматизацию порядка взаимодействия сотрудников в организации.
В рамках бизнес-процессов сотрудники не только взаимодействуют, но и работают над какими либо сущностями (файлы, документы, письма и т.д.). Такие сущности в процессах называются предметами.
С каждым процессом может быть связано любое количество предметов.
Каждый из предметов по отношению к процессу имеет свою роль:
- Основной,
- Вспомогательный,
- Заполняемый.
Основные – это те предметы, над которыми выполняются действия процесса. Такие предметы подлежат особой обработке при выполнении процесса. Например, внутренние документы меняют свое состояние, к ним добавляются визы согласования и т.д.
Вспомогательные предметы не изменяются и не обрабатываются при выполнении/продвижении процесса.
Заполняемые – особые предметы, которые должны быть заполнены в определенных задачах процесса. Но процесс, в котором происходит заполнение предметов не направлен на выполнение действий над ними. Обычно в рамках одного процесса происходит заполнение предмета, а в рамках другого – действие над предметом. Например, в процессе Исполнение следует подготовить проект договора, а в процессе Согласование – согласовать договор.
Роль для предмета в процессе может быть определена способом создания процесса, настройками шаблона процесса и вручную в карточке самого процесса.
При создании процесса на основании задачи из меню Подзадачи предмету присваивается роль Вспомогательный . Если процесс создается по шаблону с предметами, то роль определяется шаблоном.
Для процессов Исполнение и Ознакомление определена особая логика при создании на основании задач процесса Рассмотрение – предметы в процессах Исполнение и Ознакомление имеют те же роли, что и в процессе Рассмотрение.
В процесс по умолчанию добавляются вспомогательные предметы, но их роль можно изменить при помощи команды Основной в контекстном меню области предметов.
Контекстное меню области предметов в процессе:
При создании процесса командой Главное – Создать - Процесс - создается процесс без предметов, либо с настройками для заполнения предметов, если при создании использовался шаблон. В этом случае действуют ранее описанные правила – новые предметы добавляются как вспомогательные, если это не определено иначе шаблоном процесса.
В шаблоне процесса роль предмета определяется при добавлении.
Добавление предметов в шаблон процесса:
Как устроено определение роли предметов
Ниже описан порядок определения роли предмета в процессе по способу создания и добавления предмета в процесс.
Создание процесса на основании
При создании процесса на основании других объектов вызывается процедура РаботаСБизнесПроцессамиКлиент.ОткрытьПомощникСозданияОсновныхПроцессов. В зависимости от переданных параметров формируется структура параметров формы и открывается общая форма СозданиеБизнесПроцесса .
При создании формы (в обработчике ПриСозданииНаСервере ) происходит анализ параметров формы и в зависимости от них производится заполнение таблицы Предметы , а также формирование списка предлагаемых шаблонов для создания нового процесса.
Следует обратить внимание, что при создании процесса на основании входящих, внутренних и исходящих документом список шаблонов содержит только шаблоны, назначенные видам документа основания.
Для поиска мест добавления предметов в процедуре ПриСозданииНаСервере удобно использовать поиск по строке Предметы .
Создание процесса по шаблону
Если при создании процесса выбирается шаблон процесса, то при заполнении процесса вначале в него передаются настройки предметов из шаблона, а после загружаются предметы. Роль при этом определяется настройкой шаблона. Это происходит в процедуре ОбработкаЗаполнения модуля объекта каждого процесса.
Добавление нового предмета в процесс
Роль добавляемого предмета в карточке процесса определяется явно в процедурах:
- МультипредметностьКлиент.ПредметыДобавитьЗаполняемый
- МультипредметностьКлиент.ПредметыДобавитьВспомогательный
Обработка основных предметов при выполнении процесса
Обработка предметов зависит от типа и прикладной логики предмета. Например, отметка начала и завершения выполнения проектной задачи привязанной к выполнению процесса происходит в обработчиках ПереСтартом и ПриЗавершении соответствующих точек маршрута:
- РаботаСПроектами.ОтметитьНачалоВыполненияПроектнойЗадачи(ЭтотОбъект);
- РаботаСПроектами.ОтметитьОкончаниеВыполненияПроектнойЗадачи(ЭтотОбъект);
Установка состояния документов происходит:
- При подготовке очередной итерации (например, для процесса Исполнение это происходит в обработчике ПодготовкаИтерацииОбработка ).
- При завершении процесса или при обработке результатов (обработчик ОбработкаРезультатаОбработка в процессе Утверждение).
- При изменении пометки удаления (в обработке ПередЗаписью ).
- При прикреплении/откреплении предметов (методы ПриПрикрепленииПредмета , ПриОткрепленииПредмета в модулях объектов некоторых процессов).
- При прерывании процессов (метод КомпенсироватьСостояниеПредметов в модулях объектов некоторых процессов).
Как подключить свой объект к механизму бизнес-процессов
Это может потребоваться, когда необходимо для запуска процессов по нетиповым объектам.
Читайте также: