Имя: Пароль:
1C
1С v8
RLS в Рознице 2.3
,
0 zippygrill
 
03.06.21
09:27
Привет!
Не получается побороть ошибку с RLS в типовой Рознице 2.3. последнего релиза.
Звучит она так и проявляется только при нажатии на Обмен с ЕГАИС из любого раздела (ЗАкупки, Продажи):

{(93, 15)}: Поле не найдено "Т.ТорговыйОбъект"
ЕСТЬNULL(Т.<<?>>ТорговыйОбъект, НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО
{ОбщийМодуль.ИнтеграцияИС.Модуль(551)}:    Результат = Запрос.ВыполнитьПакет();
{Обработка.ПанельОбменЕГАИС.Форма.Форма.Форма(1006)}:    РезультатыЗапроса = ИнтеграцияИС.ВыполнитьПакетЗапросов(Запрос, ТекстыЗапроса);
{Обработка.ПанельОбменЕГАИС.Форма.Форма.Форма(22)}:    ОбновитьСпискиДокументов();

по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: 'Документ.ТранспортнаяНакладнаяЕГАИС', поле: 'ПометкаУдаления'; право: 'Чтение'
{(93, 15)}: Поле не найдено "Т.ТорговыйОбъект"
ЕСТЬNULL(Т.<<?>>ТорговыйОбъект, НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО
по причине:
{(93, 15)}: Поле не найдено "Т.ТорговыйОбъект"
ЕСТЬNULL(Т.<<?>>ТорговыйОбъект, НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО

В базе у меня включен rls по магазинам только. К самому документу ТранспортнаяНакладнаяЕГАИС добавлены роли:
*Добавление изменение документов ЕГАИС РТ
*Добавление изменение транспортных накладных ЕГАИС
*Чтение документов ЕГАИС РТ
*Чтение транспортных накладных ЕГАИС

Все эти 4 роли включены в профиль "Кассир расширенный" под которым работает сам кассир.
ИЗ испробованного чтобы локализовать ошибку:
1. кассиру дал другой профиль Управляющий (тоже ограничение по магазинам) - ошибка перестала проявляться

стал сравнивать роли этих профилей, чтобы привести по минимум к одному - не помогло. ДО обновления под этим профилем всегда работали кассиры, RLS стандартный. Пробовал переключить на Производительный -тоже не помогло. База клиент-серверная

Что еще бы посоветовали посмотреть?
1 zippygrill
 
03.06.21
10:52
апну
4 Kongo2019
 
03.06.21
11:31
RLS в Рознице 2.3 зло. Он там никогда нормально не работал.
5 kaerlaeda2
 
03.06.21
11:51
Дак победил кто? Или всему кагалу права давать админские?
6 zippygrill
 
03.06.21
11:54
(5) либо отключить rls, либо повысить права, например как у Управляющего (у него нет полных прав)
7 CepeLLlka
 
03.06.21
12:42
(2)RLS адекватно работает на объекты не связанные с ТТН ЕГАИС..

Я тоже не дожал ошибку в (0), с разбегу не получилось, а много времени тратить на это нет возможности.

Поэтому разделение по магазинам работает, всё норм, но вот ТТНки каждый магазин видит все пока что с сожалению :(
9 zippygrill
 
03.06.21
13:14
(7) ТТН никогда по магазинам не фильтровались несмотря на включенный rls.
Еще эта ошибка возникает при создании ТТН исходящей из перемещения. В 2х местах получается нужно Привилегированный режим ставить
11 kaerlaeda2
 
03.06.21
16:00
Заметил прикольную штуку - если отправитель ТТН ЕГАИС не ставит у себя флаг передачи прав собственности, то ТТНки отлично открываются под любым пользователем. И в ТТН появился соответствующий раздел. В транспортном разделе при установленном у поставщика флаге передачи собственности предлагается оформить транспортную накладную ЕГАИС.
12 Rybakit
 
24.07.21
21:30
(0) Я не утверждаю что это правильно, но позволяет обойти проблему при открытии обработки "Панель обмена с ЕГАИС" (Для ТТН входящей отдельное решение)

Нужно создать расширение и перехватить функцию ВыполнитьПакетЗапросов Общего модуля ИнтеграцияИС

&Вместо("ВыполнитьПакетЗапросов")
Функция Форм_ВыполнитьПакетЗапросов(Запрос, ТекстыЗапроса, ВыгрузитьРезультат)
    
    УстановитьПривилегированныйРежим(Истина);
    Результат = ПродолжитьВызов(Запрос, ТекстыЗапроса, ВыгрузитьРезультат);
    Возврат Результат;
    
КонецФункции
13 CepeLLlka
 
24.07.21
22:50
(12)Можно просто убрать у пользователя роли в названии которой есть "ЕГАИС РТ", если сам РЛС не нужен, то работать будет.