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

22.07.24

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

Подписка 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

Вступайте в нашу телеграмм-группу Инфостарт

Документооборот 2.1 Подсистема автоподстановка бизнес-процессы исполнители алгоритмы

См. также

Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 Управленческий учет Платные (руб)

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

63100 руб.

19.02.2016    114363    149    5    

120

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

135530 руб.

11.06.2015    62518    38    20    

49

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

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram/max, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    41883    54    60    

85

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

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

15000 руб.

20.04.2016    68214    195    107    

108

ЭДО и ОФД Учет документов 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

29890 руб.

17.12.2018    50588    81    65    

85

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

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

32330 руб.

29.06.2023    11946    35    15    

42

Перенос данных 1C Учет документов Системный администратор Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

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

54900 руб.

23.05.2017    62750    36    69    

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

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

{АвтоподстановкиДляПроцессов ОбщийМодуль.ШаблоныБизнесПроцессов.Модуль(36,33)}: Переменная не определена (РаботаВМоделиСервиса)
6. Lok`Tar 90 20.05.21 14:02 Сейчас в теме
(5) Добрый день!
Пришлите электропочту в личку, вышлю версию расширения для вашего релиза
3. buntova_ev_odk 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 90 07.10.21 16:27 Сейчас в теме
10. feelekdzr 25.11.21 15:37 Сейчас в теме
Здравствуйте!
Подскажите как можно реализовать автоподстановку, если был создан реквизит во внутреннем документе через расширение?
11. Lok`Tar 90 25.11.21 17:51 Сейчас в теме
(10) Добрый вечер! Насколько я представляю, то точно также, как если бы этот реквизит был добавлен в основную конфигурацию. Т.е. в программном коде обработчика автоподстановки значение реквизита можно получить через "."
12. user1618252 29.01.22 16:54 Сейчас в теме
Добрый вечер! Подскажите, как можно обратиться к реквизиту внутреннего документа "Подписант"
13. Lok`Tar 90 31.01.22 11:59 Сейчас в теме
(12) Добрый день! Примерно так

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

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

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


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