Skip to content

Управление доступом

ЕстьРоль

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

Пример вызова

Результат = УправлениеДоступом.ЕстьРоль(Роль, СсылкаНаОбъект, Пользователь);

ЕстьПраво

Описание, пример вызова
// Проверяет, что для пользователя настроено разрешение права для объекта.
// Например, для папки файлов могут быть настроены права "УправлениеПравами", "Чтение", "ИзменениеПапок",
// причем право "Чтение" является как правом для папки файлов, так и правом для файлов.
//
// Параметры:
// Право - Строка - имя права, как оно указано в процедуре ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов
// общего модуля УправлениеДоступомПереопределяемый.
//
// СсылкаНаОбъект - СправочникСсылка
// - ПланВидовХарактеристикСсылка - ссылка на одного из владельцев прав,
// указанных в процедуре ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов
// общего модуля УправлениеДоступомПереопределяемый, например ссылка на папку файлов.
//
// Пользователь - СправочникСсылка.Пользователи
// - СправочникСсылка.ВнешниеПользователи
// - Неопределено - если параметр не указан,
// тогда право проверяется для текущего пользователя.
//
// Возвращаемое значение:
// Булево - если Истина, то настроено разрешение права с учетом всех разрешающих и
// запрещающих настроек в иерархии.
//
Функция ЕстьПраво(Право, СсылкаНаОбъект, Знач Пользователь = Неопределено) Экспорт

Пример вызова

Результат = УправлениеДоступом.ЕстьПраво(Право, СсылкаНаОбъект, Пользователь);

ЧтениеРазрешено

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

Пример вызова

Результат = УправлениеДоступом.ЧтениеРазрешено(ОписаниеДанных, Пользователь);

ИзменениеРазрешено

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

Пример вызова

Результат = УправлениеДоступом.ИзменениеРазрешено(ОписаниеДанных, Пользователь);

ПроверитьЧтениеРазрешено

Описание, пример вызова
// Делает тоже, что функция ЧтениеРазрешено, но если не разрешено, вызывается исключение.
//
// Параметры:
// ОписаниеДанных - см. ЧтениеРазрешено.ОписаниеДанных
//
Процедура ПроверитьЧтениеРазрешено(ОписаниеДанных) Экспорт

Пример вызова

УправлениеДоступом.ПроверитьЧтениеРазрешено(ОписаниеДанных)

ПроверитьИзменениеРазрешено

Описание, пример вызова
// Делает тоже, что функция ИзменениеРазрешено, но если не разрешено, вызывается исключение.
//
// Параметры:
// ОписаниеДанных - см. ИзменениеРазрешено.ОписаниеДанных
//
Процедура ПроверитьИзменениеРазрешено(ОписаниеДанных) Экспорт

Пример вызова

УправлениеДоступом.ПроверитьИзменениеРазрешено(ОписаниеДанных)

ПраваДоступаКДанным

Описание, пример вызова
// Возвращает права Чтение и Изменение указанных или всех пользователей и
// внешних пользователей на указанный существующий элемент данных или их массив.
// Для использования требуются административные права или привилегированный режим.
// Служебные пользователи пропускаются.
//
// Если объект не существует или на него не рассчитаны права, тогда для него вернется пустой список прав.
// Аналогично, если записей регистра не существует, тогда для них вернется пустой список прав.
// Если имя поля ключа записи регистра совпадает с именем одной из колонок возвращаемой таблицы
// "ПользовательСПравом" или "ПравоИзменение", тогда оно будет дополнено нижним подчеркиванием слева.
//
// В отличие от функций ЧтениеРазрешено, ИзменениеРазрешено и
// процедур ПроверитьЧтениеРазрешено, ПроверитьИзменениеРазрешено,
// права для текущего пользователя возвращаются по состоянию в базе данных,
// а не по состоянию сеанса (если права были изменены после запуска сеанса).
//
// Важно: требуется производительный вариант ограничения доступа.
// Для проверки варианта работы предусмотрена функция ПроизводительныйВариант.
//
// Параметры:
// ОписаниеДанных - СправочникСсылка
// - ДокументСсылка
// - ПланВидовХарактеристикСсылка
// - ПланСчетовСсылка
// - ПланВидовРасчетаСсылка
// - БизнесПроцессСсылка
// - ЗадачаСсылка
// - ПланОбменаСсылка - ссылка на объект.
// - Массив из СправочникСсылка
// - Массив из ДокументСсылка
// - Массив из ПланВидовХарактеристикСсылка
// - Массив из ПланСчетовСсылка
// - Массив из ПланВидовРасчетаСсылка
// - Массив из БизнесПроцессСсылка
// - Массив из ЗадачаСсылка
// - Массив из ПланОбменаСсылка - массив ссылок на объекты одного типа.
// - РегистрСведенийКлючЗаписи
// - РегистрНакопленияКлючЗаписи
// - РегистрБухгалтерииКлючЗаписи
// - РегистрРасчетаКлючЗаписи - ключ записи,
// по которому определяется запись в базе данных для получения прав.
// - РегистрСведенийНаборЗаписей
// - РегистрНакопленияНаборЗаписей
// - РегистрБухгалтерииНаборЗаписей
// - РегистрРасчетаНаборЗаписей - набор записей с настроенным свойством Отбор,
// по которому определяются записи в базе данных для получения прав.
// Если свойство Отбор не установлено, а набор записей непустой,
// тогда будут возвращены права для записей, содержащихся в наборе записей
// (у записей в наборе записей используются только значения измерений).
//
// ДляВнешнихПользователей - Булево - если Истина, тогда вернуть права для внешних пользователей.
// - Неопределено - вернуть для пользователей и внешних пользователей.
//
// СоставПользователей - Неопределено - вернуть всех пользователей, у которых есть права.
// - Массив из СправочникСсылка.Пользователи, СправочникСсылка.ВнешниеПользователи - список
// пользователей для которых нужно вернуть права, если есть.
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * ПользовательСПравом - СправочникСсылка.Пользователи
// - СправочникСсылка.ВнешниеПользователи - пользователь, если есть хотя бы право Чтение.
// * ПравоИзменение - Булево - Истина, если есть право Изменение и право Чтение,
// Ложь, если есть только право Чтение.
// <Поле Ссылка или поля ключа записи регистра>.
//
Функция ПраваДоступаКДанным(ОписаниеДанных, ДляВнешнихПользователей = Ложь, СоставПользователей = Неопределено) Экспорт

Пример вызова

Результат = УправлениеДоступом.ПраваДоступаКДанным(ОписаниеДанных, ДляВнешнихПользователей, СоставПользователей);

ВключитьПрофильПользователю

Описание, пример вызова
// Назначение пользователю профиля групп доступа путем включения
// в персональную группу доступа (только для упрощенной настройки прав).
//
// Параметры:
// Пользователь - СправочникСсылка.Пользователи
// - СправочникСсылка.ВнешниеПользователи - требуемый пользователь.
// Профиль - СправочникСсылка.ПрофилиГруппДоступа - профиль, для которого нужно найти или создать персональную
// группу доступа и включить в нее пользователя.
// - УникальныйИдентификатор - уникальный идентификатор поставляемого профиля,
// с помощью которого нужно найти профиль групп доступа.
// - Строка - имя поставляемого профиля,
// с помощью которого нужно найти профиль групп доступа.
//
Процедура ВключитьПрофильПользователю(Пользователь, Профиль) Экспорт

Пример вызова

УправлениеДоступом.ВключитьПрофильПользователю(Пользователь, Профиль)

ВыключитьПрофильПользователю

Описание, пример вызова
// Отмена назначения пользователю профиля групп доступа путем исключения
// из персональной группы доступа (только для упрощенной настройки прав).
//
// Параметры:
// Пользователь - СправочникСсылка.Пользователи
// - СправочникСсылка.ВнешниеПользователи - требуемый пользователь.
// Профиль - СправочникСсылка.ПрофилиГруппДоступа - профиль, для которого нужно найти или создать персональную
// группу доступа и включить в нее пользователя.
// - УникальныйИдентификатор - уникальный идентификатор поставляемого профиля,
// с помощью которого нужно найти профиль групп доступа.
// - Строка - имя поставляемого профиля,
// с помощью которого нужно найти профиль групп доступа.
// - Неопределено - выключить пользователю все профили.
//
Процедура ВыключитьПрофильПользователю(Пользователь, Профиль = Неопределено) Экспорт

Пример вызова

УправлениеДоступом.ВыключитьПрофильПользователю(Пользователь, Профиль);

ОграничиватьДоступНаУровнеЗаписей

Описание, пример вызова
// Проверяет, используется ли ограничение доступа на уровне записей.
//
// Возвращаемое значение:
// Булево - если Истина, тогда доступ ограничивается на уровне записей.
//
Функция ОграничиватьДоступНаУровнеЗаписей() Экспорт

Пример вызова

Результат = УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей()

ПроизводительныйВариант

Описание, пример вызова
// Возвращает вариант работы ограничений доступа на уровне записей.
//
// Требуется при расширенном использовании функций
// ЧтениеРазрешено и ИзменениеРазрешено в производительном варианте.
//
// Возвращаемое значение:
// Булево - если Ложь, стандартный вариант, иначе производительный.
//
Функция ПроизводительныйВариант() Экспорт

Пример вызова

Результат = УправлениеДоступом.ПроизводительныйВариант()

ПриЧтенииНаСервере

Описание, пример вызова
// Обработчик события формы ПриЧтенииНаСервере, который встраивается в формы элементов справочников,
// документов, записей регистров и др., чтобы заблокировать форму, если изменение запрещено.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма элемента объекта или записи регистра.
//
// ТекущийОбъект - СправочникОбъект
// - ДокументОбъект
// - ПланВидовХарактеристикОбъект
// - ПланСчетовОбъект
// - ПланВидовРасчетаОбъект
// - БизнесПроцессОбъект
// - ЗадачаОбъект
// - ПланОбменаОбъект - проверяемый объект.
// - РегистрСведенийМенеджерЗаписи - менеджер проверяемой записи.
// - РегистрСведенийНаборЗаписей
// - РегистрНакопленияНаборЗаписей
// - РегистрБухгалтерииНаборЗаписей
// - РегистрРасчетаНаборЗаписей - набор проверяемых записей.
//
Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект) Экспорт

Пример вызова

УправлениеДоступом.ПриЧтенииНаСервере(Форма, ТекущийОбъект)

ПослеЗаписиНаСервере

Описание, пример вызова
// Обработчик события формы ПослеЗаписиНаСервере, который встраивается в формы
// элементов справочников, документов, записей регистров и др., чтобы ускорить
// запуск обновления доступа зависимых объектов, когда обновление запланировано.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма элемента объекта или записи регистра.
//
// ТекущийОбъект - СправочникОбъект
// - ДокументОбъект
// - ПланВидовХарактеристикОбъект
// - ПланСчетовОбъект
// - ПланВидовРасчетаОбъект
// - БизнесПроцессОбъект
// - ЗадачаОбъект
// - ПланОбменаОбъект - проверяемый объект.
// - РегистрСведенийМенеджерЗаписи - менеджер проверяемой записи.
//
// ПараметрыЗаписи - Структура - стандартный параметр, передаваемый в обработчик события.
//
Процедура ПослеЗаписиНаСервере(Форма, ТекущийОбъект, ПараметрыЗаписи) Экспорт

Пример вызова

УправлениеДоступом.ПослеЗаписиНаСервере(Форма, ТекущийОбъект, ПараметрыЗаписи)

ПриСозданииФормыЗначенияДоступа

Описание, пример вызова
// АПК:142-выкл - №640.5 Необязательных параметров более 3 для обратной совместимости.
// Настраивает форму значения доступа, которое использует группы значений доступа
// для выбора разрешенных значений в группах доступа пользователей.
//
// Поддерживается только для случая, когда у значения доступа выбирается одна группа значений доступа,
// а не несколько.
//
// Для элемента формы ГруппаДоступа, связанного с реквизитом ГруппаДоступа, устанавливает
// список групп значений доступа в параметр выбора, которые дают доступ на изменение значения доступа.
//
// При создании нового значения доступа, если количество групп значений доступа, которые дают доступ
// на изменение значения доступа, равно нулю, будет вызвано исключение.
//
// Если в базе данных уже записана группа значений доступа, которая не дает доступ на изменение значения доступа,
// или количество групп значений доступа, которые дают доступ на изменение значения доступа, равно нулю,
// тогда свойство формы ТолькоПросмотр устанавливается в Истина.
//
// Если ограничение на уровне записей не используется или ограничение по виду доступа не используется,
// тогда элемент формы скрывается.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма значения доступа,
// использующего группы для выбора разрешенных значений.
//
// ДополнительныеПараметры - см. ПараметрыПриСозданииФормыЗначенияДоступа
//
// УдалитьЭлементы - Неопределено - устарел, следует использовать ДополнительныеПараметры.
// УдалитьТипЗначения - Неопределено - устарел, следует использовать ДополнительныеПараметры.
// УдалитьСозданиеНового - Неопределено - устарел, следует использовать ДополнительныеПараметры.
//
Процедура ПриСозданииФормыЗначенияДоступа(Форма, ДополнительныеПараметры = Неопределено, Экспорт

Пример вызова

УправлениеДоступом.ПриСозданииФормыЗначенияДоступа(Форма, ДополнительныеПараметры, );

ПараметрыПриСозданииФормыЗначенияДоступа

Описание, пример вызова
// АПК:142-вкл.
// Описание дополнительных параметров, используемых в процедуре ПриСозданииФормыЗначенияДоступа.
//
// Возвращаемое значение:
// Структура:
// * Реквизит - Неопределено - означает имя реквизита формы "Объект.ГруппаДоступа".
// - Строка - имя реквизита формы, содержащего группу доступа.
//
// * Элементы - Неопределено - означает имя элемента формы "ГруппаДоступа".
// - Строка - имя элемента формы.
// - Массив - имена элементов формы.
//
// * ТипЗначения - Неопределено - означает: получить тип из реквизита формы "Объект.Ссылка".
// - Тип - тип ссылки значения доступа.
//
// * СозданиеНового - Неопределено - означает: получить значение "НЕ ЗначениеЗаполнено(Форма.Объект.Ссылка)"
// для определения того, создается новое значение доступа или нет.
// - Булево - используется указанное значение.
//
Функция ПараметрыПриСозданииФормыЗначенияДоступа() Экспорт

Пример вызова

Результат = УправлениеДоступом.ПараметрыПриСозданииФормыЗначенияДоступа()

ГруппыЗначенийДоступаРазрешающиеИзменениеЗначенийДоступа

Описание, пример вызова
// Возвращает массив групп значений доступа, разрешающих изменять значения доступа.
//
// Поддерживается только для случая, когда выбирается одна группа значений доступа, а не несколько.
//
// Параметры:
// ТипЗначенийДоступа - Тип - тип ссылки значений доступа.
// ВозвращатьВсе - Булево - если Истина, то в случае, когда нет ограничений
// (доступны все), будет возвращен массив всех вместо Неопределено.
//
// Возвращаемое значение:
// Неопределено - все группы значений доступа разрешают изменять значения доступа.
// Массив - массив найденных групп значений доступа.
//
Функция ГруппыЗначенийДоступаРазрешающиеИзменениеЗначенийДоступа(ТипЗначенийДоступа, ВозвращатьВсе = Ложь) Экспорт

Пример вызова

Результат = УправлениеДоступом.ГруппыЗначенийДоступаРазрешающиеИзменениеЗначенийДоступа(ТипЗначенийДоступа, ВозвращатьВсе);

НастроитьОтборыДинамическогоСписка

Описание, пример вызова
// Устанавливает в условие ГДЕ динамического списка постоянные отборы
// на основе разрешенных значений доступа указанных типов в рамках всех групп доступа.
// Это позволяет в отдельных случаях ускорить открытие динамического списка.
// Если количество разрешенных значений в общей сложности получилось более 100, отбор не устанавливается.
//
// Для работы процедуры у динамического списка должна быть установлена основная таблица,
// установлен произвольный запрос, а также должно поддерживаться преобразование вида:
// СхемаЗапроса = Новый СхемаЗапроса;
// СхемаЗапроса.УстановитьТекстЗапроса(Список.ТекстЗапроса);
// Список.ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
// Если это условие выполнить не удается, тогда следует добавлять отборы самостоятельно
// с использованием функции РазрешенныеЗначенияДляДинамическогоСписка, как в этой процедуре.
//
// Параметры:
// Список - ДинамическийСписок - динамический список, в который нужно установить отборы.
// ОписаниеОтборов - Соответствие из КлючИЗначение:
// * Ключ - Строка - имя поля основной таблицы динамического списка, для которого
// нужно установить условие <Поле> В (&РазрешенныеЗначения).
// * Значение - Тип - тип значений доступа, которые нужно включить в состав
// параметра "&РазрешенныеЗначения".
// - Массив - массив указанных выше типов.
//
Процедура НастроитьОтборыДинамическогоСписка(Список, ОписаниеОтборов) Экспорт

Пример вызова

УправлениеДоступом.НастроитьОтборыДинамическогоСписка(Список, ОписаниеОтборов)

РазрешенныеЗначенияДляДинамическогоСписка

Описание, пример вызова
// Возвращает массив разрешенных значений указанных типов в рамках всех групп доступа.
// Используется в процедуре НастроитьОтборыДинамическогоСписка для ускорения открытия динамических списков.
//
// Параметры:
// Таблица - Строка - полное имя объекта метаданных, например "Документ.РасходнаяНакладная".
// ТипЗначений - Тип - тип значений доступа, разрешенные значения которых нужно вернуть.
// - Массив - массив указанных выше типов.
// Пользователь - Неопределено - вернуть разрешенные значения для авторизованного пользователя.
// - СправочникСсылка.Пользователи
// - СправочникСсылка.ВнешниеПользователи - вернуть
// разрешенные значения для указанного пользователя.
// ВернутьВсе - Булево - если установить в Истина, тогда будут возвращены все значения - даже тогда,
// когда их более 100.
//
// Возвращаемое значение:
// Неопределено - либо все значения разрешены для типов, указанных в параметре ТипЗначений,
// либо (когда ВернутьВсе = Ложь) количество разрешенных значений превышает 100.
// Массив - ссылки разрешенных значений указанных типов.
//
Функция РазрешенныеЗначенияДляДинамическогоСписка(Таблица, ТипЗначений, Пользователь = Неопределено, ВернутьВсе = Ложь) Экспорт

Пример вызова

Результат = УправлениеДоступом.РазрешенныеЗначенияДляДинамическогоСписка(Таблица, ТипЗначений, Пользователь, ВернутьВсе);

ПраваПоИдентификаторам

Описание, пример вызова
// Возвращает права доступа к объектам метаданных ссылочного типа по указанным идентификаторам.
//
// Параметры:
// Идентификаторы - Массив - значения СправочникСсылка.ИдентификаторыОбъектовМетаданных,
// объектов ссылочного типа, для которых нужно вернуть права.
//
// Возвращаемое значение:
// Соответствие из КлючИЗначение:
// * Ключ - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор типа;
// * Значение - Структура:
// ** Ключ - Строка - имя права доступа ("Чтение", "Изменение", "Добавление");
// ** Значение - Булево - если Истина, тогда право есть, иначе нет.
//
Функция ПраваПоИдентификаторам(Идентификаторы = Неопределено) Экспорт

Пример вызова

Результат = УправлениеДоступом.ПраваПоИдентификаторам(Идентификаторы);

ВозможноЗаполнитьНаборыЗначенийДоступа

Описание, пример вызова
// Проверяет, предусмотрена ли для объекта метаданных процедура заполнения наборов значений доступа.
//
// Параметры:
// Ссылка - ЛюбаяСсылка - ссылка на любой объект.
//
// Возвращаемое значение:
// Булево - если Истина, наборы значений доступа можно заполнить.
//
Функция ВозможноЗаполнитьНаборыЗначенийДоступа(Ссылка) Экспорт

Пример вызова

Результат = УправлениеДоступом.ВозможноЗаполнитьНаборыЗначенийДоступа(Ссылка)

ТаблицаНаборыЗначенийДоступа

Описание, пример вызова
// Возвращает пустую таблицу, которая заполняется для передачи в функцию ЕстьРоль и
// в процедуры ЗаполнитьНаборыЗначенийДоступа(Таблица), определенные прикладным разработчиком.
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * НомерНабора - Число - необязательно, если набор один.
// * ВидДоступа - Строка - необязательно, кроме специальных: ПравоЧтения, ПравоИзменения.
// * ЗначениеДоступа - ОпределяемыйТип.ЗначениеДоступа - тип значения доступа, указанный для вида доступа
// в процедуре ПриЗаполненииВидовДоступа общего модуля УправлениеДоступомПереопределяемый.
// * Чтение - Булево - необязательно, если набор для всех прав, устанавливается для одной строки набора.
// * Изменение - Булево - необязательно, если набор для всех прав, устанавливается для одной строки набора.
//
Функция ТаблицаНаборыЗначенийДоступа() Экспорт

Пример вызова

Результат = УправлениеДоступом.ТаблицаНаборыЗначенийДоступа()

ЗаполнитьНаборыЗначенийДоступа

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

Пример вызова

УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа(Объект, Таблица, СсылкаНаПодчиненныйОбъект);

ДобавитьНаборыЗначенийДоступа

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

Пример вызова

УправлениеДоступом.ДобавитьНаборыЗначенийДоступа(Приемник, Источник, Умножение, Упростить);

ОбновитьНаборыЗначенийДоступа

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

Пример вызова

УправлениеДоступом.ОбновитьНаборыЗначенийДоступа(СсылкаИлиОбъект, ОбновлениеИБ);

НовоеОписаниеПрофиляГруппДоступа

Описание, пример вызова
// Возвращает структуру для удобства описания поставляемых профилей.
//
// Возвращаемое значение:
// Структура:
// * Имя - Строка - может использоваться в программном интерфейсе,
// например, в процедуре ВключитьПрофильПользователю.
// * Родитель - Строка - имя папки профилей, в которую входит профиль.
// * Идентификатор - Строка - строка уникального идентификатора поставляемого
// профиля, которая используется для поиска в базе данных.
// Чтобы получить идентификатор, нужно создать профиль в режиме 1С:Предприятие и
// получить уникальный идентификатор ссылки. Не следует указывать идентификаторы,
// полученные произвольным способом, т.к. это может нарушить уникальность ссылок.
// * Наименование - Строка - наименование поставляемого профиля.
// * Описание - Строка - описание поставляемого профиля.
// * Роли - Массив из Строка - имена ролей поставляемого профиля.
// * Назначение - Массив из Тип - типы ссылок пользователя и объектов авторизации внешних
// пользователей. Если пустой, значит, назначение для пользователей.
// Должны быть в пределах состава определяемого типа Пользователь.
// * ВидыДоступа - СписокЗначений:
// ** Значение - Строка - имя вида доступа, указанного в переопределяемом
// модуле УправлениеДоступомПереопределяемый в процедуре ПриЗаполненииВидовДоступа.
// ** Представление - Строка - допустимы строки "ВначалеВсеЗапрещены" (или пустая строка),
// "ВначалеВсеРазрешены", "Предустановленный".
//
// * ЗначенияДоступа - СписокЗначений:
// ** Значение - Строка - имя вида доступа, указанного в параметре ВидыДоступа.
// ** Представление - Строка - имя предопределенного элемента, например
// "Справочник.ГруппыПользователей.ВсеПользователи".
//
// * ЭтоПапка - Булево - всегда Ложь. Нельзя изменять.
//
// Пример:
//
// // Профиль "Пользователь".
// ОписаниеПрофиля = УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();
// ОписаниеПрофиля.Имя = "Пользователь";
// ОписаниеПрофиля.Идентификатор = "09e56dbf-90a0-11de-862c-001d600d9ad2";
// ОписаниеПрофиля.Наименование = НСтр("ru = 'Пользователь'", ОбщегоНазначения.КодОсновногоЯзыка());
// // Переопределение назначения.
// ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОписаниеПрофиля.Назначение,
// Метаданные.ОпределяемыеТипы.ВнешнийПользователь.Тип.Типы());
// ОписаниеПрофиля.Описание =
// НСтр("ru = 'Общие разрешенные действия для большинства пользователей.
// |Как правило, это права на просмотр данных информационной системы.'");
// // Использование 1С:Предприятия.
// ОписаниеПрофиля.Роли.Добавить("ЗапускТонкогоКлиента");
// ОписаниеПрофиля.Роли.Добавить("ВыводНаПринтерФайлБуферОбмена");
// ОписаниеПрофиля.Роли.Добавить("СохранениеДанныхПользователя");
// // ...
// // Использование программы.
// ОписаниеПрофиля.Роли.Добавить("БазовыеПраваБСП");
// ОписаниеПрофиля.Роли.Добавить("ПросмотрОписанияИзмененийПрограммы");
// ОписаниеПрофиля.Роли.Добавить("ИзменениеТекущегоПользователя");
// // ...
// // Использование НСИ.
// ОписаниеПрофиля.Роли.Добавить("ЧтениеБазовойНСИ");
// ОписаниеПрофиля.Роли.Добавить("ЧтениеОбщейБазовойНСИ");
// // ...
// // Типовые возможности.
// ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеЛичныхВариантовОтчетов");
// ОписаниеПрофиля.Роли.Добавить("ПросмотрСвязанныеДокументы");
// // ...
// // Основные возможности профиля.
// ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеЗаметок");
// ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеНапоминаний");
// ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеЗаданий");
// ОписаниеПрофиля.Роли.Добавить("ИзменениеВыполнениеЗадач");
// // ...
// // Виды ограничения доступа профиля.
// ОписаниеПрофиля.ВидыДоступа.Добавить("Организации");
// ОписаниеПрофиля.ВидыДоступа.Добавить("Пользователи", "Предустановленный");
// ОписаниеПрофиля.ВидыДоступа.Добавить("ХозяйственныеОперации", "Предустановленный");
// ОписаниеПрофиля.ЗначенияДоступа.Добавить("ХозяйственныеОперации",
// "Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику");
// // ...
// ОписанияПрофилей.Добавить(ОписаниеПрофиля);
//
Функция НовоеОписаниеПрофиляГруппДоступа() Экспорт

Пример вызова

Результат = УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа()

НовоеОписаниеПапкиПрофилейГруппДоступа

Описание, пример вызова
// Возвращает структуру для удобства описания поставляемых папок профилей (групп элементов).
//
// Возвращаемое значение:
// Структура:
// * Имя - Строка - используется в поле Родитель для профиля и папки профилей.
// * Родитель - Строка - имя другой папки профилей, в которую входит эта папка.
// * Идентификатор - Строка - строка уникального идентификатора поставляемой папки
// профиля, которая используется для поиска в базе данных.
// Чтобы получить идентификатор, нужно создать папку профилей в режиме 1С:Предприятие и
// получить уникальный идентификатор ссылки. Не следует указывать идентификаторы,
// полученные произвольным способом, т.к. это может нарушить уникальность ссылок.
// * Наименование - Строка - наименование поставляемой папки профилей.
// * ЭтоПапка - Булево - всегда Истина. Нельзя изменять.
//
// Пример:
// // Папка профилей "Дополнительные профили".
// ОписаниеПапки = УправлениеДоступом.НовоеОписаниеПапкиПрофилейГруппДоступа();
// ОписаниеПапки.Имя = "ДополнительныеПрофили";
// ОписаниеПапки.Идентификатор = "";
// ОписаниеПапки.Наименование = НСтр("ru = 'Дополнительные профили'", ОбщегоНазначения.КодОсновногоЯзыка());
// // ...
// ОписанияПрофилей.Добавить(ОписаниеПрофиля);
//
Функция НовоеОписаниеПапкиПрофилейГруппДоступа() Экспорт

Пример вызова

Результат = УправлениеДоступом.НовоеОписаниеПапкиПрофилейГруппДоступа()

ДобавитьДополнительныеТипыВидаДоступа

Описание, пример вызова
// Добавляет дополнительные типы в процедуре ПриЗаполненииВидовДоступа
// общего модуля УправлениеДоступомПереопределяемый.
//
// Параметры:
// ВидДоступа - СтрокаТаблицыЗначений - добавленная в параметр ВидыДоступа.
// ТипЗначений - Тип - дополнительный тип значений доступа.
// ТипГруппЗначений - Тип - дополнительный тип групп значений доступа, может совпадать
// с типом групп значений, указанным ранее для этого же вида доступа.
// НесколькоГруппЗначений - Булево - Истина, если у дополнительного типа значений доступа
// можно указать несколько групп значений (есть табличная часть ГруппыДоступа).
//
Процедура ДобавитьДополнительныеТипыВидаДоступа(ВидДоступа, ТипЗначений, Экспорт

Пример вызова

УправлениеДоступом.ДобавитьДополнительныеТипыВидаДоступа(ВидДоступа, ТипЗначений, );

ЗаменитьРолиВПрофилях

Описание, пример вызова
// Заменяет роли в профилях, кроме поставляемых профилей, которые обновляются автоматически.
// Предназначена для вызова из оперативного обработчика обновления.
//
// Параметры:
// ЗаменяемыеРоли - Соответствие из КлючИЗначение:
// * Ключ - Строка - имя заменяемой роли, например "ЧтениеБазовойНСИ". Если роль была удалена,
// то к имени нужно добавить приставку "? ", например "? ЧтениеБазовойНСИ".
//
// * Значение - Массив - имена ролей для замены указанной (пустой массив, чтобы удалить указанную роль,
// можно указывать заменяемую роль, например, при разделении на несколько).
//
Процедура ЗаменитьРолиВПрофилях(ЗаменяемыеРоли) Экспорт

Пример вызова

УправлениеДоступом.ЗаменитьРолиВПрофилях(ЗаменяемыеРоли)

ПоставляемыйПрофильПоИдентификатору

Описание, пример вызова
// Возвращает ссылку на поставляемый профиль или папку профилей по идентификатору.
//
// Параметры:
// Идентификатор - Строка - имя или уникальный идентификатор поставляемого профиля или папки профилей,
// как указано в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа
// общего модуля УправлениеДоступомПереопределяемый.
//
// Возвращаемое значение:
// СправочникСсылка.ПрофилиГруппДоступа - если поставляемый профиль или папка профилей найдена в справочнике.
// Неопределено - если поставляемый профиль или папка профилей не существует в справочнике.
//
Функция ПоставляемыйПрофильПоИдентификатору(Идентификатор) Экспорт

Пример вызова

Результат = УправлениеДоступом.ПоставляемыйПрофильПоИдентификатору(Идентификатор)

ПрофильАдминистратор

Описание, пример вызова
// Возвращает ссылку на стандартный поставляемый профиль Администратор.
//
// Возвращаемое значение:
// СправочникСсылка.ПрофилиГруппДоступа
//
Функция ПрофильАдминистратор() Экспорт

Пример вызова

Результат = УправлениеДоступом.ПрофильАдминистратор()

ГруппаДоступаАдминистраторы

Описание, пример вызова
// Возвращает ссылку на стандартную поставляемую группу доступа Администраторы.
//
// Возвращаемое значение:
// СправочникСсылка.ГруппыДоступа
//
Функция ГруппаДоступаАдминистраторы() Экспорт

Пример вызова

Результат = УправлениеДоступом.ГруппаДоступаАдминистраторы()

ТаблицаЗаменыПравВНастройкахПравОбъектов

Описание, пример вызова
// Возвращает пустую таблицу для заполнения и
// передачи в процедуру ЗаменитьПраваВНастройкахПравОбъектов.
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * ТипВладельцев - ОпределяемыйТип.ВладелецНастроекПрав - пустая ссылка типа владельца прав,
// например пустая ссылка справочника ПапкиФайлов.
// * СтароеИмя - Строка - старое имя права.
// * НовоеИмя - Строка - новое имя права.
//
Функция ТаблицаЗаменыПравВНастройкахПравОбъектов() Экспорт

Пример вызова

Результат = УправлениеДоступом.ТаблицаЗаменыПравВНастройкахПравОбъектов()

ЗаменитьПраваВНастройкахПравОбъектов

Описание, пример вызова
// Заменяет права, используемые в настройках прав объектов.
// После выполнения замены будет выполнено обновление вспомогательных данных
// регистра сведений НастройкиПравОбъектов, поэтому следует вызвать
// процедуру однократно, чтобы не снижать производительность.
//
// Параметры:
// ТаблицаПереименований - ТаблицаЗначений:
// * ТипВладельцев - ОпределяемыйТип.ВладелецНастроекПрав - пустая ссылка типа владельца прав,
// например пустая ссылка справочника ПапкиФайлов.
// * СтароеИмя - Строка - старое имя права, относящееся к указанному типу владельцев.
// * НовоеИмя - Строка - новое имя права, относящееся к указанному типу владельцев.
// Если указана пустая строка, настройка старого права будет удалена.
// Если старому имени поставлены в соответствие два новых имени,
// тогда одна старая настройка будет размножена в две новых.
//
Процедура ЗаменитьПраваВНастройкахПравОбъектов(ТаблицаПереименований) Экспорт

Пример вызова

УправлениеДоступом.ЗаменитьПраваВНастройкахПравОбъектов(ТаблицаПереименований)

ОбновитьРолиПользователей

Описание, пример вызова
// Обновляет список ролей пользователей информационной базы по их текущим принадлежностям
// к группам доступа. Пользователи ИБ с ролью "ПолныеПрава" пропускаются.
//
// Параметры:
// МассивПользователей - Массив
// - Неопределено
// - Тип - массив из элементов
// СправочникСсылка.Пользователи или СправочникСсылка.ВнешниеПользователи.
// Если Неопределено, то обновить роли всех пользователей.
// Если Тип = Справочник.ВнешниеПользователи, то будут обновлены роли всех внешних пользователей,
// иначе будут обновлены роли всех пользователей.
//
// ПарольПользователяСервиса - Строка - пароль для авторизации в менеджере сервиса.
//
Процедура ОбновитьРолиПользователей(Знач МассивПользователей = Неопределено, Знач ПарольПользователяСервиса = Неопределено) Экспорт

Пример вызова

УправлениеДоступом.ОбновитьРолиПользователей(МассивПользователей, ПарольПользователяСервиса);

ОбновитьРазрешенныеЗначенияПриИзмененииИспользованияВидовДоступа

Описание, пример вызова
// Обновляет содержание регистров ЗначенияГруппДоступа и ЗначенияГруппДоступаПоУмолчанию,
// которые заполняются на основании настроек в группах доступа и использования видов доступа.
//
Процедура ОбновитьРазрешенныеЗначенияПриИзмененииИспользованияВидовДоступа() Экспорт

Пример вызова

УправлениеДоступом.ОбновитьРазрешенныеЗначенияПриИзмененииИспользованияВидовДоступа()

ЗаполнениеДанныхДляОграниченияДоступа

Описание, пример вызова
// Выполняет последовательное заполнение и частичное обновление данных, необходимых для работы
// подсистемы УправлениеДоступом в режиме ограничения доступа на уровне записей.
//
// При включенном режиме ограничения доступа на уровне записей заполняет наборы
// значений доступа. Заполнение выполняется частями при каждом запуске, пока все
// наборы значений доступа не будут заполнены.
//
// При отключении режима ограничения доступа на уровне записей наборы значений доступа
// (заполненные ранее) удаляются при перезаписи объектов, а не все сразу.
//
// Независимо от режима ограничения доступа на уровне записей обновляет вторичные данные -
// группы значений доступа и дополнительные поля в существующих наборах значений доступа.
// После завершения всех обновлений и заполнений отключает использование регламентного задания.
//
// Сведения о состоянии работы записываются в журнал регистрации.
// Возможно вызывать программно, например при обновлении информационной базы.
//
// Параметры:
// КоличествоДанных - Число - возвращаемое значение. Количество объектов данных,
// для которых было выполнено заполнение.
//
Процедура ЗаполнениеДанныхДляОграниченияДоступа(КоличествоДанных = 0) Экспорт

Пример вызова

УправлениеДоступом.ЗаполнениеДанныхДляОграниченияДоступа(КоличествоДанных);

ОтключитьОбновлениеКлючейДоступа

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

Пример вызова

УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Отключить, ПланироватьОбновление);

ДобавитьОбработчикОбновленияДляВключенияУниверсальногоОграничения

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

Пример вызова

УправлениеДоступом.ДобавитьОбработчикОбновленияДляВключенияУниверсальногоОграничения(Версия, Обработчики, );

ЗапланироватьОбновлениеДоступа

Описание, пример вызова
// Планирует обновление доступа для указанной таблицы.
// Будут проверены и обновлены ключи доступа всех объектов указанной таблицы, если не актуальны.
// Будут пересчитаны и обновлены права на все ключи доступа объектов указанной таблицы, если не актуальны.
//
// Требуется при исправлении специфических прикладных ошибок, из-за которых может потребоваться актуализация
// ключей доступа или прав на ключи доступа, но система не выявила эту необходимость автоматически.
//
// Параметры:
// Таблица - Строка - полное имя объекта метаданных.
// - Массив из Строка - полные имена объектов метаданных.
//
Процедура ЗапланироватьОбновлениеДоступа(Таблица) Экспорт

Пример вызова

УправлениеДоступом.ЗапланироватьОбновлениеДоступа(Таблица)

© 2024, ООО 1С-Софт
Все права защищены. Эта программа и сопроводительные материалы предоставляются
в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0).