ОтключитьОбновлениеКлючейДоступа
страницаДля ускорения пакетной обработки данных в текущем сеансе (полноправный пользователь) отключает и включает расчет прав при записи объекта или набора записей (обновление ключей доступа к объектам и к записям регистров, а также прав групп доступа, пользователей и внешних пользователей на новые ключи доступа). Рекомендуется:
- при восстановлении из резервной копии XML;
- массовой загрузке данных из файла;
- массовой загрузке данных при обмене данными;
- групповом изменении объектов.
Синтаксис
Процедура ОтключитьОбновлениеКлючейДоступа(Отключить, ПланироватьОбновление = Истина) ЭкспортПараметры
Отключить— Булево - Истина - отключает обновление ключей доступа и включает режим сбора состава таблиц (списков), для которых будет запланировано обновление ключей доступа при продолжении обновления ключей доступа.Ложь— планирует обновление ключей доступа таблиц, собранных в режиме отключения, и включает стандартный режим обновления ключей доступа.ПланироватьОбновление— Булево - планирование обновления при отключении и продолжении. Когда Отключить = Истина, тогда определяет необходимость сбора состава таблиц, для которых будет запланировано обновление.Ложь— требуется только в режиме загрузки из резервной копии XML, когда загружаются все данные информационной базы, включая все служебные данные. Когда Отключить = Ложь, тогда определяет необходимость планирования обновления для собранных таблиц. Ложь требуется в обработке исключения после отмены транзакции, если есть внешняя транзакция, так как любая запись в базу данных в таком состоянии приведет к ошибке, кроме того, планировать обновление после отмены транзакции не требуется.
Пример вызова
Вариант 1. Запись набора объектов вне транзакции (ТранзакцияАктивна() = Ложь).
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Истина);
Попытка
// Запись набора объектов.
// ...
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь);
Исключение
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь);
//...
ВызватьИсключение;
КонецПопытки;
Вариант 2. Запись набора объектов в транзакции (ТранзакцияАктивна() = Истина).
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Истина);
НачатьТранзакцию();
Попытка
БлокировкаДанных.Заблокировать();
// ...
// Запись набора объектов.
// ...
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
//...
ВызватьИсключение;
КонецПопытки;Доступность
Сервер, Толстый клиент, Внешнее соединение