Подсистема "Пользовательские автоподстановки" для 1С: Документооборот 2.1
Функциональные - Документооборот и делопроизводство (СЭД)
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
При использовании шаблонов бизнес-процессов частенько приходится использовать механизмы автоподстановки исполнителей, и типовой функционал позволяет это сделать, но сам по себе список этих автоподстановок ограничен.
Для расширения возможностей этого механизма и была реализована эта подсистема. С помощью нее можно описать любой нужный вам алгоритм автоподстановки в пользовательском режиме.
Подсистема реализована в виде расширения, поэтому снимать конфигурацию с поддержки не придется
Пользовательские алгоритмы автоподстановки доступны в двух видах:
- Общий (в контексте алгоритма доступен объект бизнес-процесса)
- По основному предмету(в контексте алгоритма доступен объект бизнес-процесса и его основной предмет)
- Для использования автоподстановки в шаблоне бизнес - процесса обязательно нужно указать предмет
Подсистема позволяет описать практически любой механизм автоподстановки, все ограничивается только вашей фантазией/навыками
Ниже приведены примеры пользовательских алгоритмов:
- Общий алгоритм автоподстановки всех пользователей системы КРОМЕ автора самого процесса
МассивПользователей = Новый Массив;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийПользователь", ПараметрыСеанса.ТекущийПользователь);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Пользователи.Ссылка,
| Пользователи.ИдентификаторПользователяИБ
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| НЕ Пользователи.Недействителен
| И Пользователи.Ссылка <> &ТекущийПользователь
|
|УПОРЯДОЧИТЬ ПО
| Пользователи.Наименование";
Выборка = Запрос.Выполнить().Выбрать();
УстановитьПривилегированныйРежим(Истина);
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.ИдентификаторПользователяИБ) Тогда
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
Выборка.ИдентификаторПользователяИБ);
Если ПользовательИБ <> Неопределено Тогда
МассивПользователей.Добавить(Выборка.Ссылка);
КонецЕсли;
КонецЕсли;
КонецЦикла;
РезультатФункции = МассивПользователей;
- Алгоритм автоподстановки по предмету (в предмет был добавлен доп. реквизит, пользователь указанный в этом реквизите является исполнителем задачи)
СтрокаПредмета = Объект.Предметы.Найти(ИмяПредмета, "ИмяПредмета");
Если СтрокаПредмета <> Неопределено Тогда
Если НЕ ЗначениеЗаполнено(СтрокаПредмета.Предмет) Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Автоподстановка не может быть выполнена, так как не указан предмет ""%1"" процесса.'"),
Строка(ИмяПредмета));
КонецЕсли;
Если ТипЗнч(СтрокаПредмета.Предмет) <> Тип("СправочникСсылка.ВнутренниеДокументы") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Автоподстановка не может быть выполнена для предмета ""%1"" процесса.'"),
Строка(ИмяПредмета));
КонецЕсли;
РезультатФункции = УправлениеСвойствами.ЗначениеСвойства(СтрокаПредмета.Предмет, "Ревизор_c04a1fa23d014aff8d34200c3e470766");
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не найден предмет ""%1"" процесса.'"),
Строка(ИмяПредмета));
КонецЕсли;
Не забудьте обновить список доступных автоподстановок

Проверено:
Платформа: 1С:Предприятие 8.3 (8.3.17.1851)
Конфигурация: Документооборот 8 КОРП, редакция 2.1 (2.1.28.13)
Код расширения открыт, и при необходимости подсистему можно "допилить" под собственные нужды.
P.S. Если понравилось/пригодилось - ставь + (мне будет приятно)
Возможно, также будут интересны другие мои публикации
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, релизы 2.1.28.12
Вступайте в нашу телеграмм-группу Инфостарт