Делаем свою автоподстановку в 1С Документообороте

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

Оказывается, для того что бы список выбора отобразил автоподстановки которые мы добавили сами, необходимо в контекстном меню списка выбрать команду «Обновить автоподстановки»
После выполнения этого действия, в списке выбора появиться все добавленные нами автоподстановки:
После этого можно выбирать их для использования в реквизитах процессов. Кроме того, в шаблонах некоторых процессов выбор автоподстановки возможен при вводе имени автоподстановки в самом поле по событию Автоподбор или ПриОкончанииВводаТекста.
Еще можно посмотреть
Добавляем обработчик события для дополнительного реквизита 1С
Улучшаем дополнительный реквизит. Задаем маску ввода. Назначаем обработчик события ПриИзменении.
Хранилище вариантов отчета 1С для внешнего отчета
Настройка хранилища вариантов отчетов для внешнего отчета 1С. Делимся вариантами отчетов с другими пользователями.
Расположение дополнительных реквизитов на форме
Меняем расположении закладки с дополнительными реквизитами на форме Внутреннего документа.
Не работает отладка 1С
Не работает отладка 1С. Разбираем случаи когда и почему не работает отладка на сервере и на клиенте 1С и как решить проблему.
Настройка отладки в Конфигураторе 1С
Рассказываем про настройки которые надо сделать в конфигураторе 1С чтобы запустить отладку.
Как включить отладку на сервере 1С 8.3
Включаем отладку на сервере 1С. Разбираемся где и какие параметры прописать в системе чтобы стала доступна отладка серверных сеансов.
Зачем нужны Дополнительные реквизиты 1С
Для чего нужно использовать дополнительные реквизиты в конфигурациях 1С. Почему это лучше изменения метаданных.
Похожие записи
- Ошибка в типовой интеграция 1С:ЗУП с 1С:Документооборот
- Пропажа индексов дескрипторов в 1С:Документообороте
- Вывод дополнительных реквизитов в несколько колонок
- Добавляем обработчик события для дополнительного реквизита 1С
- Зачем нужны Дополнительные реквизиты 1С
- Расположение дополнительных реквизитов на форме
Возможно ли добавление использования автоподстановки при выборе значения для поля «Автор»? В форме бизнес-процесса эта опция для поля автора отсутствует при выборе. Установил параметр ОтображатьАвтоподстановкиПоПроцессам в Истина — опция «Автоподстановка» появилась, но при попытке выбора выдает «Нельзя выбрать автоподстановку, которая зависит от предмета. для выбора такой автоподстановки нужно добавить предмет в шаблон процесса». Как это сделать?
Привет. В форме шаблона процесса есть закладка «Предметы процесса». Там надо добавить/создать основной предмет и выбрать тип — например «Договор» с типом «Внутренний документ». После этого программа сможет понять откуда и какие реквизиты можно взять для автоподстановки.
Предмет был указан, не помогло.
Тип поля «Автор» — ссылочный и ссылка только на справочник пользователей. Получается, для использование автоподстановки [censored] изменение типа поля на составное (как, например, в полях исполнитель, контролер)?
Поменял тип (Строка + ссылка на пользователей и до кучи на роли) в справочнике шаблонов комплексных процессов. Автоподстановка заработала, но тип поля Автор надо теперь менять в шаблонах всех бизнес-процессов: согласование, исполнение и т.д.? Как-то не очень вариант…