Доступность процессов и задач по предмету всем участникам рабочей группы документа

Публикация № 1287037 15.02.21

Управленческий учет - Документооборот и делопроизводство

обработчик бизнес событий доступ к задачам и процессам всем участникам

Простой способ сделать задачи и процессы доступными всем участникам рабочей группы документа. Для этого нужно добавить дополнительный обработчик бизнес-события, который будет срабатывать по виду события "Старт процесса". Актуально, если используете комплексные процессы, и не все участники видят задачи друг друга.

 В обработчике события указываем следующий код:

Источник = Событие.Источник;
ТребуетсяЗапись = Ложь;

Запрос = Новый Запрос;

ТекстЗапроса =
"ВЫБРАТЬ
| ПредметыПроцесса.Предмет КАК Предмет
|ИЗ
| &ИмяПроцесса КАК ПредметыПроцесса
|ГДЕ
| ПредметыПроцесса.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Источник);

ИсточникМетаданные = Источник.Метаданные();

ПроцессИмя = ИсточникМетаданные.ПолноеИмя();

ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&ИмяПроцесса",ПроцессИмя + ".Предметы");

Запрос.Текст = ТекстЗапроса;

ВыборкаПредмет = Запрос.Выполнить().Выбрать();

Пока ВыборкаПредмет.Следующий() Цикл
	
	УчастникиПоПредмету = РегистрыСведений.РабочиеГруппы.ПолучитьУчастниковПоОбъекту(ВыборкаПредмет.Предмет);
	УчастникиПроцесса = РегистрыСведений.УчастникиПроцессов.ПолучитьУчастников(Источник);
	
	Для Каждого УчастникПоПредмету Из УчастникиПоПредмету Цикл
		
		Если ТипЗнч(УчастникПоПредмету.Участник) = Тип("СправочникСсылка.Пользователи")
			ИЛИ ТипЗнч(УчастникПоПредмету.Участник) = Тип("СправочникСсылка.ПолныеРоли") Тогда
			
			Если УчастникиПроцесса.Найти(УчастникПоПредмету.Участник,"Участник") = Неопределено Тогда
				НовСтрокаУчастник = УчастникиПроцесса.Добавить();
				НовСтрокаУчастник.Участник = УчастникПоПредмету.Участник;
				НовСтрокаУчастник.Процесс = Источник;
				ТребуетсяЗапись = Истина;
			КонецЕсли;
			
		КонецЕсли;
		
		Если ТипЗнч(УчастникПоПредмету.Участник) = Тип("СправочникСсылка.РабочиеГруппы") Тогда
			
			РабГруппа = УчастникПоПредмету.Участник;
			СоставРабГруппы = Справочники.РабочиеГруппы.СоставКонтейнераПользователей(РабГруппа);
			
			Для Каждого УчастникРабГруппы Из СоставРабГруппы Цикл
				
				Если УчастникиПроцесса.Найти(УчастникРабГруппы,"Участник") = Неопределено Тогда
					НовСтрокаУчастник = УчастникиПроцесса.Добавить();
					НовСтрокаУчастник.Участник = УчастникРабГруппы;
					НовСтрокаУчастник.Процесс = Источник;
					ТребуетсяЗапись = Истина;
				КонецЕсли;
				
			КонецЦикла;
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецЦикла;

Если ТребуетсяЗапись Тогда
	РегистрыСведений.УчастникиПроцессов.ЗаписатьНаборПоПроцессу(Источник, УчастникиПроцесса, Истина);
КонецЕсли;

Принцип работы такой: по процессу, который стартует ("Источник") мы ищем все предметы. Затем каждый предмет обходим в выборке и смотрим, есть ли участники рабочей группы этого предмета в регистре, в котором хранятся участники процессов (в конфигурации он так и называется "УчастникиПроцессов").

Еще нужно учесть, что в рабочую группу документа может входить в качестве участника "Рабочая группа" (отдельный справочник), в отличие от регистра, в котором могут быть заданы только или пользователи, или полные роли. Поэтому если в составе участников по документу есть рабочая группа, тогда просматриваем участников рабочей группы и, если они еще не добавлены в регистр, то добавляем.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Дата
4. Capitullo 16 05.08.21 12:03 Сейчас в теме
(3) Дополню для читающих, в данном примере если заменить МассивКадры на одну роль (можно создать служебную полную роль чтобы использовать ее только для предоставления доступа) и добавить туда всех пользователей, перечисленных в массиве, тогда в случае добавления новых сотрудников не придется обработкой перезаполнять регистр Участники Процессов, чтобы предоставить доступ к старым процессам и задачам для новых сотрудников, достаточно будет их добавить в полную роль и они сразу увидят все процессы и задачи как прочие участники этой роли.
3. Rokky78 34 05.08.21 11:52 Сейчас в теме
Посмотрев как работает обработчик, решил немного ограничить запись. Дело в том что в таком виде для каждого процесса (и основного комплексного и вложенных в него) создаются достаточно много записей в регистре. Поскольку потребность видеть все процессы была у отдела кадров, решил сделать фильтр именно по ним.
В самом начале определил массив в котором собрал роли, группы и пользователей ОК,

	ПользовательИванова = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("3a219092-f819-11ea-b67d-0cc47a283a95"));
	ПользовательПетрова = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("0420e2c1-7522-11e8-994d-0cc47a283a95"));
	ПользовательСидорова = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("f54cf259-7517-11e8-994d-0cc47a283a95"));
	РабочаяГруппаРГ_Кадры = Справочники.РабочиеГруппы.ПолучитьСсылку(Новый УникальныйИдентификатор("f7aa1aca-0455-11e9-81cd-0cc47a283a95"));
	РольКадровик = Справочники.ПолныеРоли.ПолучитьСсылку(Новый УникальныйИдентификатор("fc485390-56d0-11e9-9fa3-0cc47a283a95"));
	
	МассивКадры = Новый Массив;
	МассивКадры.Добавить(ПользовательИванова);
	МассивКадры.Добавить(ПользовательПетрова);
	МассивКадры.Добавить(ПользовательСидорова);
	МассивКадры.Добавить(РабочаяГруппаРГ_Кадры);
	МассивКадры.Добавить(РольКадровик);
Показать


Затем проверяю входит ли участник рабочей группы основного предмета в этот массив.

		Для Каждого УчастникПоПредмету Из УчастникиПоПредмету Цикл
			
			Если МассивКадры.Найти(УчастникПоПредмету.Участник) = Неопределено Тогда	//Если не кадровик - не добавляем участника
				Продолжить;
			КонецЕсли;
2. Capitullo 16 05.08.21 11:19 Сейчас в теме
(1) Код в публикации поправил, спасибо за замечания!
1. Rokky78 34 04.08.21 14:47 Сейчас в теме
Идея отличная.
Подобные статьи попадались и раньше, но не думал, что это так востребовано на нашем предприятии. Оказалось - да.
Еще некоторые подробности - в личном сообщении.
Capitullo; +1 Ответить
Оставьте свое сообщение

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

Практика программирования v8 Бесплатно (free)

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020    5126    Eugen-S    24    

СКД: 5 советов, как сделать лучше

Практика программирования v8 v8::СКД 8.3.14 Бесплатно (free)

Несколько примеров решения задач с использованием разных подходов

27.10.2021    5488    Neti    19    

Полезные примеры СКД, ч.2

Практика программирования v8 v8::СКД Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    11724    Neti    8    

Неочевидные нюансы записи управляемой формы

Практика программирования v8 v8::УФ Платформа 1C v8.2 1cv8.cf Бесплатно (free)

Разберем несколько нюансов записи управляемой формы.

02.04.2021    14401    SeiOkami    54    

Использование классов .Net в 1С для новичков Промо

Разработка внешних компонент Универсальные функции Практика программирования v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    86637    Serginio    116    

Обзор полезных методов БСП 3.1.4

БСП (Библиотека стандартных подсистем) Практика программирования v8 1cv8.cf Бесплатно (free)

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

25.03.2021    46536    rayastar    53    

Звуковое управление в 1С 8.3

Практика программирования v8 1cv8.cf Бесплатно (free)

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    7609    velemir    33    

Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)

Практика программирования v8 ERP2 БУ Бесплатно (free)

Покажу точки входа для доработки "типового" проведения документов в ERP для регистров оперативного учета. Рассмотрим три основные ситуации: нужно изменить имеющееся проведение документа; нужно сделать записи в существующие регистры; нужно с нуля описать алгоритм проведения в добавленный регистр. Пример реализован на 1С:ERP Управление предприятием 2 (2.5.4.120)

10.01.2021    11820    BuriyLesha    10    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    41340    unichkin    74    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    9352    comol    31    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

БСП (Библиотека стандартных подсистем) Практика программирования v8 1cv8.cf Россия Бесплатно (free)

В данной публикации я опишу полезные процедуры и функции модуля общего назначения библиотеки стандартных подсистем, обязательные к использованию любым программистом 1С.

30.08.2020    21525    quazare    34    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    36601    tormozit    106    

Форма выбора (подбор) в управляемых формах

Практика программирования v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    87964    user5300    28    

Конвертация расширения cfe в конфигурацию сf руками

Практика программирования v8 1cv8.cf Бесплатно (free)

Как быстро преобразовать расширение в конфигурацию (для дальнейшего переноса в основную конфигурацию, например).

18.03.2020    11538    wtlz    35    

Эволюция расширения конфигурации

Практика программирования v8 1cv8.cf Бесплатно (free)

С каждым днем всё больше возможностей появляется в расширении конфигурации, но не все до сих пор работают даже на платформе 8.3.6! Давайте окунемся в историю появления и эволюции расширения конфигурации, чтобы знать и понимать, когда можно применить тот или иной функционал!

06.02.2020    16243    Xershi    47    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    83167    tormozit    131    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    69912    ids79    27    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    45698    John_d    22    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    37581    kuzyara    38    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

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

11.07.2007    55066    tormozit    51    

Мониторим производительность с помощью 1С RAS

Практика программирования v8 1cv8.cf Бесплатно (free)

Подключаемся и анализируем данные через 1С RAS. Необходимо выполнить 5 пунктов и серьезный инструмент мониторинга будет у вас в руках.

19.12.2019    15856    ivanov660    51    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    25540    YPermitin    63    

Обновление релиза измененной типовой конфигурации

Практика программирования v8 1cv8.cf Бесплатно (free)

Пригодится тем, кому еще не приходилось обновлять измененную типовую конфигурацию.

29.11.2019    15897    John_d    76    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    51836    tormozit    74    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Практика программирования v8 Бесплатно (free)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    13013    Sibars    19    

Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм

Практика программирования v8 1cv8.cf Бесплатно (free)

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

10.10.2019    32403    John_d    21    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    55248    Yashazz    56    

Выгрузка документа по условию Промо

Практика программирования v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    18158    m-rv    3    

[Шпаргалка] Программное создание элементов формы

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    110283    rpgshnik    77    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    81392    ids79    56    

Регистры бухгалтерии. Общая информация

Математика и алгоритмы Практика программирования v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    48664    YPermitin    27    

Как настроить правильную техподдержку (helpdesk, service desk на коленке) Промо

Управление услугами и сервисом СRM Документооборот и делопроизводство Монитор заказов Учет рабочего времени СRM Документооборот и делопроизводство Монитор заказов Учет рабочего времени v8 УУ Бесплатно (free)

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

24.04.2019    30636    siddy    0    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    30594    YPermitin    81    

Отслеживание выполнения фонового задания

Практика программирования v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    46441    ids79    22    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    161055    ids79    77    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования v8 Бесплатно (free)

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

16.04.2019    23578    m-rv    18    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019    63739    avalakh    27    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    44260    json    17    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    110984    ids79    18    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    37743    m-rv    23    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    49965    ids79    27    

Регистры сведений. За кулисами

Практика программирования v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    34903    YPermitin    15    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    22805    SeiOkami    53    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    88213    ids79    18    

Регистры накопления. Виртуальные таблицы. Часть №2: "Остатки" и "Остатки и обороты"

Практика программирования v8 1cv8.cf Бесплатно (free)

Описание работы платформы 1С:Предприятие 8.2 с виртуальными таблицами регистров накопления "Остатки" и "Остатки и обороты". Анализ SQL-запрос при работе с виртуальными таблицами

22.05.2019    46883    YPermitin    9    

1Script.Web. Интернет-приложения на языке 1С

Практика программирования v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    22616    Evil Beaver    33    

Регистры накопления. Структура хранения в базе данных

Практика программирования v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    66546    YPermitin    31