1с документооборот создать процесс программно

Обновлено: 08.07.2024

Задача была сформулирована как необходимость отразить ход бизнес-процесса из внешней системы в ДО программно, используя типовой функционал с возможностью перевода пользователей на ведение этого БП в ДО.

Во внешней системе ведется цепочка согласования «Заявки на Страхование» перед оформлением договора, результатом работы является либо созданный договор либо отказ в создании договора.

Я задачу дефрагментировал на части:

1) Настройка демо базы ДО КОРП. (в базе должен быть нужный нам вид внутреннего документа, работающий шаблон комплексного БП, роли исполнителей которые нужны для работы с документом )

К статье приложены

1) архив демо базы с настройкой.

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

По Документообороту достаточно много статей на портале 1С, на какую либо оригинальность я не претендую, но я думаю что кому- то этот материал три-пять часов "изысканий" может сэкономить, этим и полезен.

В процессе реализации стало очевидно, что логику переходов между точками можно строить по-разному.

В данном случае я создаю внутренний документ - Предмет , по Предмету создаю БП , далее я модифицирую реквизиты в предмете что влияет на логику переходов схемы и толкаю незавершенный БП на следующий шаг. Документооборот согласно состоянию Предмета в зависимости от того где он находится сейчас генерирует очередную задачу согласно логике схемы. Это автоматическая маршрутизация.

Заложена ли возможность директивной маршрутизации на произвольную точку схемы БП в типовую модель Документооборота - я пока не разобрался (тот случай, когда новую задачу по БП или подчиненный БП создаешь сам и желательно на произвольную точку БП)

Вопросы и комментарии категорически приветствуются.

Тестировалось на Документооборот 8 КОРП, редакция 2.1 (2.1.12.2) и 1С:Предприятие 8.3 (8.3.12.1529)


Бизнес-процессы могут быть вложенными. На карте маршрута вложенные бизнес-процессы отмечаются с помощью точки вложенного бизнес-процесса:

Точка вложенного бизнес-процесса

С помощью данной точки можно запустить вложенный бизнес-процесс в рамках текущего.

При переходе на данную точку будет создана ведущая задача. Для этой задачи создается вложенный бизнес-процесс:

ведущая задача

После выполнения вложенного бизнес-процесса, ведущая задача считается выполненной и бизнес-процесс переходит на следующую точку.

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

Вложенный бизнес-процесс

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

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

  1. Вызывается обработчик ПередСозданиемВложенныхБизнесПроцессов у точки вложенного бизнес-процесса.
  2. Вызывается обработчик ПередСозданиемЗадач у точки вложенного бизнес-процесса.
  3. Вызывается обработчик ПриСозданииЗадач у точки вложенного бизнес-процесса.
  4. Ведущие задачи записываются в базу данных.
  5. Вызывается обработчик ПриСозданииВложенныхБизнесПроцессов у точки вложенного бизнес-процесса.
  6. Вложенные бизнес-процессы записываются в базу данных и выполняется их запуск.

Все действия выполняются в рамках одной транзакции.

Обработчик ПередСозданиемВложенныхБизнесПроцессов

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

Данный обработчик можно использовать для ручного создания бизнес-процессов:

Конфигурация документооборот.
Необходимо при создании не типового документа,
создать типовой бизнес процесс "Исполнение".
И заполнить поля, -
Наименование
Описание
Тч.Исполнители - исполнитель
Проверяющий
Контроллер

Подскажите пожалуйста по коду, как это можно сделать?

У тебя особый навык делать всё через задницу, похоже.
Поясни, почему ты не хочешь запускать бизнес-процесс, формирующий документы, пытаясь сделать наоборот?
Кстати, тебя, случаем, не Виталий зовут? Знакомый ээ. стиль и характер вопросов.
(2) Как это сделать?
Все задачи -> Создать - Новый процесс - Исполнение
там есть пункт добавить заполняемый предмет.
Это и есть прикрепление документа к бизнес процессу
Исполнение?
Чувак, иди читай ЖКК. Ты даже элементарных основ не понимаешь.
повторю свой совет почитать книжку про документооборот.
нет ничего сложного.
концепция программного создания бизнес процесс при создании документа порочна.
(7) Не просто порочна. Это прямо указывает на абсолютное непонимание сути задачи автоматизации БП.
понимаешь.. у тебя конфигурация даже называется Документо! Оборот!
то есть обращение документов.
не создание исполнений из пустого места при создании чего-то там нетипового.
чтобы документ начал обращаться - нужно его сначала создать и записать.
и только когда он готов. а никак не при создании. создавать процесс(хоть программно хоть как) в который уже пожалуйста добавляй свой документ который по этому процессу пойдет, заполняй все прочие реквизиты и запускай.
все.

Суть задачи такова:

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

Но хотелось бы что бы этот бизнес процесс и задача создавались автоматически, при создании, проведении
не типового документа заявка. И адресовывались пользователю. Как аналог созданных в ручную.
отображались у него в списке задач при открытии.

Не могу найти примеров кода для создания по подобию.
Подскажите пожалуйста по коду.

Ты вообще читаешь, что тебе пишут? Ты создаёшь какую-то идиотию, телегу ставишь перед лошадью через дебильный костыль. Зачем тебе БП создавать ПОСЛЕ проведения документа? К чему это? Зачем тебе вообще нужен этот документ "Заявка" при наличии бизнес-процесса? Поясни ход своих мыслей.
(12) Посмотри (10) и не пиши ему ничего. Бесполезно. Это абсолютный уникум.

(12) Руководитель отдела поставил задачу, разработать
размещенными на ней в требуемом ему виде.

в левой части формы и документами (заявками) в правой
части формы. С заданной фильрацией по отделам, пользователям.

Внизу под правым списком документов, должны быть поля,
в которых отображается содержимое реквизитов документа.
При установке на нем курсора.

специальная разработка, в которой нет ничего лишнего.

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

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

Данная функция позволяет автоматически подставлять объекты адресации из предмета процесса в роль с объектом адресации. Для добавления новых автоподстановок в адресной книге необходимо нажать кнопку "Обновить автоподстановки":


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


Допустим у нас есть роль "_Тест":


Исполняет данную роль пользователь "Администратор" по организации "ООО Управляющая компания" и по подразделению "Администрация":


Автоподставнока "_Тест (Роль)" со скришота выше сможет автоматически определить объекты адресации по предмету для роли "_Тест".

В расширении изменения объекта проверяются другим способом. Если хотя бы один реквизит из документа изменен, тогда файлы, которые не заняты на редактирование, созданы по шаблону, не помечены на удаление обновляются данными документа.

Настройка данной функции выполняется в виде внутреннего/исходящего документа.

Данная функция работает только при создании процесса по шаблону. В шаблоне процесса добавлен реквизит "Создавать задачу ознакомления":


В данном реквизите настраивается вариант создания задачи ознакомления.

Для заполнения реквизита "Создавать задачу ознакомления" после обновления расширения запустите обработку "Перенос значения реквизита не создавать задачу ознакомления".

Запрет повторного запуска комплексного процесса по предмету.

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

Настройки расширения находятся в отдельной подсистеме "Дополнительные функции":


Динамические роли включены по умолчанию без возможности отключения.

Пользовательские автоподстановки.

Добавлена новая функция "Пользовательские автоподстановки". С помощью данной функции можно добавлять собственные автоподстановки для шаблонов бизнес-процессов в режиме предприятия. Пользовательские автоподстановки находятся в подсистеме "Дополнительные функции":




На закладке "Тестирование" можно проверить автоподстановку с нужными параметрами (если они требуются), результат работы кода автоподстановки выводится в список значений:


Технически пользовательские автоподстановки реализованы следующим образом:

- В функции"ПолучитьСписокДоступныхФункций" общего модуля "ШаблоныБизнесПроцессов" добавляются автоподстановки из справочника.

К имени функции автоподстановки добавляется префикс "ПользовательскаяАвтоподстановка_" для поиска элемента справочника с программным кодом при получении значения автоподстановки.

- В функцию "ПолучитьЗначениеАвтоподстановки" общего модуля "ШаблоныБизнесПроцессов" добавлена дополнительная проверка. В функции автоподстановки выполняется поиск префикса "ПользовательскаяАвтоподстановка_", если данный префикс найден, тогда выполняется поиск элемента справочника пользовательской автоподстановки по наименованию. Далее выполняется программный код элемента справочника. Запись пользовательских автоподстановок с одинаковым наименованием запрещена, поэтому при поиске элемента по наименованию будет найдено не более 1 автоподстановки.

Указание минут и секунд в правилах эскалации задач.

В правила эскалации задач добавлена возможность указания минут и секунд:


Автоматическое расширение рабочей группы связанных документов.

В справочник "Типы связей" добавлен реквизит "Автоматически вести состав участников рабочей группы":


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

При установке связи "Договор" из документа "Закупка дисков для СХД" участники рабочей группы документа "Закупка дисков для СХД" будут автоматически перенесены в связанный договор:



При дальнейшем изменении рабочей группы документа "Закупка дисков для СХД" новые пользователи, которые были добавлены в рабочую группу документа будут автоматически перенесены в документ "Договор на поставку бетона".

Автоматическое создание делегирования прав заместителям при создании отсутствия.

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

Алгоритмы обработки задач и бизнес-процессов.

В шаблоны бизнес-процессов добавлены закладки "Назначения алгоритмов обработки задач", "Назначения алгоритмов обработки процессов":


На данных закладках можно назначить произвольные алгоритмы, которые будут выполняться перед записью задачи или бизнес-процесса. В дальнейшем будут добавлено событие "При записи".

На данный момент для выбора доступно только событие перед записью:


Для переноса настроенных алгоритмов из старой версии (до 2.1.27.1) расширения запустите обарботку "Перенос алгоритмов в новые объекты" из подсистемы "Дополнительные функции". В обработке нажмите кнопку "Запустить перенос".

Для переноса алгоритмов в единый справочник из старой версии (до 2.1.18.12) запустите обработку "Перенос алгоритмов в новый справочник, изменение назначений алгоритмов обработки". В обработке нажмите кнопку "Запустить перенос".

Отображение связей предметов на формах выполнения задач.

Добавлено отображение связанных документов, файлов связанных документов на формах выполнения задач, на форме "Задачи мне":



Отображение листа согласования на форме выполнения бизнес-процесса "Утверждение/Подписание".

Добавлено отображение листа согласования на форму выполнения утверждения/подписания:


Перенос файлов из задачи в предметы процесса.

Настройка переноса файлов из задачи в предметы процесса настраивается в шаблоне процесса:


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

Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа.

Добавлена функция "Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа" для внутренних, входящих, исходящих документов.

Настройка выполняется в виде документа:


Запрет интерактивного создания документов.

Добавлена функция "Запрет интерактивного создания документов" для внутренних, входящих, исходящих документов.

Настройка выполняется в виде документа:


- Добавлен механизм пользовательских автоподстановок

- Добавлена возможность отключения создания задачи ознакомления для регистрации и утверждения/подписания. Функция работает также как и отключение создания задачи ознакомления для согласования.

- В пользовательскую автоподстановку добавлена возможность прикрепления ссылки на файл (удобно хранить файлы с внешними обработками тестирования и т.д.):


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

- Поднят режим совместимости расширения до версии 8.3.14.

- Функции расширения переведены на новую версию конфигурации.

- В правила эскалации задач добавлена возможность указания минут и секунд

- Автоматическое расширение рабочей группы связанных документов

- Автоматическое создание делегирования прав заместителям при создании отсутствия

- Выполнение произвольного алгоритма перед записью задачи

- Отображение связей предметов в формах выполнения задач

- Отображение листа согласования в форме выполнения бизнес-процесса "Утверждение/Подписание"

- В пользовательские автоподстановки добавлен реквизит "ЗависитОтПредмета" для разделения автоподстановок, которые зависят от предмета процесса

- Выполнение произвольного алгоритма перед записью бизнес-процесса

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

- Изменена логика работы алгоритмов перед записью задач и процессов

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

- Добавлена функция "Автоматическое добавление подразделения ответственного/подготовившего/подразделения из документа в рабочую группу документа" для внутренних, входящих, исходящих документов

- Добавлена функция "Запрет интерактивного создания документов"

- Алгоритмы обработки задач и бизнес-процессов перенесены в единый справочник

- Настройка функции "Автоматическое обновление файлов данными владельца" перенесена в вид внутреннего/исходящего документа

- Исправлена ошибка записи документа при автоматическом расширении рабочей группы документов

- Исправлена ошибка при открытии формы "Задачи мне"

- Реквизиты с префиксом "Удалить" убраны с форм "Назначения алгоритмов обработки задач", "Назначения алгоритмов обработки процессов"

Данное расширение тестировалось на версии 2.1.28.14 1С:Документооборот КОРП.

Читайте также: