Доработки RLS. Примеры шаблонов. (в т.ч исключения из ограничений)

Публикация № 191339

Администрирование - Информационная безопасность

76
Допиливаем шаблоны RLS. Даем доступ пользователям к некоторым объектам

1. Даем доступ к некоторым объектам или исключение из правил для RLS

2. Добавляем поиск показателя ограничения в регистрах. 

 Публикацию планирую наращивать,  если желаете получить пример реализации какого-нибудь механизма в шаблоне РЛС - пишите в коменты.

1. Исключения в RLS

RLS достаточно точный механизм, ограничивающий доступ к таблицам базы по определенным условиям. Хоть и подразумевается что пользователь имеющий доступ только к некоторым документам определенного, к примеру, подразделения, на практике бывает необходимость все же выборочно давать доступ к объектам, запрещенным настройкой RLS.

Для примера – доступ ограничен по Организации и Подразделению для менеджера по кадрам. В случае перемещения сотрудника из подразделение в подразделение необходимо чтобы документ перемещения и сотрудник были видны в обоих подразделениях. Ну и при увольнении сотрудника типовая конфигурация пытается получить доступ к документу приема, который является документом первого подразделения.

На этом примере и проиллюстрирую не сложный механизм исключений из правил для RLS.

Исходные данные:

Шаблон ограничений для объектов где показатели для ограничения находятся в шапке документа:

ТекущаяТаблица
ИЗ
 #ТекущаяТаблица КАК ТекущаяТаблица
 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
 СоставГруппы.Ссылка КАК ГруппаПользователей
 ИЗ
 Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
 ГДЕ
 СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
 ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
 (НЕ 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
 ПО
 НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
 ТОГДА
 ВЫБОР КОГДА ТипЗначения(ТекущаяТаблица.#Параметр(2)) = ТипЗначения(NULL)
 ТОГДА НастройкиПравДоступаПользователей.ОбъектДоступа
 ИНАЧЕ
 ТекущаяТаблица.#Параметр(2)
  КОНЕЦ
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
 ТОГДА ТекущаяТаблица.#Параметр(1)
  КОНЕЦ
 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
 И 
 НастройкиПравДоступаПользователей.ОбластьДанных =
 ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
 ГДЕ 
 НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
 И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (
 ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка)
  , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
  , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
  )
  И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL
 ))

Шаблон ограничений для объектов где Организация в шапке, Подразделение в табличной части:

ТекущаяТаблица
ИЗ
 #ТекущаяТаблица КАК ТекущаяТаблица
 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
 СоставГруппы.Ссылка КАК ГруппаПользователей
 ИЗ
 Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
 ГДЕ
 СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
 ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
 (НЕ 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
  ГДЕ
 НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
 И ВЫБОР
  КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
 ТОГДА ВЫБОР
 КОГДА 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 (ВЫБРАТЬ
 1 КАК Поле
 ) КАК Оптимизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
 ПО
 НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.Организация
 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
 И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
 И НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей)
 ТОГДА ИСТИНА
 ИНАЧЕ ЛОЖЬ
 КОНЕЦ
 
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
 ТОГДА ВЫБОР
 КОГДА (НЕ 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 Документ.#Параметр(1) КАК ТабличнаяЧастьДокумента ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизации
 ПО
 ПодразделенияОрганизации.Ссылка = ТабличнаяЧастьДокумента.#Параметр(2) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
 ПО
 НастройкиПравДоступаПользователей.ОбъектДоступа = ПодразделенияОрганизации.Ссылка
 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
 И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
 И НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
 ГДЕ
 ТабличнаяЧастьДокумента.Ссылка = ТекущаяТаблица.Ссылка
 И НастройкиПравДоступаПользователей.ОбластьДанных ЕСТЬ NULL ))
 ТОГДА ИСТИНА
 ИНАЧЕ ЛОЖЬ
 КОНЕЦ
 ИНАЧЕ ИСТИНА
 КОНЕЦ = ЛОЖЬ))
 И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL

Итак. Начнем с создания регистра сведений ДОП_ИсключенияПравДоступа. В нем мы будем хранить объекты к которым необходимо дать доступ и показатель – по которому необходимо дать доступ. Допустим для подразделения «Основное» следует дать доступ к документу «Прием на работу в организацию №000000001» который относится к другому подразделению. Создадим соответственно 2 измерения – ОбъектДоступа и ПоказательДоступа.

Следующим шагом следует обеспечить заполнение нашего регистра. В случае, приведенном в качестве примера, нас интерисует документ КадровоеПеремещение. Создадим подписку на событие, по событию ОбработкаПроведения и в новом общем модуле опишем движения по нашему регистру:

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

Все, подготовительный этап окончен. Данные о объектах к которым необходимо дать доступ и о подразделениях, которым необходимо дать доступ к этим объектам попадают в регистр. Осталось немного поправить шаблоны ограничений добавив несколько строк.

Для шаблона с показателями в шапке:

ТекущаяТаблица
ИЗ
 #ТекущаяТаблица КАК ТекущаяТаблица
 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
 СоставГруппы.Ссылка КАК ГруппаПользователей
 ИЗ
 Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
 ГДЕ
 СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
 ПО (ИСТИНА)
 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДОП_ИсключенияПравДоступа КАК ОбъектыДоступа
 ПО ТекущаяТаблица.Ссылка = ОбъектыДоступа.ОбъектДоступа
ГДЕ
 НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
 (НЕ 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
 ПО
 (НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
 ТОГДА
 ВЫБОР КОГДА ТипЗначения(ТекущаяТаблица.#Параметр(2)) = ТипЗначения(NULL)
 ТОГДА НастройкиПравДоступаПользователей.ОбъектДоступа
 ИНАЧЕ
 ТекущаяТаблица.#Параметр(2)
 КОНЕЦ
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
 ТОГДА ТекущаяТаблица.#Параметр(1)
  КОНЕЦ
 ИЛИ НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
 ТОГДА
 ВЫБОР КОГДА ТипЗначения(ТекущаяТаблица.#Параметр(2)) = ТипЗначения(NULL)
 ТОГДА НастройкиПравДоступаПользователей.ОбъектДоступа
 ИНАЧЕ
  ОбъектыДоступа.ПоказательДоступа
  КОНЕЦ
 КОНЕЦ
 )
 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
 И 
 НастройкиПравДоступаПользователей.ОбластьДанных =
  ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
 И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
 ГДЕ 
 НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
 И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (
 ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка)
  , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
  , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
  )
  И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL
 ))

И для шаблона ограничений с Организацией в шапке и подразделением в табличной части:

ТекущаяТаблица
ИЗ
 #ТекущаяТаблица КАК ТекущаяТаблица
 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
 СоставГруппы.Ссылка КАК ГруппаПользователей
 ИЗ
 Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
 ГДЕ
 СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
 ПО (ИСТИНА)
 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДОП_ИсключенияПравДоступа Как ОбъектыДоступа
 ПО ТекущаяТаблица.Ссылка = ОбъектыДоступа.ОбъектДоступа
ГДЕ
 НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
 (НЕ 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
 ГДЕ
 НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
 И ВЫБОР
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
 ТОГДА ВЫБОР
 КОГДА 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 (ВЫБРАТЬ
 1 КАК Поле
 ) КАК Оптимизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
 ПО
 НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.Организация
 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
 И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
 И НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей)
 ТОГДА ИСТИНА
 ИНАЧЕ ЛОЖЬ
 КОНЕЦ
 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
 ТОГДА ВЫБОР
 КОГДА (НЕ 1 В
 (ВЫБРАТЬ ПЕРВЫЕ 1
 1
 ИЗ
 Документ.#Параметр(1) КАК ТабличнаяЧастьДокумента ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизации
 ПО
 ПодразделенияОрганизации.Ссылка = ТабличнаяЧастьДокумента.#Параметр(2) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
 ПО
 (НастройкиПравДоступаПользователей.ОбъектДоступа = ПодразделенияОрганизации.Ссылка
 ИЛИ НастройкиПравДоступаПользователей.ОбъектДоступа = ОбъектыДоступа.ПоказательДоступа)
 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)
 И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
 И НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
  ГДЕ
 ТабличнаяЧастьДокумента.Ссылка = ТекущаяТаблица.Ссылка
 И НастройкиПравДоступаПользователей.ОбластьДанных ЕСТЬ NULL ))
 ТОГДА ИСТИНА
 ИНАЧЕ ЛОЖЬ
 КОНЕЦ
  ИНАЧЕ ИСТИНА
 КОНЕЦ = ЛОЖЬ))
 И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL

Вот и все. Осталось только указать параметры для шаблона для документов. Это наименования реквизитов, содержащих организацию и подразделение (знаю что это можно было убрать – зато иллюстрирует работу с параметрами) для шаблона для объектов с организацией и подразделением в табличной части и наименование документа + наименование табличной части и наименование реквизита, содержащего подразделение.

2. Поиск показателя ограничения в регистрах

Продолжим. Во многих кадровых и расчетных документах явно не указывается подразделение организации. Зато есть сотрудник, нам этого вполне хватит, чтобы найти его подразделение. 

Для начала разберем конструкцию:

ЛЕВОЕ СОЕДИНЕНИЕ
                (ВЫБРАТЬ
                                        СрезПоследних.Период КАК Период,
                                        СрезПоследних.Сотрудник КАК Сотрудник,
                                        Регистр.Регистратор КАК Регистратор,
                                        Регистр.ПодразделениеОрганизации КАК ПодразделениеОрганизации
                        ИЗ
                                        (ВЫБРАТЬ
                                                        РаботникиОрганизаций.Сотрудник КАК Сотрудник,
                                                        МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период
                                        ИЗ
                                                        РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций

                                        СГРУППИРОВАТЬ ПО
                                                        РаботникиОрганизаций.Сотрудник) КАК СрезПоследних
                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК Регистр
                        ПО СрезПоследних.Период = Регистр.Период
                        И СрезПоследних.Сотрудник = Регистр.Сотрудник)ПодразделениеСотрудника
        ПО ТекущаяТаблица.#Параметр(2) = ПодразделениеСотрудника.Сотрудник

Так как в RLS нельзя использовать виртуальные таблицы - нам придется ее сделать самостоятельно, что мы выше и сделали.

То есть мы получили подразделение по сотруднику из РС Работники организации. Осталось только внедрить этот кусочек в наши шаблоны RLS. Сотрудники обычно находятся в табличной части документа. В этот шаблон мы и добавим наш новый кусочек

ТекущаяТаблица

ИЗ

 #ТекущаяТаблица КАК ТекущаяТаблица

 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ

 СоставГруппы.Ссылка КАК ГруппаПользователей

 ИЗ

 Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы

 ГДЕ

 СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей

 ПО (ИСТИНА)

  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДОП_ИсключенияПравДоступа Как ОбъектыДоступа

 ПО ТекущаяТаблица.Ссылка = ОбъектыДоступа.ОбъектДоступа

ГДЕ

 НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL

И

 (НЕ 1 В

 (ВЫБРАТЬ ПЕРВЫЕ 1

 1

 ИЗ

 РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
 ГДЕ

 НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей

 И ВЫБОР

 КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)

 ТОГДА ВЫБОР

 КОГДА 1 В

 (ВЫБРАТЬ ПЕРВЫЕ 1

 1

 ИЗ

 (ВЫБРАТЬ

 1 КАК Поле

 ) КАК Оптимизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей

 ПО

 НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.Организация

 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)

 И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)

 И НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей)

 ТОГДА ИСТИНА

 ИНАЧЕ ЛОЖЬ

 КОНЕЦ

  КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)

 ТОГДА ВЫБОР

 КОГДА (НЕ 1 В

 (ВЫБРАТЬ ПЕРВЫЕ 1

 1

 ИЗ

 Документ.#Параметр(1) КАК ТабличнаяЧастьДокумента

 ЛЕВОЕ СОЕДИНЕНИЕ
 (ВЫБРАТЬ
 СрезПоследних.Период КАК Период,
 СрезПоследних.Сотрудник КАК Сотрудник,
 Регистр.Регистратор КАК Регистратор,
 Регистр.ПодразделениеОрганизации КАК ПодразделениеОрганизации
 ИЗ
 (ВЫБРАТЬ
 РаботникиОрганизаций.Сотрудник КАК Сотрудник,
 МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период
 ИЗ
 РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций

 СГРУППИРОВАТЬ ПО
 РаботникиОрганизаций.Сотрудник) КАК СрезПоследних
 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК Регистр
 ПО СрезПоследних.Период = Регистр.Период
 И СрезПоследних.Сотрудник = Регистр.Сотрудник)ПодразделениеСотрудника
 ПО ТабличнаяЧастьДокумента.#Параметр(2) = ПодразделениеСотрудника.Сотрудник

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизации

 ПО

 ПодразделенияОрганизации.Ссылка = ПодразделениеСотрудника.ПодразделениеОрганизации ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей

 ПО

 (НастройкиПравДоступаПользователей.ОбъектДоступа = ПодразделенияОрганизации.Ссылка

 ИЛИ НастройкиПравДоступаПользователей.ОбъектДоступа = ОбъектыДоступа.ПоказательДоступа)

 И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПодразделенияОрганизаций)

 И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)

 И НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей

  ГДЕ

 ТабличнаяЧастьДокумента.Ссылка = ТекущаяТаблица.Ссылка

 И НастройкиПравДоступаПользователей.ОбластьДанных ЕСТЬ NULL ))

 ТОГДА ИСТИНА

 ИНАЧЕ ЛОЖЬ

 КОНЕЦ

  ИНАЧЕ ИСТИНА

 КОНЕЦ = ЛОЖЬ))

 И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL

 В результате мы видем объекты с сотрудниками только своего подразделения. Надеюсь этот материал поможет разобраться с RLS и не отказываться от него из-за его якобы "сложности"

Пишите коменты,  если что не ясно – растолкую. Так же принимаю критику =) Всем приятного чтения!

Подготовленно совместно с VasiL` //infostart.ru/community/profile/102806/

76

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. anig99 2696 19.06.13 11:35 Сейчас в теме
В чем ноу-хау? Всё это есть в типовых.
34. timujeen 05.12.17 15:33 Сейчас в теме
Решал аналогичную задачу но в качестве носителя информации для ограничения использовал Параметры пользователя.
Для регистров например запрос выглядет так:
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ
(ТекущаяТаблица.Сотрудник В(&СписокДоступныхСотрудников   )  )

Есть проблема в предоставлении пользоваетлю права для записи пустого документа, так как у меня не запрещенные подразделения, а наоборот разрешенные. Пытался использовать:
НЕ ТабличнаяЧастьДокумента.НомерСтроки В(1)
- проверку на наличия первой строки в документе, но не помогло.
2. crs 22 19.06.13 16:43 Сейчас в теме
В типовых нельзя сделать исключение RLS. Если запретил организацию, пользователь ни при каких условиях ни ее, ни связанные объекты видеть не будет
5. anig99 2696 21.06.13 13:44 Сейчас в теме
(2) А. Увидел. Вообще ещё есть вариант не давать доступ к объекту, но дать доступ к ссылке и некоторым реквизитам.
7. EvilDoc 167 23.06.13 03:33 Сейчас в теме
(5) В первый раз слышу. Был бы счастлив узнать о подобном механизме - то есть давать доступ к уникальной ссылке и к определенным реквизитам в обход RLS типовыми или более простыми, нежели мной предложенный, способами =) Буду рад любой информации.

(6) РЛС работает чуточку быстрее прочих систем контроля доступа, представленные, к примеру, здесь http://kb.mista.ru/article.php?id=134.
А что касается именно исключений из РЛС, да, в каждый запрос добавляется ни чуть не изящное исключение.

Мое имхо - может тормозить и скорее всего будет в случае большого количества (больше 10к) у каждой группы пользователей... На реально большой базе. Может быть для этих случаев есть смысл не использовать РЛС впринципе или допустим только по организации - зависит от задачи. МБ распределенка решит, но локально с озвученой проблемой идея справляется. Для каждого конкретного случая нужны свои идеи =) Тут я привел реализацию определенной задачи, которая, думаю, поможет многим с подобными проблемами. Я как бы хотел донести суть а не полную реализацию. Хотя получилось что полная реализация присутствует =)) И вот мне интересно кому эта "суть" помогла и кто нашел другие решения, особенно более "изящные".

з..ы. Жду критики - как сделать лучше - это в радость. Ну и кому помогло - тоже в радость =)) Не за что =)))
denxxxden; +1 Ответить
21. kote 499 27.05.16 11:31 Сейчас в теме
.. не ошибка, но оплошность:

 ТОГДА

                                               ВЫБОР КОГДА ТипЗначения(ТекущаяТаблица.#Параметр(2)) = ТипЗначения(NULL)

                                                               ТОГДА НастройкиПравДоступаПользователей.ОбъектДоступа

                                               ИНАЧЕ
Показать



Вот это
 ТипЗначения(ТекущаяТаблица.#Параметр(2)) = ТипЗначения(NULL)
будет работать в 5-8 раз медленнее, чем
 (ТекущаяТаблица.#Параметр(2)) ЕСТЬ NULL 
. Для RLS особенно актуально.

Никогда так не делайте!
22. EvilDoc 167 01.06.16 13:20 Сейчас в теме
(21) kote, разработчикам РЛС для УПП уже поздновато сообщать о их оплошности)
3. EvilDoc 167 19.06.13 23:10 Сейчас в теме
Собственно, уже ответили =) Вот интересно ранее кто-то сталкивался с подобной задачей и как ее реализовывал?
4. petrov_al 10 20.06.13 12:24 Сейчас в теме
Интересна сама по себе идея использования дополнительных регистров для исключений. А как кстати при обновлении для RLS шаблонов, можно применить приоритеты?
6. kapustinag 22.06.13 21:02 Сейчас в теме
Проверяли работу этого механизма на РЕАЛЬНО большой базе, с достаточно большим количеством одновременно работающих пользователей? Не тормозит?
Если у пользователя постепенно накапливается много исключений, к которым он должен получить доступ, то, мне кажется, будет притормаживать.
8. CagoBHuK 31 26.06.13 09:58 Сейчас в теме
РЛС нет смысла использовать на больших базах. Это сводит полезность Record-Livel Security к нулю.
Shmell; xsazar; AltF1; +3 1 Ответить
9. EvilDoc 167 26.06.13 20:31 Сейчас в теме
(8) CagoBHuK, А разве есть более быстрые альтернативы? Для ограничения доступа RLS наиболее шустрый. Из других вариантов разве что распределенка.
10. a-novoselov 1088 01.07.13 10:48 Сейчас в теме
А не проще и менее затратно было бы просто добавить в шаблон связь по "ИЛИ" со вторым реквизитом (то же имя реквизита из параметра) и поменять шаблон для нужных документов? А если системе необходимо "посмотреть" недоступный документ, например, в обработке проведения другого документа, то выполнять обработку в привелегированном режиме?
11. EvilDoc 167 01.07.13 11:33 Сейчас в теме
В контексте озвученой задачи речь идет о интерактивной работе с запрещенным объектом. В частности просмотр. Ибо менеджер по кадпам должен видеть сам факт перемещения. Чтобы избежать ситуации с неизвестно куда пропавшими сотрудниками =)
12. dyak84 26.09.13 16:50 Сейчас в теме
Да автору безусловное спасибо есть что почитать есть над чем поразмыслить.Так держать Спасибо.
13. EvilDoc 167 13.02.14 11:15 Сейчас в теме
Да автор вообще красава)
14. 20tanush 05.08.15 15:13 Сейчас в теме
EvilDoc, есть необходимость доработать шаблон ограничения, когда исключением является дата документа. Вот в этой темке описываю задачу: http://forum.infostart.ru/forum42/topic135726/message1401591/?result=reply#message1401591
Можете помочь советом?
15. EvilDoc 167 21.08.15 16:11 Сейчас в теме
16. NatalyaVP 08.09.15 14:00 Сейчас в теме
По пункту 2. Какие значения в параметрах? Параметр 1 - это сотрудник? Параметр 2 - это подразделение?
Я сделала шаблон, в ограничении права на чтение что писать? шаблон("",""), а реквизиты как написать. Вот, например, документ "Командировки организаций", табличная часть, в ней сотрудник, в нём подразделение.
шаблон("командировкиОрганизаций.Работники.Сотрудник","командировкиОрганизаций.Работники.Сотрудник.подразделение"). Так?
Заранее спасибо за ответ.
18. EvilDoc 167 08.09.15 16:18 Сейчас в теме
(16) NatalyaVP, #Шаблон("Работники","Сотрудник")
17. EvilDoc 167 08.09.15 16:16 Сейчас в теме
Параметр1 - имя табличной части, Параметр 2 - реквизит в котором хранится сотрудник в данной ТЧ.
Пример из УПП - #Шаблон("Работники","Сотрудник")
19. Orangeman 09.03.16 18:12 Сейчас в теме
Добрый день . Коллеги подскажите вот если стоит ограничение вида
#ПоЗначениям("Документ.ВнутреннееПеремещениеБСО", "Чтение", "",
"Организации", "Организация",
"ИсточникиФинансовогоОбеспечения","ИФО",
"Подразделения","ПодразделениеОтправитель",
"","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","",""
)
И ситуация похожа хочу так же чтобы были доступны документы в которых ПодразделениеПолучатель соответствует моему(по которому ограничиваю запись). Создал так же регистр сведений в него пишу при записи документа, сам документ регистратор и подразделения . Как мне в данном ограничении # ПоЗначениям приудить условие ИЛИ мол выводи те документы которые в регистре с моим подразделением и те которые тут по ПодразделениюОтправителю, Я не совсем понимаю где в настройках пользователя или может еще где хранится информация по Подразделению ему доступному с чем как бы сравнит Подразделение в документе Конфа типовая БГУ 2.0
20. Orangeman 09.03.16 18:17 Сейчас в теме
Как то коряво написал ,ну суть такая хочу выводить пользователю документы в которых ему доступно Подразделение отправитель плюс к ним документы из регистра сведений по некому отбору вот как можно записать условие
23. ДмитрийС 03.08.17 11:06 Сейчас в теме
Кто-нибудь знает как правильно настраивать РЛС по табличным частям? В топике конечно указано (через связь по ссылке ТЧ и ТекущейТаблицей), но объясню свой вопрос:

Я настраиваю запрет доступа по выбранным подразделениям. Т.е. если у пользователя стоит запрет на определенное подразделение (именно в использовании в конкретном документе, а не вообще), то он не должен ни ввести новый, ни исправить старый документ, если в нем было (будет) хоть в одной строке указано запретное подразделение.

При указанном способе происходит проверка не ТекущейТаблицы, а именно ССЫЛКИ на табличную часть. Если происходит ввод нового документа, то временная ссылка уже существует и РЛС отработает правильно. А вот при изменении существующего документа ограничения РЛС встраиваются в запрос на изменение (Update) к субд (мониторю профайлером). Т.е. изменения ссылки не происходит.

Получается, что пользователю запрещено отредактировать существующий документ с запрещенным подразделением (это хорошо). НО! Разрешается в существующем документе с разрешенными подразделениями поменять подразделение на запрещенное и провести. И в этом случае РЛС будет молчать.
24. EvilDoc 167 08.08.17 10:30 Сейчас в теме
Если вы не хотите ограничивать сам справочник Подразделения, то средствами РЛС вы это не решите.
25. ДмитрийС 08.08.17 13:39 Сейчас в теме
(24) Я отлично это решаю, если реквизит шапки, а не ТЧ.
26. ДмитрийС 08.08.17 14:10 Сейчас в теме
(25) Может я просто как то не так настраиваю рлс по ТЧ(
27. EvilDoc 167 08.08.17 16:30 Сейчас в теме
хм.. возможно шаблон указан только на чтение, а на запись нет? Сложно предположить. И да - должно дать выбрать ваше подразделение - но не должно позволить записать такой документ
29. ДмитрийС 09.08.17 07:54 Сейчас в теме
(27) На чтение у меня свободный доступ. Шаблон ограничения стоит на добавление и изменение документа, причем одинаковый.
Да, подразделение можно менять как угодно, а вот записать с запрещенным нельзя.
(28) Не совсем понял о чем вы? Или это у обсуждаемой теме не относится?
30. EvilDoc 167 10.08.17 15:52 Сейчас в теме
(29) давайте попробую взглянуть на ваш шаблон
28. EvilDoc 167 08.08.17 16:33 Сейчас в теме
По поводу не правильно - у меня тут прям цветом было красиво выделено - что куда вставлял - но потом разработчики сийта изменили оформление и все пропало.. Стало ненаглядно и запутанно.
31. ДмитрийС 11.08.17 07:33 Сейчас в теме
мое ограничение выглядит так:
ГДЕ
НЕ 1 В      (ВЫБРАТЬ ПЕРВЫЕ 1      1      ИЗ      Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК ТабличнаяЧастьДокумента ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам
ПО      ПраваДоступаПользователейКОбъектам.ОбъектДоступа = ТабличнаяЧастьДокумента.ЦентрЗатрат
И ПраваДоступаПользователейКОбъектам.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОграниченияПравДоступа.ПодразделенияПлатежныеДокументыЗапрет)
И ПраваДоступаПользователейКОбъектам.Пользователь В (&ГруппыТекущегоПользователя)
И ПраваДоступаПользователейКОбъектам.Изменение      
ГДЕ      ТекущаяТаблица.Ссылка = ТабличнаяЧастьДокумента.Ссылка)
32. EvilDoc 167 11.08.17 11:04 Сейчас в теме
Вроде все верно. В консоли запросов отрабатывает верно?
33. ДмитрийС 11.08.17 13:05 Сейчас в теме
Конечно))
Он даже отрабатывает, когда пользователь хочет запрещенное подразделение поменять на разрешенное и провести или просто перепровести документ. Тут 1С пишет про недостаточность прав. А вот когда в документе разрешенное подразделение меняется на запрещенное, то молчит.
35. pavel_pss 247 15.12.17 14:35 Сейчас в теме
Все конечно интересно, но ты пишешь (Вот и все. Осталось только указать параметры для шаблона для документов)
Вопрос а где ин нужно указывать то ??????

Я сам как раз из тех для кого пока это сложно.
36. pavel_pss 247 15.12.17 14:47 Сейчас в теме
И плиз можете подсказать какую нить книжку или сайт, по рлс
37. batia777 20.06.18 10:18 Сейчас в теме
Всем привет. Подскажите пожалуйста, если стоит ограничение RLS на справочники Сотрудники и ПодразделенияОрганизаций в ЗУП 2.1 Укр в документе Кадровое перемещение происходит тупиковая ситуация: Кадровик откуда переводится сотрудник может выбрать своего сотрудника, но не может выбрать Подразделения Куда. Обойти как-то средствами RLS это можно?
38. EvilDoc 167 20.06.18 10:46 Сейчас в теме
(37) У кадровика должны быть права на подразделение - куда переводится сотрудник. Иначе система просто не даст провести документ (а не только выбрать подразделение). Но полагаю у вас у этого кадровика нет права на сотрудника. Возможно переводом должен заниматься некий "старший" кадровик, имеющий доступ ко всем подразделениям.
Оставьте свое сообщение

См. также

Типичные ошибки при разработке прав доступа 101

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Роли и права

Рассмотрим самые распространенные ошибки в разработке прав доступа.

02.10.2019    5396    YPermitin    39       

Проверка наличия роли у пользователя 3

Статья Программист Нет файла v8 v8::Права 1cv8.cf Бесплатно (free) Роли и права

Допустим, мы добавили новую роль в конфигурацию. Потом добавили её в профиль группы доступа и назначили соответствующую группу доступа пользователю. Однако, в конфигурациях на основе БСП все известные программные проверки данной роли при включении пользователя в предопределенную группу доступа "Администраторы" не работают. В статье приведено решение данной задачи.

29.06.2019    2829    ni_cola    7       

Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП 71

Статья Системный администратор Программист Стажер Нет файла v8 УПП1 Бесплатно (free) Роли и права

Небольшие заметки по функционалу "Администрирование пользователей" конфигурации "Управление производственным предприятием" версии 1.3. Затрагиваются такие темы как: роли, профили доступа, дополнительные права, настройки пользователей и ограничения доступа на уровне записей (RLS).

06.06.2019    6231    YPermitin    16       

Подсистема БСП «Управление доступом», основные объекты и регистры 105

Статья Программист Нет файла v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free) БСП (Библиотека стандартных подсистем) Роли и права

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    7975    ids79    8       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 162

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    15420    ids79    9       

Влияние настройки роли на потребление памяти 150

Статья Системный администратор Программист Нет файла v8::Права 1cv8.cf Бесплатно (free) Роли и права

На днях разбирался с проблемой с потреблением памяти процессами конфигуратора и rphost. Как оказалось - причина в настройках ролей. Один поворот не туда, и настройки роли приводят к чрезмерному потреблению оперативки.

29.01.2019    9335    mickey.1cx    14       

Использование утилиты ring для выяснения данных о программных лицензиях 33

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Информационная безопасность

Использование утилиты ring для управления программными лицензиями без ее установки на компьютер пользователя.

22.12.2018    5551    Vovan58    20       

Доработка RLS для УНФ 30

Статья Программист Нет файла v8::Права 1cv8.cf Бесплатно (free) Информационная безопасность

Инструкция для тех, кто столкнулся с RLS на управляемых формах впервые и не знает, с чего начать.

14.05.2018    10347    FesenkoA    5       

Решение проблемы автоматического утверждения расчета кадровиком документов. Разграничение прав кадровиков и расчетчиков. ЗУП 3.1 25

Статья Программист Нет файла v8 v8::СПР v8::Права ЗУП3.x БУ Зарплата Управление персоналом (HRM) Бесплатно (free) Информационная безопасность

Статья посвящена тем, кто столкнулся с проблемой автоматической установки "Расчет утвердил". Также рассматривается решение проблемы с отображением ФОТ и оклада у кадровика. Добавление роли ЧтениеДанныхДляНачисленияЗарплатыРасширенная кадровику без последствий для расчетчика.

04.04.2018    15024    leaderonex    22       

Проверка безопасности установленных паролей 6

Статья Системный администратор Нет файла v8 Бесплатно (free) Информационная безопасность

Код выводит не установленные пароли, а так же очень простые (1, 123) пароли пользователей. Список можно пополнять.

08.03.2018    7263    nomadon    12       

Информирование об утечке базы 1С 22

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность

Когда работаешь в крупном холдинге, количество сотрудников, имеющих доступ к базам 1С неизменно растет. Рано или поздно появится задача по контролю утечки баз 1С. Конечно мы применим все меры по предотвращению утечки баз, но и информирование о случаях утечки тоже не повредит.

03.03.2018    11054    dima_home    79       

Отключаем предупреждения безопасности в 1С 8.3.9 и выше вручную 20

Статья Системный администратор Нет файла v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free) Информационная безопасность

Как включить/выключить механизм защиты от опасных действий реализованный в новой версии платформы 1С:Предприятие 8.3.9. Одним из нововведений новой версии платформы 1С:Предприятие 8.3.9 стал механизм от опасных действий. После установки новой версии платформы 1С (начиная версии 8.3.9.2033) при попытке открыть внешнюю обработку или расширение программа выдает сообщение..

01.11.2017    27396    webresurs    10       

Управление доступом: роли, права, профили, группы доступа, функциональные опции, RLS 223

Статья Системный администратор Программист Нет файла v8::Права Бесплатно (free) Роли и права

В 1С достаточно много механизмов, отвечающих за доступ к данным. Группы доступа, профили групп доступа, роли, права доступа, функциональные опции, RLS. Иногда сложно сразу понять, зачем все это нужно, как эти элементы друг с другом связаны и как ими пользоваться.

11.10.2017    65627    ekaruk    14       

Многофакторная авторизация. Шаблон проектирования для «1С:Предприятие 8». На примере API «Приватбанка» для юр. лиц 10

Статья Программист Нет файла v8 Бесплатно (free) Информационная безопасность Обмен с банком

Многим из читателей знакомы понятия стандартов разработки и шаблонов проектирования. Для платформы «1С:Предприятие 8» на сайте its.1c.ru описаны базовые стандарты оформления кода и некоторые полезные примеры, но отсутствует информация об высокоуровневых абстракциях. Почти у каждого банка есть реализация обмена с конфигурациями «1С:Предприятие 8», но анализировать код, а тем более реализацию без слёз невозможно. Данная статья предлагает использовать некий шаблон оформления кода для многофакторной авторизации.

11.09.2017    10172    pbazeliuk    6       

Как создать свой профиль доступа в пользовательском режиме в 1С:Бухгалтерии 3.0 12

Статья Системный администратор Программист Нет файла v8 БП3.0 Россия Бесплатно (free) Информационная безопасность

Допустим, есть следующая задача. Нужно добавить нового пользователя «Анна» в базу 1С:Бухгалтерия 3.0. При этом Анна должна только выставлять и распечатывать Счета на оплату. При этом все остальные документы и справочники только для просмотра. Т.е. добавлять новую номенклатуру и контрагентов она не может. Обязательное условие - не изменять типовую конфигурацию.

06.09.2017    12300    alfanika    3       

Копирование групп доступа между пользователями 5

Статья Программист Нет файла v8 УТ11 Бесплатно (free) Информационная безопасность

Доработки, позволяющие переносить группы доступа между пользователями. Подходит для Управление торговлей для Украины, редакция 3.1, Управление торговлей, редакция 11.1 и, я думаю, для других конфигураций, написанных на базе БСП.

03.09.2017    7107    Pervuy    0       

1001-й способ ограничить пользователей 1С 8

Статья Программист Внешняя обработка (ert,epf) v8 v8::Права Розница Бесплатно (free) Информационная безопасность

Описан еще один способ ограничить пользователя 1С, при помощи подписки на события

13.07.2017    11468    donpadlo    39       

Этюды по программированию. Разграничение прав 16

Статья Программист Нет файла v8 Бесплатно (free) Информационная безопасность

Задача: Имеется конфигурация на базе Библиотеки Стандартных Подсистем(БСП) -практически любая стандартная конфигурация 1С. Есть, к примеры заказы покупателей. Есть группы менеджеров, каждая из которых должна иметь доступ только к заказам своей группы.

29.04.2017    12049    milkers    8       

Недостаточно прав доступа или опять забыли дать права на новые объекты 198

Статья Программист Нет файла v8 Бесплатно (free) Информационная безопасность

При постоянной доработке конфигураций в больших коллективах иногда возникает ситуация, когда программист поместил новые объекты в базу, а права на них дать забыл. При этом обновлять базу не позволяет бизнес. Что же делать? Есть небольшая хитрость.

06.04.2017    23470    Silenser    55       

Права доступа в 1С:Документооборот 2.1 40

Статья Системный администратор Программист Нет файла v8 ДО Документооборот и делопроизводство Бесплатно (free) Информационная безопасность

В программе 1С:Документооборот ред 2.1 механизм системы прав доступа сильно изменился. С одной стороны, права доступа в данной версии стали проще и быстрее, с другой стороны - права по рабочим группам объектов теперь могут противоречить политикам доступа. Разберемся в данной статье как работает механизм прав доступа в 1с документообороте 2.1.

16.09.2016    56855    vlush78    0       

Генерация паролей 1С 8.3 (код, инструкция) 24

Статья Программист Нет файла v8 Windows Бесплатно (free) Информационная безопасность Практика программирования

Инструкция по самостоятельному написанию генерации пароля в 8.3. Может кому-нибудь пригодится, т.к. весь материал на ИС за монетку а делать-то на самом деле нечего

22.07.2016    14720    Tomy82    18       

ubuntu + 1Cv8. Как правильно задать права доступа к базе в терминальном режиме 19

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Информационная безопасность

Очень часто возникает проблема с установкой прав доступа в Linux. Один пользователь заходит в базу 1С нормально, а вот второго уже не пускает. Решение проблемы очень простое.

30.03.2016    16623    viptextil    14       

Готовим конфигурацию "Бухгалтерия предприятия 3.0" к аудиторской проверке 4

Статья Программист Нет файла v8 БП2.0 Россия Windows Бесплатно (free) Информационная безопасность

Бывают такие ситуации, что, предоставляя данные для аудиторской проверки, мы переживаем, как бы проверяющие не узнали чего лишнего. В этой статье я расскажу, как скрыть документы и ограничить отчеты по периоду на примере конфигурации "Бухгалтерия предприятия 3.0"

21.03.2016    8489    duhh    14       

Ограничение доступа к справочнику Склады для УТ 10.3 10

Статья Системный администратор Нет файла v8 УТ10 Россия Windows Бесплатно (free) Информационная безопасность

Краткая инструкция простого метода, как ограничить видимость складов для определенных пользователей в УТ 10.3.

25.12.2015    15465    Viktor_Ermakov    8       

Новый вид доступа в УТ 11. Как в УТ 11 изменить константу "ПараметрыОграниченияДоступа" 28

Статья Программист Нет файла v8 УТ11 Россия Бесплатно (free) Информационная безопасность

В УТ11 существуют стандартные виды ограничения прав доступа. Например: "Подразделения", "Склады", "Кассы", "ВидыЦен" и т.д. До поры до времени такой набор стандартных видов ограничений устраивает пользователей. Но что делать, если возникла необходимость добавить новый вид доступа? Об этом и пойдет речь в данной статье.

16.12.2015    21611    Spacer    9       

Запуск под пользователем (асинхронный вызов) 12

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Часто бывает необходимо запустить для отладки под другим пользователем, маленький кусок кода не испортит конфигурацию

30.07.2015    8545    kvikster    7       

Разделение доступа к документам с учетом подразделения 21

Статья Системный администратор Программист Нет файла v8 БП2.0 Windows Бесплатно (free) Информационная безопасность

Задача: имеется типовая Бухгалтерия КОРП 3.0. Организация одна, имеется ряд подразделений (не обособленных). Необходимо разделить доступ к документам и отчетам с учетом подразделения. Центральный офис должен видеть все данные.

20.07.2015    24060    mmtv68    8       

Ограничение доступа к контрагентам для конфигурации, в которой функционал ограничения отсутствует по умолчанию 14

Статья Системный администратор Программист Нет файла v8 УТ10 Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Добрый день, читатель! Я покажу тебе, как в конфигурации (в которой функционал ограничения отсутствует по умолчанию) ограничить сотрудников компании (менеджеров) при работе в 1С только определенными контрагентами. Например, при заведении Заказа Покупателя (или Поставщика) менеджер может видеть и создавать документы только по определенным Контрагентам. Это сделано для удобства работы отдела продаж, когда за каждым Менеджером в отделе закреплен определенный круг Клиентов. Другие менеджеры не могут видеть и менять чужие заказы, так как в них указаны не их Контрагенты (не закрепленные за ними). Думаю, я понятно объяснил, что я хочу вам показать.

05.06.2015    16234    pvlunegov    47       

Темная сторона обмена по правилам 38

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность Перенос данных из 1C8 в 1C8

Правила обмена (конвертации) используются в обменах данными повсеместно. Однако за удобство и простоту согласования разных конфигураций приходится платить потенциальной угрозой безопасности: возможностью выполнить в принимающей базе произвольный код на языке 1С.

16.03.2015    13464    saiten    38       

"Скажи пароль" или как работать со свойством СохраняемоеЗначениеПароля объекта типа ПользовательИнформационнойБазы 53

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность

Ряд статей уже затрагивали тему проверки текущего пароля пользователя и работу со свойством "СохраняемоеЗначениеПароля", но конкретики по данному вопросу мало. Данная короткая статья призвана исправить этот пробел.

28.01.2015    21529    mbreaker    16       

Настройка DCOM компоненты "Excel.Application" на 64-битном сервере приложений 1С 136

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Администрирование данных 1С Информационная безопасность

Описание настройки на 64-битном сервере приложений 1С, позволяющие создавать и использовать COMОбъект "Excel.Application" на сервере 1С. Это поможет обработать большие файлы excel на сервере, в том числе через фоновые задания. Все описанные действия родились по мотивам прочтения тысячи форумов и было опробовано сначала на разработческом сервере, затем на боевом. Поэтому решил выложить это сюда, наверняка спасет вам хотя бы 1 день жизни.

27.01.2015    55610    vet7777    55       

Использование подсистемы "Управление доступом" из состава БСП версии 2.2+ 227

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

В статье описана последовательность манипуляций с подсистемой "Управление доступом" из библиотеки стандартных подсистем "1С" (БСП), результатом которых является реализация возможности настройки ограничения доступа к данным на уровне записей таблиц базы данных (RLS), применяя в качестве разграничителя доступа (критерия ограничения) любой из справочников конфигурации. Данная статья полезна для разработчиков, которые имеют дело либо с одной из типовых конфигураций "1С" (таких как "Бухгалтерия предприятие 3.0" или "Управление торговлей 11"), либо собираются внедрять (или дорабатывать) указанную выше подсистему в какую-либо другую конфигурацию.

18.11.2014    56964    Bassgood    81       

Открытие файлов внешних обработок/отчетов без проблем с безопасным режимом в 1С 8.3 (Разрешаем доступ к привилегированному режиму исполнения кода для безопасного режима настройкой профиля безопасности кластера) 33

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность Администрирование данных 1С

Если по какой-то причине вы используете внешние файлы обработок/отчетов (через меню файл - открыть...), то наверняка столкнулись с проблемой невозможности выполнения элементарных операций записи данных. Помогут профили безопасности кластера сервера 1С.

12.09.2014    35017    Puk2    7       

Использование механизма разделения данных вместо RLS 82

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность

RLS, как известно, подтормаживает систему. 1С уже давненько реализовала механизм разделения данных, но до сих пор он не используется в типовых конфигурациях. Интересно, почему?

06.09.2014    42750    newgluk    35       

Некоторые особенности работы с настройками прав доступа пользователей в типовых конфигурациях на управляемом приложении 165

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность

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

04.09.2014    71956    Stim213    31       

Что делать если платформа 8.3 не видит программные ключи 8.2 57

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность Администрирование данных 1С

Столкнулся с тем что при установке двух платформ 1С 8.3 и 8.2 на один сервер, 8.3 не видит программные ключи, После поиска в просторах интернета нужной инфы не нашел, и пришлось писать в техподдержку, вот что ответили:

18.06.2014    53010    Andruykha    25       

Распределение ролей пользователей к информационной базе для проверки аудиторами в типовых конфигурациях БП, ЗУП, ЗКБУ и БГУ. 6

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Роли и права

В данной статье мы рассмотрим методику создания ролей пользователей к информационным базам для проверки аудиторами в типовых конфигурациях .

13.05.2014    22458    OV_GCompany    5       

Управление торговлей 11.1 - настройка нестандартных ролей 69

Статья Системный администратор Программист Нет файла v8 УТ10 Россия Windows Бесплатно (free) Информационная безопасность Пользователю системы Администрирование данных 1С

Особенности настройки прав в УТ 11.1 ..рано или поздно, пользователям становится недостаточно того "мощного" функционала, что придуман в УТ 11.1, и дается задание для программиста 1С, чтобы он настроил более тонкие изменения, и ограничения прав.

11.05.2014    67981    Lapitskiy    18       

Задублированные лицензии 5

Статья Системный администратор Нет файла v8 Windows Бесплатно (free) Информационная безопасность

Исправление ошибки: "На компьютере используются две копии одного и того же файла программной лицензии".

17.04.2014    19086    greenLiss    8       

1С УПП. Перемещение товаров. Ограничение по складам и подразделениям 7

Статья Программист Нет файла v8 УПП1 Россия Windows Оптовая торговля Производство готовой продукции (работ, услуг) Бесплатно (free) Информационная безопасность

1. Описание стандартного механизма ограничения Доступа на уровне записей для документа Перемещение товаров при одновременном использовании ограничений по Подразделениям и Складам 2. Настройка доступа к документу Перемещение товаров, только при условии доступности обоих складов (Склад-получатель и Склад-отправитель) документа

21.01.2014    15673    DenDSMG    1       

Отключение режима Конфигуратор для пользователей 1С 27

Статья Системный администратор Нет файла v8 Россия Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Часто бывает так, что из-за специфики работы бухгалтера, ему нужно давать полные права. А это дает возможность залезать в Конфигуратор. Также при ошибке открытия или функционирования сторонних обработок программа предлагает посмотреть и исправить дело в Конфигураторе. Естественно, пользователи программ 1С не будут сами разбираться с возникшими проблемами, а вот полазить и пощелкать мышкой очень даже могут. Так как можно заблокировать им доступ в конфигуратор? Очень короткая статейка показывает самый быстрый, на мой взгляд, и , главное, эффективный способ блокировки входа в Конфигуратор на примере 1С 8.2.

08.11.2013    23669    xten    26       

Как ограничить "кривые руки" с полными правами или нужны ли в 1С “супер-права”? 10

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность

Предлагается вариант решения проблемы ограничения прав пользователей с "полными правами" в режиме 1С:Предприятие на доступ к функционалу, имеющему критическое значение для целостности данных и общего функционирования системы.

01.11.2013    24763    yuraos    32       

Как подружить две версии СЛК (система лицензирования и защиты конфигурации) на одном компьютере 32

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Ни для кого не секрет, что практически все продукты 1С:Совместимо если имеют какую-то защиту, то это СЛК. Причем разные конфигурации могут использовать разные версии СЛК. И не всегда получается их подружить. В этой статье пойдет речь как раз об этом.

07.11.2012    43038    mmk83    23       

УТ 10.3 Контролируем остатки автоматически 10

Статья Программист Нет файла v8 УТ10 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия УУ Windows Учет ТМЦ Бесплатно (free) Роли и права

Один из менеджеров довольно крупной торговой конторы стройматериалов озадачил сделать ему так, чтобы "Торговля" сама предупреждала его о минимальном остатке товара на складах, так как "я сам постоянно забываю смотреть отчеты по точкам заказам и остаткам товаров, много организационной работы". Раньше немного занимался Delphi для души и немного для работы, сейчас же больше полугода работаю с 1С, и первое, что мне пришло в голову это Таймер на главной форме с запросом проверяющем остатки и выдающим предупреждение.

25.10.2012    14924    aleksxx    5       

1С 8.2 Новые релизы. Борьба с нехваткой лицензий! 208

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Как то раз после очередного обновления платформы начались чудеса. Вдруг стало не хватать лицензий. При этом часть пользователей успешно подключалась к базам, опоздавшие впадали в панику и звали специалистов. После безуспешных заклинаний Alladina, в лице его monitora, показывавшего наличие свободных лицензий, последние (специалисты) впадали туда же (+ нецензурное бескультурье) и кидались бороздить просторы интернета в поисках ответа на извечный вопрос "Что делать". А ларчик то просто открывался!

11.10.2012    86607    altar    86       

Запрет на запись документов/справочников/РегистрСведений (ТолькоПросмотр) 24

Статья Системный администратор Программист Нет файла v8 БП2.0 УПП1 Россия Бесплатно (free) Информационная безопасность Практика программирования Администрирование данных 1С

Частенько приходится слушать от руководства: "запретить этому пользователю, запись этого документа\справочника"... А через какое-то время, почему тот-то не может записать справочник/документ. Вот и родилась идея оперативного запрета/разрешения записи документа/справочника/рс.

13.08.2012    17205    KonstB    15