powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Настройка ограничения доступа к данных в 8.1
34 сообщений из 34, показаны все 2 страниц
Настройка ограничения доступа к данных в 8.1
    #35903072
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Кто нибудь сталкивался с настройкой прав к полям справочника в ролях 8.1?
В справке минимум описан и ничего непонятно, сказано что подмножество языка запросов, но какая его часть ни слова. Хочу сделай критерий доступа к справочнику Подразделения, но проблема что надо чтобы правило применялось еще и ко всем подчиненным этим подразделениям структурным единицам. Разрешенные для просмотра подразделения храняться в отдельном справочнике и определены для каждого пользователя в отдельности. Запрос есть который выбирает множество разрешенных подразделений, но вот это подмножество языка запроса не хочет его признавать.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35903094
Фотография mista2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос выкладывай мы чё тебе телепаты
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35903134
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кури не справку, а штатную документацию по платформе.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35903144
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в конструкторе запросов он отлично работает
Вот сам запрос:
ВЫБРАТЬ
ПодразделенияОрганизаций.Ссылка
ИЗ
Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ГДЕ
(ПодразделенияОрганизаций.Родитель В ИЕРАРХИИ
(ВЫБРАТЬ
ПодразделенияОрганизаций.Ссылка КАК Наименование
ИЗ
Справочник.Доступ КАК Доступ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ПО Доступ.Подразделения.Подразделение = ПодразделенияОрганизаций.Ссылка
ГДЕ
Доступ.Пользователь = &Пользователь)
ИЛИ
ПодразделенияОрганизаций.Ссылка В
(ВЫБРАТЬ
ПодразделенияОрганизаций.Ссылка КАК Наименование
ИЗ
Справочник.Доступ КАК Доступ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ПО ДоступКДокументу.Подразделения.Подразделение = ПодразделенияОрганизаций.Ссылка
ГДЕ
Доступ.Пользователь = &Пользователь))
И
(ПодразделенияОрганизаций.Ссылка = &Подразделение)
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35903152
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сисой,
которая в програмфайлс/1с81?
читал, там тоже все довольно поверхностно написано
вся проблема то в том что конкретные люди должны смотреть определеный сегмент данных
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35903268
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты будешь смеяться, но выражение В ИЕРАРХИИ в RLS не работает.
Вариантов два: или тупо писать Подразделение.Родитель.Родитель и т.д. :-)
или при старте системы формировать полный массив подразделений, доступных пользователю, класть его в ПараметрСеанса и всякий раз проверять на вхождение.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35903282
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
Как этот запрос то в ограничения запихать, чтобы он срабатывал?
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35903353
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сами примеры написания ограничений доступа в ролях у кого нибудь есть?
только, не где указывается 1 параметр, а где используются данные из запроса.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35904476
Estel I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в УПП типовом
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35904758
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где можно взять этот типовой?
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35904822
Estel I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм... купить. А как Вы хотели?
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35904842
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне не нужна УПП, мне интересно решается мой вопрос. Покупать УПП ради того, чтобы посмотреть как решена одна задача нецелесообразно.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35905483
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Protasoffсами примеры написания ограничений доступа в ролях у кого нибудь есть?
только, не где указывается 1 параметр, а где используются данные из запроса.

А ты не догадываешься, что построенное таким образом RLS-ограничение будет тормозить всю твою систему? Именно поэтому в типовых используется кэш параметров сеанса, а не обращение к подзапросам.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35905590
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понимаю, но уж очень они хотят построить высокие заборы для защиты данных от нежелательных взглядов. Другого варианта я не могу придумать.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35905899
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProtasoffПонимаю, но уж очень они хотят построить высокие заборы для защиты данных от нежелательных взглядов. Другого варианта я не могу придумать.

У вас настройки доступа меняются ежечасно для одних и тех же юзеров?
Если нет, брось изобретать велосипед и делай как принято: через создание массива - ПараметраСеанса при старте клиентской сессии.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35907141
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как это организовать правильно в параметрах сеанса?
Я думал сделать через справочник в котором было соответствие пользователя с разрешенными подразделениями. Только есть нюанс в виде вложенных в эти подразделения структур, а их очень много. И документов с отчетами в которых надо закрывать просмотр информации много. А как я понимаю через параметр сеанса это надо в каждом документе и отчете прописывать доступ. Еще бы знать как, то можно было. К сожалению не сталкивался с этим по работе. Подскажите как что выстроить по порядку, буду очень признателен.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35907583
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще простого.
Делаешь справочник, как и думал.
В нем прописываешь соответствие подразделениям верхнего уровня.
ПриНачалеРаботыСистемы считываешь запросом В ИЕРАРХИИ все подразделения, доступные ТекущемуПользователю, далее командой Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку() помещаешь подразделения в ПараметрСеанса типа фиксированный массив.
Ну а дальше дело техники, RLS:

ГДЕ Подразделение В (&МассивДоступныхПодразделений)
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35907682
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Параметр в ограничении доступа он &Массив он сам распознает? его нигде указывать не надо?
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35907920
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нигде. Это имя ПараметраСеанса.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35908055
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду пробовать
спасибо за подробнее пояснения
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35908189
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГДЕ Подразделение В (&МассивДоступныхПодразделений)

Подразделение - это где определить?
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35908290
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
УРААА
Все получилось!
Огромное спасибо
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35909740
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда вот так делаю, он ругается на недостаточно фактических параметров.
Подскажите какая ошибка в синтаксисе.


Запрос = Новый Запрос;
Запрос.Текст = "
ВЫБРАТЬ
ПодразделенияОрганизаций.Ссылка
ИЗ
Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ГДЕ
(ПодразделенияОрганизаций.Родитель В ИЕРАРХИИ
(ВЫБРАТЬ
ПодразделенияОрганизаций.Ссылка КАК Наименование
ИЗ
Справочник.ДоступКДокументу КАК ДоступКДокументу
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ПО ДоступКДокументу.Подразделения.Подразделение = ПодразделенияОрганизаций.Ссылка
ГДЕ
ДоступКДокументу.Пользователь = &Пользователь)
ИЛИ
ПодразделенияОрганизаций.Ссылка В
(ВЫБРАТЬ
ПодразделенияОрганизаций.Ссылка КАК Наименование
ИЗ
Справочник.ДоступКДокументу КАК ДоступКДокументу
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ПО ДоступКДокументу.Подразделения.Подразделение = ПодразделенияОрганизаций.Ссылка
ГДЕ
ДоступКДокументу.Пользователь = &Пользователь))";

Запрос.УстановитьПараметр("Пользователь", Пользователь);
Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку();
ПараметрыСеанса.ДоступПоПодразделениям = Результат;
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35909766
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПараметрыСеанса.ДоступПоПодразделениям = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
так тоже не получается
Ошибка при получении аттрибута контекста
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35909988
Сисой2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
ВЫБРАТЬ
ПодразделенияОрганизаций.Ссылка как Ссылка
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35910025
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и так пробовал, не помогло
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35910802
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается что он в фиксированный массив не хочет записывать ничего, т.к. не сопоставляет типы. Пробовал результат выборки записывать в массив и его занести в параметры сеансы, все равно не признает. Что может помочь с ними непонятно
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35914187
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал Параметр сеанса по доступу привязать к специально созданному справочнику. Тоже не видит его.
С фиксированным массивом никто не работал что ли?
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35915341
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
ПараметрыСеанса.СписокПодразделений=Новый ФиксированныйМассив(ПолучитьПодразделенияДляДоступа().ВыгрузитьЗначения());

...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35915876
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПолучитьПодразделенияДляДоступа().ВыгрузитьЗначения() - это откуда брать?
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35916207
сисойка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПолучитьПодразделенияДляДоступа() - в данном примере своя функция, возвращающая СписокЗначений.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35916316
Protasoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался, большое спасибо.
RLS жестко работает, видимо все таки придется прописывать конкретно все подразделения )))
И по сотрудникам еще отдельно надо будет сделать.
...
Рейтинг: 0 / 0
Настройка ограничения доступа к данных в 8.1
    #35952044
Использование встроенного механизма ограничения доступа в 8.1 (Управление торговлей)
Пример для справочника с небольшим числом строк (по типу справочника "Организации")

Ограничения доступа по кассам

В конфигураторе:

Перечисления/ВидыОбъектовДоступа/Значение - добавить Кассы

РегистрыСведений/ОбъектыДоступаДокументов/Измерения/ОбъектДоступа - добавить тип Справочник.Кассы

РегистрыСведений/НастройкиПравДоступаПользователей/Измерения/ОбъектДоступа - добавить тип Справочник.Кассы
РегистрыСведений/НастройкиПравДоступаПользователей/Измерения/ВладелецПравДоступа - добавить тип Справочник.Кассы

Общие модули/НастройкаПравДоступа/ПолучитьВидОбъектаДоступа:
Функция ПолучитьВидОбъектаДоступа(ОбъектДоступа) Экспорт

Если ТипЗнч(ОбъектДоступа) = Тип("СправочникСсылка.Организации") Тогда
Возврат Перечисления.ВидыОбъектовДоступа.Организации;
//ДОБАВЛЯЕМ ТЕКСТ
ИначеЕсли ТипЗнч(ОбъектДоступа) = Тип("СправочникСсылка.Кассы") Тогда
Возврат Перечисления.ВидыОбъектовДоступа.Кассы;
//ДОБАВЛЯЕМ ТЕКСТ
ИначеЕсли ТипЗнч(ОбъектДоступа) = Тип("СправочникСсылка.ГруппыДоступаККонтрагентам") Тогда
Возврат Перечисления.ВидыОбъектовДоступа.Контрагенты;
Иначе
Возврат Перечисления.ВидыОбъектовДоступа.ПустаяСсылка();
КонецЕсли;

КонецФункции

Для интерактивной настройки прав доступа - необязательная часть

Обработки/НастройкаПравДоступа/Формы/НастройкаПравДоступа/Форма - добавить копированием страницу "Кассы", добавить копированием на страницу табличное поле ТаблицаПравДоступа_Кассы

Обработки/НастройкаПравДоступа/Формы/НастройкаПравДоступа/Форма/ПередОткрытием:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

Если НЕ ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей Тогда
Предупреждение("В конфигурации отключено использование ограничения прав доступа не уровне записей.");
Отказ = Истина;
Возврат;
КонецЕсли;

ТипыОбъектовДоступа = Новый Структура;

ТипыОбъектовДоступа.Вставить("Организации", Тип("СправочникСсылка.Организации"));
ТипыОбъектовДоступа.Вставить("Контрагенты", Тип("СправочникСсылка.ГруппыДоступаККонтрагентам"));
//ДОБАВЛЯЕМ ТЕКСТ
ТипыОбъектовДоступа.Вставить("Кассы", Тип("СправочникСсылка.Кассы"));
//ДОБАВЛЯЕМ ТЕКСТ


СсылкаОбъекта = ЭтаФорма.КлючУникальности;
МетаданныеОбъекта = СсылкаОбъекта.Метаданные();

Если Не НаличиеПраваНаЧтениеСсылки(СсылкаОбъекта) Тогда
Предупреждение("Отсутствует право на чтение объекта!");
Отказ = Истина;
Возврат;
КонецЕсли;

НастройкаПользователя = ТипЗнч(СсылкаОбъекта) = Тип("СправочникСсылка.ГруппыПользователей");

СформироватьЗакладки();
ОбновитьОтборПоНаследуемымЗаписям();

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

Заголовок = Заголовок + ": " + ?(НЕ ЗначениеЗаполнено(МетаданныеОбъекта.Синоним), МетаданныеОбъекта.Имя, МетаданныеОбъекта.Синоним) + ": " + ?(НЕ ЗначениеЗаполнено(СсылкаОбъекта),"<Весь справочник>", Строка(СсылкаОбъекта));

КонецПроцедуры


Обработки/НастройкаПравДоступа/Формы/НастройкаПравДоступа/Форма/ПолучитьСписокОбластейДанных:

Функция ПолучитьСписокОбластейДанных(ТипДанных)

СписокОбластей = Новый СписокЗначений;
Если ТипДанных = Тип("СправочникСсылка.Организации") Тогда
СписокОбластей.Добавить(Перечисления.ВидыОбъектовДоступа.Организации);
//ДОБАВЛЯЕМ ТЕКСТ
ИначеЕсли ТипДанных = Тип("СправочникСсылка.Кассы") Тогда
СписокОбластей.Добавить(Перечисления.ВидыОбъектовДоступа.Кассы);
//ДОБАВЛЯЕМ ТЕКСТ
ИначеЕсли ТипДанных = Тип("СправочникСсылка.ГруппыДоступаККонтрагентам") Тогда
СписокОбластей.Добавить(Перечисления.ОбластиДанныхОбъектовДоступа.КонтрагентыСписок);
ИначеЕсли ТипДанных = Тип("СправочникСсылка.ГруппыПользователей") Тогда
// Добавим только те виды объектов доступа, для которых нет областей данных
СписокОбластей.Добавить(Перечисления.ВидыОбъектовДоступа.Организации);
//ДОБАВЛЯЕМ ТЕКСТ
СписокОбластей.Добавить(Перечисления.ВидыОбъектовДоступа.Кассы);
//ДОБАВЛЯЕМ ТЕКСТ

// Добавим все области данных
Для каждого Перечисление Из Перечисления.ОбластиДанныхОбъектовДоступа Цикл
СписокОбластей.Добавить(Перечисление);
КонецЦикла;
КонецЕсли;

Возврат СписокОбластей;

КонецФункции

Конец Для интерактивной настройки прав доступа - необязательная часть

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

В предприятии:

В настройках параметров учета поставить галочку "Ограничивать права доступа на уровне записей". Создать группы пользователей в справочнике ГруппыПользователей, определить их состав. Поставить галочку для вида объекта доступа, по которому будут установлены ограничения - Кассы.
Заполнить регистр НастройкиПравДоступаПользователей - вручную или интерактивно обработкой "НастройкаПравДоступа" (Кнопка "Права" с справочнике ГруппыПользователей).
Для корректной работы механизма ограничений заполнить регистр сведений ОбъектыДоступаДокументов - перепровести документы, к которым относятся ограничения доступа. Если этого не делать, в журналах и списках документов они будут видны, но открываться не будут.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Настройка ограничения доступа к данных в 8.1
    #37615696
Domastir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Марина Васильевна,

добрый день! воспользовался вашим мануалом но настройке ограничения по кассам... но при запуске базы выдает следующую ошибку


{Обработка.НастройкаПравДоступа.Форма.НастройкаПравДоступа.Форма(364)}: Значение не является значением объектного типа (Метаданные)
МетаданныеОбъекта = СсылкаОбъекта.Метаданные();

подскажите пожалуйста где я что то сделал не так... заранее благодарен...
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / [игнор отключен] [закрыт для гостей] / Настройка ограничения доступа к данных в 8.1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]