{ИмяРегистраСведений}
{ИмяРазработчика}::{ИмяПроекта}::{ИмяПодсистемы}::{ИмяРегистраСведений} Тип-одиночка Доступность: КлиентИСервер
Вспомогательный объект с общей для конкретного регистра сведений функциональностью.
Для периодич еского регистра сведений вызов ПересчитатьРазрешенияДоступаДляОбъектов приводит к инициации вычисления разрешений как на чтение, так и на изменение (вызываются обработчики ComputeAccessKeysForRead и ComputeAccessKeysForUpdate, а тривиальные разрешения из ключей создаются автоматически).
Методы ЗаписатьСЗаменойСуществующей, Записать, УдалитьСПроверкойСуществующей и Удалить предназначены именно для оперирования отдельными записями. В смысле затрат вычислительных ресурсов они менее эффективны (в случае большого количестве записей - существенно) чем использование набора записей.
При этом варианты "без существующей" вообще не обладают ни какой дополнительной функциональностью - т.е. это просто короткий способ создать набор записей, заполнить фильтр из ключа записи, добавить в него запись (только для "Записать") и вызывать метод Записать. Варианты полезны при работе с записями регистра как со ссылочными объектами - с помощью них удобно изменять или удалять отдельные записи (при том что в самом регистре по сути не предусмотрено изменение или удаление - только запись набора записей) - обычно это требуется при реализации UI функциональности (без использования соответствующей стандартной функциональности пользовательского интерфейса).
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект, Одиночка, Стд::РегистрыСведений::РегистрСведений
Методы
ВычислитьКлючиДоступаДляИзменения
Версия 9.0 и выше
ВычислитьКлючиДоступаДляИзменения(Элементы: ЧитаемыйМассив<{ИмяРегистраСведений}.ДанныеРасчетаРазрешений>): ЧитаемоеСоответствие<{ИмяРегистраСведений}.ДанныеРасчетаРазрешений,ЧитаемыйМассив<КлючДоступа.Объект>Примеры
Пример настройки прав, когда право есть только у пользователя, который указан в измерении Пользователь.
метод ВычислитьКлючиДоступаДляИзменения(
Данные: ЧитаемыйМассив<ИмяРегистраСведений.ДанныеРасчетаРазрешений>
): Соответствие<ИмяРегистраСведений.ДанныеРасчетаРазрешений, Массив<КлючДоступа.Объект>>
знч КлючиНаИзменение= <ИмяРегистраСведений.ДанныеРасчетаРазрешений, Массив<КлючДоступа.Объект>>{:}
для Запись из Данные
КлючиНаИзменение.Вставить(Запись, [
новый КлючДоступаПользователя.Объект(Запись.Пользователь)
])
;
возврат КлючиНаИзменение
;
ВычислитьКлючиДоступаДляЧтения
Версия 9.0 и выше
ВычислитьКлючиДоступаДляЧтения(Ключи: ЧитаемыйМассив<{ИмяРегистраСведений}.КлючРазрешенийИзмерений>): ЧитаемоеСоответствие<{ИмяРегистраСведений}.КлючРазрешенийИзмерений,ЧитаемыйМассив<КлючДоступа.Объект>Примеры
Пример настройки прав, когда право е сть только у пользователя, который указан в измерении Пользователь.
метод ВычислитьКлючиДоступаДляЧтения(
Ключи: ЧитаемыйМассив<ИмяРегистраСведений.КлючРазрешенийИзмерений>
): Соответствие<ИмяРегистраСведений.КлючРазрешенийИзмерений, Массив<КлючДоступа.Объект>>
знч КлючиНаЧтение = <ИмяРегистраСведений.КлючРазрешенийИзмерений, Массив<КлючДоступа.Объект>>{:}
для Запись из Ключи
КлючиНаЧтение.Вставить(Запись, [
новый КлючДоступаПользователя.Объект(Запись.Пользователь)
])
;
возврат КлючиНаЧтение
;
ВычислитьРазрешенияДоступаДляОбъектов
Версия 9.0 и выше
ВычислитьРазрешенияДоступаДляОбъектов(Элементы: ЧитаемыйМассив<{ИмяРегистраСведений}.ДанныеРасчетаРазрешений>): ЧитаемоеСоответствие<{ИмяРегистраСведений}.ДанныеРасчетаРазрешений,ЧитаемаяКоллекция<РазрешениеДоступа>Примеры
Пример настройки прав, когда право на чтение есть у всех, а все остальные права только у пользователя, который указан в измерении Пользователь.
метод ВычислитьРазрешенияДоступаДляОбъектов(
Данные: ЧитаемыйМассив<ИмяРегистраСведений.ДанныеРасчетаРазрешений>
): Соответствие<ИмяРегистраСведений.ДанныеРасчетаРазрешений, Массив<РазрешениеДоступа>>
знч Разрешения = <ИмяРегистраСведений.ДанныеРасчетаРазрешений, Массив<РазрешениеДоступа>>{:}
для Запись из Данные
Разрешения.Вставить(Запись, [
новый РазрешениеДоступа(
[новый КлючДоступаДляВсех.Объект()], [Сущность.Право.Чтение]),
новый РазрешениеДоступа(
[новый КлючДоступаПользователя.Объект(Запись.Пользователь)],
[Сущность.Право.Создание, Сущность.Право.Изменение, Сущность.Право.Удаление])
])
;
возврат Разрешения
;
Заблокировать
Доступность: Сервер
Заблокировать(КлючЗаписи: {ИмяРегистраСведений}.КлючЗаписи)Перегрузка
Заблокировать(КлючЗаписи: ИмяРегистраСведений.КлючЗаписи)
Примеры
```xbsl e1cTestContextPath="DefaultProject/DefaultDeveloper/DefaultName/informationregister/InformationRegisterModule.xbsl"
метод ЗаблокироватьПоКлючу(Запись: ЦеныТоваров.Запись)
ЦеныТоваров.Заблокировать(Запись.КлючЗаписи)
;