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

22.07.24

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Подсистема "Пользовательские автоподстановки" для 1С: Документооборот 2.1 (Расширение):
.cfe 30,15Kb
32
32
2 SM
Скачать Купить за 2 150 руб.

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

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

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

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

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

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

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

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

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

48500 руб.

19.02.2016    107916    108    5    

89

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

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

90000 руб.

24.10.2022    5206    7    1    

6

SALE! 30%

Загрузка и выгрузка в 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    103771    304    173    

319

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

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

48000 руб.

11.06.2015    56857    35    19    

44

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

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

14880 руб.

17.12.2018    45030    63    51    

76

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

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

14900 руб.

15.11.2018    28898    31    48    

65

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

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

29400 руб.

29.06.2023    5185    11    5    

20

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3558    8    0    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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)
Получилось сделать так как на скриншоте.
Прикрепленные файлы:
Оставьте свое сообщение