Подсистема "Пользовательские автоподстановки" для 1С: Документооборот 2.1

12.05.21

Функциональные - Документооборот и делопроизводство (СЭД)

Подсистема позволяет описать собственные алгоритмы автоподстановок исполнителей задач бизнес-процессов. Механизмы подсистемы может использовать любой компетентный пользователь/программист.

Скачать исходный код

Наименование Файл Версия Размер
Подсистема "Пользовательские автоподстановки" для 1С: Документооборот 2.1 (Расширение):
.cfe 30,15Kb
32
.cfe 27.04.2021 30,15Kb 32 Скачать

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

Для расширения возможностей этого механизма и была реализована эта подсистема. С помощью нее можно описать любой нужный вам алгоритм автоподстановки в пользовательском режиме.

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

Пользовательские алгоритмы автоподстановки доступны в двух видах:

  • Общий (в контексте алгоритма доступен объект бизнес-процесса)
  • По основному предмету(в контексте алгоритма доступен объект бизнес-процесса и его основной предмет)
    • Для использования автоподстановки в шаблоне бизнес - процесса обязательно нужно указать предмет

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

Ниже приведены примеры пользовательских алгоритмов:

  • Общий алгоритм автоподстановки всех пользователей системы КРОМЕ автора самого процесса
        
        МассивПользователей = Новый Массив;
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийПользователь", ПараметрыСеанса.ТекущийПользователь);
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	Пользователи.Ссылка,
		|	Пользователи.ИдентификаторПользователяИБ
		|ИЗ
		|	Справочник.Пользователи КАК Пользователи
		|ГДЕ
		|	НЕ Пользователи.Недействителен
		|	И Пользователи.Ссылка <> &ТекущийПользователь
		|
		|УПОРЯДОЧИТЬ ПО
		|	Пользователи.Наименование";
	
		
	Выборка = Запрос.Выполнить().Выбрать();
	
	УстановитьПривилегированныйРежим(Истина);
	
	Пока Выборка.Следующий() Цикл
		Если ЗначениеЗаполнено(Выборка.ИдентификаторПользователяИБ) Тогда 
			ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
				Выборка.ИдентификаторПользователяИБ);
			Если ПользовательИБ <> Неопределено Тогда
				МассивПользователей.Добавить(Выборка.Ссылка);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	РезультатФункции = МассивПользователей;
  • Алгоритм автоподстановки по предмету (в предмет был добавлен доп. реквизит, пользователь указанный в этом реквизите является исполнителем задачи)
        СтрокаПредмета = Объект.Предметы.Найти(ИмяПредмета, "ИмяПредмета");
	
	Если СтрокаПредмета <> Неопределено Тогда
		
		Если НЕ ЗначениеЗаполнено(СтрокаПредмета.Предмет) Тогда 
			ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("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 Подсистема автоподстановка бизнес-процессы исполнители алгоритмы

См. также

1С:Документооборот - цена на лицензии КОРП, ПРОФ и ДГУ

Документооборот и делопроизводство (СЭД) Типовые Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    107537    106    5    

89

1С:Архив

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 Платные (руб)

"1С:Архив" – это универсальная система, обеспечивающая надежное долговременное хранение документов с гарантией юридической значимости на неограниченный срок. "1С:Архив" разработан на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов – от попадания в архив до уничтожения – и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. Продукт подходит для малых, средних, крупных предприятий и учреждений любых отраслей.

90000 руб.

24.10.2022    5043    6    1    

5

RayCon® Foreign Trade - Документооборот валютного контроля и международных платежей для участников ВЭД

Операции по ВЭД Документооборот и делопроизводство (СЭД) Бухгалтер Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

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

30000 руб.

13.05.2009    67170    3    29    

42

Таймлист (1С:Совещание, Таймлист Лайт)

Документооборот и делопроизводство (СЭД) Конфигурации 1cv8

«Таймлист» – экосистема сервисов («Таймлист Лайт», «1C:Совещание», «Таймлист Recorder»), основанная на искусственном интеллекте Таймлист, который позволяет эффективно работать с легкими поручениями за счет фиксации всех важных идей при расшифровке и последующем формировании автопротокола встречи. Сервисы, в которые интегрирован ИИ, позволяют работать с задачами (поручениями), полученными из автопротокола.

10000 руб.

06.12.2023    1695    0    0    

8

Легкий документооборот (+чат-бот для Telegram)

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в конфигурациях "1С: Бухгалтерия 3.0", "Управление нашей фирмой", "1С ERP Управление предприятием", "Бухгалтерия государственного учреждения". Ролевая адресация, условная маршрутизация, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    28420    30    48    

62

ЭДО: организация архива оригиналов первичных документов, комплексный отчет по ошибкам

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    44714    62    51    

75

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4882    10    5    

19

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    102803    299    173    

315
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1178010 13.05.21 09:37 Сейчас в теме
Добрый день. Очень интересна данная задача, только для менее "компетентных пользователей" было бы здорово добавить конструктор.
В частности, у нас востребованы автоподстановки, которые должны возвращать полную роль = роль исполнителя + параметр адресации из реквизитов или доп. реквизитов основного предмета бизнес-процесса. Можете привести пример кода для такой автоподстановки?
Например, нужна автоподстановка "Ответственный за ведение табельного учета командируемого сотрудника". Должна возвращать роль исполнителя "Ответственный за ведение табельного учета" с параметром адресации реквизит Подразделение дополнительного реквизита основного предмета "Командируемый сотрудник" (ВнутреннийДокумент.КомандируемыйСотрудник(дополнительный реквизит).Подразделение)
2. Lok`Tar 89 13.05.21 14:36 Сейчас в теме
(1) Добрый день! В целом система предназначена для пользователя с минимальными навыками программирования. Конструктор - это довольно интересная идея (может займусь на досуге), но она точно потребует определенного времени для реализации.
Касаемо вашего примера, нужно описать примерно вот такой код:

СтрокаПредмета = Объект.Предметы.Найти(ИмяПредмета, "ИмяПредмета");
	
	Если СтрокаПредмета <> Неопределено Тогда
		
		Если НЕ ЗначениеЗаполнено(СтрокаПредмета.Предмет) Тогда 
			ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Автоподстановка не может быть выполнена, так как не указан предмет ""%1"" процесса.'"),
				Строка(ИмяПредмета));
		КонецЕсли;
		
		Если ТипЗнч(СтрокаПредмета.Предмет) <> Тип("СправочникСсылка.ВнутренниеДокументы") Тогда 
			ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Автоподстановка не может быть выполнена для предмета ""%1"" процесса.'"),
				Строка(ИмяПредмета));
		КонецЕсли;
		
		ПодразделениеАдресации = УправлениеСвойствами.ЗначениеСвойства(СтрокаПредмета.Предмет, "&ТвоеИмяДопРеквизита");
		РольИсполнителя = Справочники.РолиИсполнителей.НайтиПоНаименованию("&ТвояРоль");
		
		Запрос = Новый Запрос("ВЫБРАТЬ
		|	ПолныеРоли.Ссылка КАК Роль,
		|	ПолныеРоли.ОсновнойОбъектАдресации КАК ПодразделениеАдресации
		|ПОМЕСТИТЬ ВТ_ПолныеРоли
		|ИЗ
		|	Справочник.ПолныеРоли КАК ПолныеРоли
		|ГДЕ
		|	НЕ ПолныеРоли.ПометкаУдаления
		|	И ПолныеРоли.Владелец = &Владелец
		|	И ПолныеРоли.ОсновнойОбъектАдресации = &ПодразделениеАдресации
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	Роль
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ИсполнителиЗадач.Исполнитель КАК Исполнитель,
		|	ВТ_ПолныеРоли.ПодразделениеАдресации КАК ПодразделениеАдресации
		|ИЗ
		|	РегистрСведений.ИсполнителиЗадач КАК ИсполнителиЗадач
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПолныеРоли КАК ВТ_ПолныеРоли
		|		ПО ИсполнителиЗадач.РольИсполнителя = ВТ_ПолныеРоли.Роль
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
		|		ПО ИсполнителиЗадач.Исполнитель = Пользователи.Ссылка
		|ГДЕ
		|	НЕ Пользователи.ПометкаУдаления
		|	И НЕ Пользователи.Недействителен
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ_ПолныеРоли.ПодразделениеАдресации,
		|	ИсполнителиЗадач.Исполнитель");
		
		Запрос.УстановитьПараметр("Владелец", РольИсполнителя);
		Запрос.УстановитьПараметр("ПодразделениеАдресации", ПодразделениеАдресации);
		РезультатФункции = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Исполнитель");
		
	Иначе
		
		ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Не найден предмет ""%1"" процесса.'"),
			Строка(ИмяПредмета));
			
	КонецЕсли;
Показать
5. user1178010 20.05.21 10:29 Сейчас в теме
Алексей, обработку скачали, расширение в ИБ добавили. При попытке открыть форму шаблонов бизнес-процессов возникает ошибка, форма не открывается (используем 1С:ДО 2.1.20.5)
Помогите разобраться, как устранить ошибку

{АвтоподстановкиДляПроцессов ОбщийМодуль.ШаблоныБизнесПроцессов.Модуль(36,33)}: Переменная не определена (РаботаВМоделиСервиса)
6. Lok`Tar 89 20.05.21 14:02 Сейчас в теме
(5) Добрый день!
Пришлите электропочту в личку, вышлю версию расширения для вашего релиза
3. user1178010 13.05.21 15:19 Сейчас в теме
Огромное спасибо за пример и ответ. В ближайшее время обязательно скачаем данное расширение (как только оплатим счет и получим стартмани).
4. AlexandrUng 14.05.21 17:32 Сейчас в теме
Алексей, респект и уважение!
7. feelekdzr 07.10.21 12:37 Сейчас в теме
Здравствуйте!
Расширение добавила. Прописала алгоритм по аналогии с вашим "Ревизор". Обновила список автоподстановки. Созданный появился в списке. Но при попытке выбрать автоподстановку в шаблон процесса. выходит ошибка (см файл).
Прикрепленные файлы:
8. feelekdzr 07.10.21 12:38 Сейчас в теме
(7)Вопрос снят! Забыла указать предмет )))
Спасибо за расширение!!
9. Lok`Tar 89 07.10.21 16:27 Сейчас в теме
10. feelekdzr 25.11.21 15:37 Сейчас в теме
Здравствуйте!
Подскажите как можно реализовать автоподстановку, если был создан реквизит во внутреннем документе через расширение?
11. Lok`Tar 89 25.11.21 17:51 Сейчас в теме
(10) Добрый вечер! Насколько я представляю, то точно также, как если бы этот реквизит был добавлен в основную конфигурацию. Т.е. в программном коде обработчика автоподстановки значение реквизита можно получить через "."
12. user1618252 29.01.22 16:54 Сейчас в теме
Добрый вечер! Подскажите, как можно обратиться к реквизиту внутреннего документа "Подписант"
13. Lok`Tar 89 31.01.22 11:59 Сейчас в теме
(12) Добрый день! Примерно так

СтрокаПредмета = Объект.Предметы.Найти(ИмяПредмета, "ИмяПредмета");
    
    Если СтрокаПредмета <> Неопределено Тогда
        
        Если НЕ ЗначениеЗаполнено(СтрокаПредмета.Предмет) Тогда 
            ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'Автоподстановка не может быть выполнена, так как не указан предмет ""%1"" процесса.'"),
                Строка(ИмяПредмета));
        КонецЕсли;
        
        Если ТипЗнч(СтрокаПредмета.Предмет) <> Тип("СправочникСсылка.ВнутренниеДокументы") Тогда 
            ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'Автоподстановка не может быть выполнена для предмета ""%1"" процесса.'"),
                Строка(ИмяПредмета));
        КонецЕсли;
        
        РезультатФункции = СтрокаПредмета.Предмет["ИмяРеквизитаПодписант"];

Иначе
        
        ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'Не найден предмет ""%1"" процесса.'"),
            Строка(ИмяПредмета));
            
    КонецЕсли;
Показать
user1177126; user1618252; +2 Ответить
14. Crash_Aleks 13 29.06.22 16:33 Сейчас в теме
Добрый вечер!

Подскажите, пожалуйста, по такому тривиальному вопросу.
После подключения расширения у всех пользователей появляется раздел интерфейса "Пользовательские автоподстановки".
Как этого избежать? Сделать его видимым и доступным только для пользователей администраторов?
Прикрепленные файлы:
15. Lok`Tar 89 29.06.22 19:50 Сейчас в теме
(14)
я расширения у всех пользователей появляется раздел интерфейса "Пользовательские автоподстановки".
Как этого избежать? Сделать его видимым и дост


Добрый вечер!
В расширении должна быть переопределена одна из типовых общих ролей (у меня сейчас к сожалению нет возможности посмотреть в конфигураторе)
Вот, в этой роли нужно убрать права на просмотр подсистемы
16. Crash_Aleks 13 30.06.22 15:39 Сейчас в теме
(15)
Получилось сделать так как на скриншоте.
Прикрепленные файлы:
Оставьте свое сообщение