Документооборот рабочая группа

1. Andrey1210 17.04.18 12:29 Сейчас в теме
Добрый день.
Подскажите как программно добавить пользователя в рабочею группу Внутреннего документа.
В регистр сведению РабочаяГруппа добавляю при открытии документа вижу что пользователь появился но у данного пользователя нет прав на просмотр документа.
Где еще нужно прописать пользователя, чтобы у него права на просмотр появились ?
По теме из базы знаний
Найденные решения
5. Skromnyi 12 17.04.18 13:13 Сейчас в теме
(1) У меня в дополнительном обработчике бизнес-события сделано так:
Секретариат = Справочники.ГруппыПользователей.НайтиПоНаименованию("Секретариат");
                // проверим, есть ли уже группа пользователей "Секретариат" в рабочей группе документа
			ТаблицаУчастников = РаботаСРабочимиГруппами.ПолучитьРабочуюГруппуДокумента(Документ);
			НайденнаяСтрока = ТаблицаУчастников.Найти(Секретариат, "Участник");
			Если НайденнаяСтрока = Неопределено Тогда // не нашли
				ТаблицаНабора = РаботаСРабочимиГруппами.ПолучитьПустуюТаблицуУчастников();
				РаботаСРабочимиГруппами.ДобавитьУчастникаВТаблицуНабора(ТаблицаНабора, Секретариат); 
				РаботаСРабочимиГруппами.ДобавитьУчастниковВРабочуюГруппуОбъекта(Документ, ТаблицаНабора);	
			КонецЕсли;
Показать


Также посмотрите как у Вас происходит расчет прав :отложенное обновление или нет. Если отложенное, то работают ли регламентные задания: Обновление прав (долгое) и Обновление прав (оперативное).
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Skromnyi 12 17.04.18 13:13 Сейчас в теме
(1) У меня в дополнительном обработчике бизнес-события сделано так:
Секретариат = Справочники.ГруппыПользователей.НайтиПоНаименованию("Секретариат");
                // проверим, есть ли уже группа пользователей "Секретариат" в рабочей группе документа
			ТаблицаУчастников = РаботаСРабочимиГруппами.ПолучитьРабочуюГруппуДокумента(Документ);
			НайденнаяСтрока = ТаблицаУчастников.Найти(Секретариат, "Участник");
			Если НайденнаяСтрока = Неопределено Тогда // не нашли
				ТаблицаНабора = РаботаСРабочимиГруппами.ПолучитьПустуюТаблицуУчастников();
				РаботаСРабочимиГруппами.ДобавитьУчастникаВТаблицуНабора(ТаблицаНабора, Секретариат); 
				РаботаСРабочимиГруппами.ДобавитьУчастниковВРабочуюГруппуОбъекта(Документ, ТаблицаНабора);	
			КонецЕсли;
Показать


Также посмотрите как у Вас происходит расчет прав :отложенное обновление или нет. Если отложенное, то работают ли регламентные задания: Обновление прав (долгое) и Обновление прав (оперативное).
7. userOleg 26.07.22 08:12 Сейчас в теме
(1)Скажите, если не секрет, а какова цель программы? может есть более надежные варианты?
2. sergathome 4 17.04.18 12:41 Сейчас в теме
Из обработчика события "ПередЗаписью" справочника ВнутренниеДокументы... :)
	// Добавление участников, переданных "снаружи", например из формы объекта
	Если ДополнительныеСвойства.Свойство("РабочаяГруппаДобавить") Тогда
		
		Для Каждого Эл Из ДополнительныеСвойства.РабочаяГруппаДобавить Цикл
			
			// Добавление участника в итоговую рабочую группу
			Строка = РабочаяГруппа.Добавить();
			Строка.Участник = Эл.Участник;
			Строка.Изменение = Эл.Изменение;
			
		КонецЦикла;	
			
	КонецЕсли;
Показать
3. Andrey1210 17.04.18 13:02 Сейчас в теме
(2) так после записи документа смотрел ДополнительныеСвойства у документа пустое !
4. sergathome 4 17.04.18 13:12 Сейчас в теме
// Добавление участников, переданных "снаружи", например из формы объекта

так-с. читать не умеем. ликбез: У типа СправочникОбъект есть реквизит, которого нет у типа СправочникСсылка - ДополнительныеСвойства. Это структура со свободным составом. Этот реквизит часто используется для передачи в обработчики записи дополнительной информации.

Совсем для чайников - добавление документу, допустим сДокумент, текущего пользователя в РГ с правом изменения:
оДокумент = сДокумент.ПолучитьОбъект();
оДокумент.ДополнительныеСвойства.Вставить("РабочаяГруппаДобавить", Новый Структура("Участник,Изменение", ТекущийПользователь(), Истина));
оДокумент.Записать();
6. psa247 17 26.07.22 07:46 Сейчас в теме
(4) немного поменялась логика. Теперь массив туда передается. итого:

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот