:: Не фоксом единым
1С - передача параметра в запрос при "Ограничении доступа к данным"
sphinx
Автор

Сообщений: 32141
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Коллеги, настраиваю роль "Менеджер", необходимо прописать доступ к документу "ПоступлениеТоваров", но только в части той номенклатуры, которая относится к разрешенной номенклатурной группе.

Для этого:
1) Открываю Конфигуратор-Общие-Роли-Менеджер.
2) Выбираю документ ПоступлениеТоваров
3) Ставлю нужные права
4) Иду в блок "Ограничение доступа к данным", прописываем такой код:

ПоступлениеТовара ГДЕ (НЕ ПоступлениеТовара.Товары.Номенклатура.НоменклатурнаяГруппа В (#ПоНГ))

5) Идем в Шаблоны, прописываем код шаблона ограничений #ПоНГ:

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

ВОПРОС. Как передать параметр &ТекущийПользователь?
В запросе не работает ИмяПользователя() и ПараметрыСеанса.ТекущийПользователь.

P.S. В консоли запросов параметр присваивается, а тут думаю, что он пустой/NULL, поэтому запрос возвращает ВСЕ номенклатурные группы.

P.P.S. Проверил константой (вместо параметра &ТекущийПользователь передал константу "Менеджер") - отработало как часы.


------------------
"Veni, vidi, vici!"(с)




Исправлено 1 раз(а). Последнее : sphinx, 10.06.25 09:57
Ratings: 0 negative/0 positive
Re: 1С - передача параметра в запрос при "Ограничении доступа к данным"
pasha_usue

Сообщений: 3738
Откуда: Е-бург
Дата регистрации: 06.10.2006
Всё, что идёт с амперсандом в шаблонах роли это ПараметрыСеанса. В данном случае используется ПараметрыСеанса.ТекущийПользователь. В типовых обычно ТекущийПользователь нормально проинициализирован и им можно сразу из коробки пользоваться.

А вот само ограничение роли это лютый тормоз. И, кстати, правильно работать не будет.
Ratings: 0 negative/0 positive
Re: 1С - передача параметра в запрос при "Ограничении доступа к данным"
sphinx
Автор

Сообщений: 32141
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Паш, учту. Но тут учебная задача, надо допинать, чтобы сдаться.
А как ограничивать без лютых тормозов, кстати?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: 1С - передача параметра в запрос при "Ограничении доступа к данным"
sphinx
Автор

Сообщений: 32141
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Задача сводится к:
- определить место хранения ТекущегоПользователя, для которого возможен выбор запросом, подобно неработающему:

ВЫБОР ПараметрыСеанса.ТекущийПользователь КАК Пользователь


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: 1С - передача параметра в запрос при "Ограничении доступа к данным"
sphinx
Автор

Сообщений: 32141
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
В общем сочинил такую конструкцию.
1) Создал РС РегистрацияПользователей (Пользователь, ДатаВхода)
2) В модуле сеанса в УстановкаПараметровСеанса заполнил Пользователя и ДатуВхода.
3) Вуаля, теперь простым запросом можем получить последнего пользователя системы:

ВЫБРАТЬ ПЕРВЫЕ 1
РегистрацияПользователей.Пользователь КАК Пользователь
ИЗ
РегистрСведений.РегистрацияПользователей КАК РегистрацияПользователей
УПОРЯДОЧИТЬ ПО
РегистрацияПользователей.ДатаВхода УБЫВ


P.S. Костылем, ага. Но сходу (день убил) красивого решения не придумалось и не нагуглилось. Задача учебная, поэтому будем считать годным решение.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 5 (Гостей: 5)

© 2000-2025 Fox Club 
Яндекс.Метрика