Установка прав доступа программно при миграции с ДО 2.1 в ДО 3.0

1. Arkadag 07.02.24 08:47 Сейчас в теме
Приветствую, Форумчане!
Документооборот 3.0

Занимаюсь вопросами миграции документов из ДО 21. в 3.0

Написал обработку, которая переносит рабочие группы документа.
Рабочая группа в документах 3.0 перенеслась, всё нормально, но вот права доступа для списка пользователей не установилась.

Чтобы права установились требуется установить их в ручную через "Ещё - Документ - Права доступа - Обновить".
Либо открывать каждый документ и "Записать и закрыть"

Как можно программно обновить права доступа для конкретного документа?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Arkadag 07.02.24 12:30 Сейчас в теме
Вопрос снят.
Если кому интересно:

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


Вырезано из большой типовой процедуры.
ОбъектДоступа - СправочникСсылка на обновляемый по правам доступа справочник.
Оставьте свое сообщение

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