Имя: Пароль:
1C
1С v8
Странное поведение РЛС на регистр накопления
🠗 (Волшебник 09.01.2025 17:25)
,
0 Ник080808
 
09.01.25
16:58
Добрый день. есть КА первая в хлам переписанная. обычные формы. Платформа 1С:Предприятие 8.3 (8.3.24.1342). Есть регистр взаиморасчетов. Есть самописная роль с самописной рлс на право чтения этого регистра.
Делаю запрос вида
Выбрать Контрагент из РегистрНакопления.Взаиморасчеты где контрагент = &Контрагент.
Выводит записи. Делаю  
Выбрать Контрагент из РегистрНакопления.Взаиморасчеты.Обороты() где контрагент = &Контрагент.
Пусто.
Признаюсь сразу, с рлс работал давно и мало. Но я так понимаю, что на физическую таблицу и на виртуальную должно же одинаково работать?
1 Волшебник
 
09.01.25
17:05
Выбрать РАЗРЕШЕННЫЕ
2 Волшебник
 
09.01.25
17:06
Обороты надо выбирать за период
Отбор по контрагенту можно вставить в параметры виртуальной таблицы
3 Волшебник
 
09.01.25
17:06
Если Вы не работали с RLS, то и не суйтесь туда! Там вас ждёт ад!
4 Волшебник
 
09.01.25
17:08
RLS надо накладывать на справочник
5 Ник080808
 
09.01.25
17:22
(1) поставил, не помогло. (2) так же
6 Волшебник
 
09.01.25
17:25
(5) да иди ты в жопу
7 Волшебник
 
09.01.25
17:25
тупой бот
8 Ник080808
 
09.01.25
17:36
(6) я не из ваших.
9 Ник080808
 
09.01.25
17:36
какие ещё есть варианты?
10 maxab72
 
09.01.25
17:39
(0) Так приведи текст наложенного на регистр ограничения. Может оно тоже совершенно не типовое, и ограничивает, например по группе контрагента или его адресу, или еще как.
11 Ник080808
 
09.01.25
17:42
(10)    
ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
            ИЛИ (НЕ 1 В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        1 КАК ПолеОтбора
                    ИЗ
                        РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                    ГДЕ
                        НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                        И ВЫБОР
                            КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                И ТекущаяТаблица.#Параметр(1) ССЫЛКА Справочник.Организации
                                И НЕ ТекущаяТаблица.#Параметр(1) = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                                ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    (ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                            НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1)
                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                                                И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                    КОНЕЦ
                            КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                И ТекущаяТаблица.#Параметр(2) ССЫЛКА Справочник.Контрагенты
                                И НЕ ТекущаяТаблица.#Параметр(2) = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                                ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    Справочник.Контрагенты КАК Контрагенты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                            НастройкиПравДоступаПользователей.ОбъектДоступа = Контрагенты.ГруппаДоступаККонтрагенту
                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                                                И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи))
                                                ГДЕ
                                                    Контрагенты.Ссылка = ТекущаяТаблица.#Параметр(2))
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                    КОНЕЦ
                            ИНАЧЕ ИСТИНА
                        КОНЕЦ = ЛОЖЬ))
                        И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL)
                        
    И
            (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
    ИЛИ ТекущаяТаблица.#Параметр(3) = Договоры.Ссылка)
12 Ник080808
 
09.01.25
17:43
(10) просто непонятно, почему на таблицу обороты накладывается ограничение, а на физическую нет?
13 Волшебник
 
09.01.25
17:51
(11) говнокод
14 Волшебник
 
09.01.25
17:51
(12) и на физическую накладываются. Не надо тут брехать
15 Timon1405
 
09.01.25
18:18
ресурсы виртуальной таблицы обороты() сгруппированы по выбранным в запросе измерениям. скорее всего в вашем периоде обороты(*) по данному контрагенту сумма записей выходят в 0 и выводится 0 строк. поменяйте даты в параметрах оборотов
16 Волшебник
 
09.01.25
18:20
Он не задал период
17 Ник080808
 
09.01.25
19:33
в общем какой то странный глюк платформы. закомментировал текст рлс зашел под пользователем. видит движения. вернул текст рлс назад. сохранил изменения перезашел под пользователем - видит все записи. Ветку можно закрывать
18 Волшебник
 
09.01.25
19:43
(17) вы все врёте! Никаких глюков платформы на уровне RLS не существует
19 Franchiser
 
гуру
10.01.25
02:34
(0) используйте ИР, там есть отладка rls
20 Волшебник
 
10.01.25
02:36
(19) Такого быть не может
21 Franchiser
 
гуру
10.01.25
02:44
Инструмент "Редактор ограничения доступа" преобразует шаблоны rls в язык запросов 1С.
https://devtool1c.ucoz.ru/index/redaktor_ogranichenija_dostupa/0-67
22 Волшебник
 
10.01.25
02:47
(21) Я гляну