Имя: Пароль:
1C
 
Настройка RLS для подразделений в БП
0 Kelasiys
 
20.10.25
18:28
Привет! Нужна помощь с корректным написанием параметров для RLS.

Роль "ДобавлениеИзменениеСведенийОбОрганизациях" дает доступ к справочнику "Подразделения", однако работает так, что дает доступ ко всем подразделениям, где установлена главенствующая организация (к которой есть доступ).

Меня такой расклад не устраивает, мне нужно ограничить по 1 конкретному подразделению.

Поэтому я вынес роль в расширение и стал менять RLS, прописал следующее:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениямРасширенный("Справочник.ПодразделенияОрганизаций", "Чтение",
"",
"",
"",
"ПодразделенияОрганизаций", "Ссылка", "",
"", "","",
"","", "",
"", "", "",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","",""
)
#КонецЕсли


Однако ошибка говорит, что ссылка поле неявное. В документах был реквизит "ПодразделениеОрганизации", а в справочнике у меня и реквизита "ССылка" даже нет.

Вырезка из шаблона ограничений:

И ("#Параметр(6)" = "" И "#Параметр(7)" = ""
         Или Не &ОграничениеДоступаНаУровнеЗаписейИспользуется
           И Не СтрСодержит(",Объект, ,ПравоЧтения,ПравоИзменения,ПравоЧтенияПоИдентификатору,ПравоИзмененияПоИдентификатору,", ",#Параметр(6),"))
1 Ненавижу 1С
 
гуру
21.10.25
08:09
1. С такими знаниями вы далеко не уедете
2. Завтра захотят разделение в проводках по подразделениям. А подразделения не балансовое измерение. Будет некрасиво
2 Мультук
 
гуру
21.10.25
08:26
(0)

>>а в справочнике у меня и реквизита "ССылка" даже нет

Бедный справочник
3 Eiffil123
 
21.10.25
09:19
(1) тоже про это сразу подумал. плюс еще есть счета, которые не ведутся по подразделениям. А без разделения бух.регистра задача не имеет смысла
4 craxx
 
21.10.25
09:54
(0)
а в справочнике у меня и реквизита "ССылка" даже нет

Посмеялся
5 Волшебник
 
21.10.25
09:58
(0) Вас это вообще не должно волновать. Занимайтесь простейшими задачами. Не лезьте туда, где Вы ничего не понимаете.
6 Kelasiys
 
21.10.25
10:07
(5) (3) (1)
Однако для документов у меня получилось сделать ограничения. Потому что там есть конкретный реквизит.

Для справочника у меня не получается сделать ограничение. Я не понимаю, к чему прописывать ограничение.
7 Kelasiys
 
21.10.25
10:09
Я не говорю, что мне ВЕЗДЕ нужно ограничение. В конкретных местах.

Зачем ограничивать доступ к справочнику? Потому что документ создать нельзя (я поставил ограничение), однако подразделение выбрать на форме можно (на справочник нет ограничения).
8 Valdis2007
 
21.10.25
10:14
(0) "Меня такой расклад не устраивает"...А Вы там кто?
9 Волшебник
 
21.10.25
10:15
(6) Не надо нам рассказывать сказки.
10 Волшебник
 
21.10.25
10:16
(8) тупой бот по подписке. Вот закинули ему промт, а он Ссылку не может найти в справочнике.
11 Kelasiys
 
21.10.25
10:20
(9) сказки пока только ты придумываешь
(8) есть задача, я ее решаю
12 Волшебник
 
21.10.25
10:25
(11) Ссылку нашёл?
13 Kelasiys
 
21.10.25
10:32
(12) Нет, вижу ее только в стандартных реквизитах. Но RLS не понимает то, что я пишу.
>ссылка поле неявное
14 Eiffil123
 
21.10.25
10:34
(13) ну это как сказать. сегодня это поле неявное, а завтра может станет явное. А бывает явное, а завтра станет неявным
15 Волшебник
 
21.10.25
10:41
(13) Чего это неявное? Нормальное поле. Это Вы неявный, мерцаете.
16 Kelasiys
 
21.10.25
11:00
(14) (15) не знаю, что ответить вам. К ссылке достучаться по разному пробовал. Хотел бы я знать, почему оно неявное.
Гуглятся примеры, там все прекрасно у людей через ссылку работает.
17 craxx
 
21.10.25
11:02
(0) Ну и до кучи, Вы вообще как себе представляете разделение RLS по подразделениям? А банк как делить? А взаиморасчеты с контрагентами?
18 Ненавижу 1С
 
гуру
21.10.25
11:03
посмотри как сделано ограничение на справочник Организации и сделай по аналогии, если сможешь
19 craxx
 
21.10.25
11:04
(18) 1) не сможет
2) Делить бухучет по подразделениям - в принципе нереально, потому что нарушается принцип полноты и целостности бухучета.
20 Kelasiys
 
21.10.25
11:28
(18) да, я так и начал делать.
Если в документах шаблон ограничений простой, то здесь (по подразделениям) он позволяет видеть те подразделения, которые имеют главенствующую организацию.

Я отказался от этого, стер все параметры и пытаюсь по аналогии подставить право ПодразделенияОрганизаций. Ну а дальше имею, что имею.
21 Kelasiys
 
21.10.25
11:30
(17) Не хватает мне знаний, чтобы глобально понять такие вещи.
Я лишь знаю, что у меня получилось добавить ограничение для конкретных документов. И следующая моя цель - справочники.

Это все происходит в разрезе кастомного интерфейса. Очень мало объектов доступно сотруднику.
22 Kelasiys
 
21.10.25
11:36
(19) "Делить бухучет по подразделениям"
Участвует же типовое право. Просто оно не прописано для многих документов и справочников в RLS.
23 Kelasiys
 
21.10.25
11:49
Вот так выглядит типовой код. Я выбрал путь очищения всех этих параметров.

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
// ОрганизацияЧтение
// Можно читать если есть доступ к (по или)
// Организации
// Головной организации данной организации
// Любой организации с головной организацией равной головной организации данной
#ПоЗначениямРасширенный("Справочник.ПодразделенияОрганизаций", "Чтение",
"",
"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК ОбособленныеПодразделения
ПО
    Т.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
    И (
        Т.ГоловнаяОрганизация = ОбособленныеПодразделения.ГоловнаяОрганизация
        ИЛИ
        Т.ГоловнаяОрганизация = ОбособленныеПодразделения.Ссылка
      )
    ИЛИ
    (
    Т.Владелец = ОбособленныеПодразделения.ГоловнаяОрганизация
    ИЛИ
    Т.Владелец = ОбособленныеПодразделения.Ссылка
    )
    ",
"",
"Организации", "Т.Владелец", "ИЛИ (",
"Организации", "Т.Владелец.ГоловнаяОрганизация","И",
"","Т.Владелец.ГоловнаяОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)", ") ИЛИ",
"Организации", "ОбособленныеПодразделения.Ссылка", "",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","",""
)
#КонецЕсли
24 Kelasiys
 
21.10.25
14:10
Получилось. Чтобы пробиться к ссылке, нужно было использовать почему-то таблицу, про которую было написано в шаблоне ограничения.

(18) спасибо за направление

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениямРасширенный("Справочник.ПодразделенияОрганизаций", "Чтение",
"",
"",
"",
"ПодразделенияОрганизаций", "Т.Ссылка", "",
"", "","",
"","", "",
"", "", "",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","","",
"","","", "","","", "","","", "","",""
)
#КонецЕсли
25 unenu
 
21.10.25
14:20
(0) Я создал роль _ОграниченныйДоступКПодразелениям, создал профиль с этой ролью и "вмешался"(расширением) в глобальные отборы, с наложением отбора на список доступных подразделений. Общие методы компоновки отчетов также проверяют доступность подразделений. Списки для пользователей с этой ролью пришлось делать в режиме просмотра "Список". Все это помогло избежать ошибок открытия списков и формирования отчетов при выключении типового доступа.

Ах да, естественно это было сделано для линейного персонала(операторы, табельщики пр.). Более уполномоченным пользователям так делать не разумно.
AdBlock убивает бесплатный контент. 1Сергей