Доступ к справочнику серии номенклатуры

1. wiseserg 18.01.18 12:06 Сейчас в теме
Добрый день!
Задача такая: Кладовщик создает документ Поступление ТМЦ, в документе нужно создать
у номенклатуры серию, но возникает ошибка - "У пользователя недостаточно прав на исполнение операции над базой данных.
Права на справочник номенклатуру установлены через группу пользователей - вкладка номенклатура только на чтение.
Как пользователю можно дать права на серии номенклатуры и оставить права на номенклатуру только на чтение без изменения конфигурации?
Конфигурация УПП.
Прикрепленные файлы:
+
По теме из базы знаний
Найденные решения
22. Boneman 298 18.01.18 17:18 Сейчас в теме
(21) хотя вот сделал обработочку, проверки привелигированного режима.
запускаю под бесправным пользователем, в файловой базе,
ничего он не устанавливается, так и остается в состоянии "Ложь".

Видимо запускаешь, все таки под юзером с админскими правами, который может менять режим.
Попробуй, на юзере с обкоцанными правами проверять.

Ну или, уже не знаю.
Прикрепленные файлы:
ПривелигированныйРежимПроверка.epf
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 18.01.18 15:15 Сейчас в теме
(1) текст ошибки скорее характерен для запрета RLS, а не для недостатка прав на объекты метаданных.
+
3. wiseserg 18.01.18 15:30 Сейчас в теме
Да, в RLS у этого пользователя установлен запрет на редактирование номенклатуры
Если убрать это условие, то серии создаются, но и пользователь уже может создавать номенклатуру
Подскажите, программно можно обойти запрет RLS ?
Создание и установка серий происходит в обработке табличной части документа.
+
4. Boneman 298 18.01.18 15:37 Сейчас в теме
(3)
Подскажите, программно можно обойти запрет RLS ?

привелигированный режим
+
5. kiksi261622 18.01.18 15:43 Сейчас в теме
Это два разных справочника "Номенклатура" и "Серии номенклатуры". То есть нужно вносить тогда (чтобы "меньшей кровью") информацию в справочник "Серии номенклатуры" и там делать привязку к Владельцу (к какой номенклатуре), чтобы не было пересортицы, а потом в документе выбирать серию. Ну, если слишком сложно, то да, через RLS
+
6. wiseserg 18.01.18 15:49 Сейчас в теме
Попробовал в обработке писать вначале
УстановитьПривилегированныйРежим(Истина);
потом
УстановитьПривилегированныйРежим(Ложь);
В файловом режиме получилось, а у меня клиент серверный вариант - ничего не происходит
+
7. DarkUser 18.01.18 15:56 Сейчас в теме
(6) Если после того как вы установили ПривилегированныйРежим процедура вызывает другую процедуру, то в новой процедуре ПривилегированныйРежим не наследуется. Возможно причина в этом.
+
8. Boneman 298 18.01.18 16:04 Сейчас в теме
(6)
Попробовал в обработке писать вначале

Надо не в начале обработки писать,
а непосредственно перед недоступным влиянием на объект.
Например перед методом Записать,
или перед запрос.Выполнить

Во время исполнения кода при переходах между функциями и процедурами, привелигированный режим сразу же отключается.
+
9. wiseserg 18.01.18 16:12 Сейчас в теме
Пишу УстановитьПривилегированныйРежим вначале и в конце фнкции
Функция СоздатьНовуюСерию(Номенклатура,НомерДокумента,ДатаИзготовления)
	УстановитьПривилегированныйРежим(Истина);
	СрокГодности = Формат(ДобавитьМесяц(Дата(ДатаИзготовления+" 00:00:00"),СрокХраненияВМесяцах(Номенклатура)),"ДФ=dd.MM.yyyy");
  НаименованиеСерии = НомерДокумента +", "+ СрокГодности;
  СерияНоменклатуры =ПоискСерии(Номенклатура,НаименованиеСерии);
	Если НЕ СерияНоменклатуры = Справочники.СерииНоменклатуры.ПустаяСсылка() Тогда 
		Серия  = СерияНоменклатуры;
		 Возврат Серия;
	КонецЕсли;						
	   Новыйэлемент = Справочники.СерииНоменклатуры.СоздатьЭлемент();
	   НовыйЭлемент.Владелец = Номенклатура.Ссылка;
	   НовыйЭлемент.СерийныйНомер = НомерДокумента;
	   НовыйЭлемент.СрокГодности = Дата(СрокГодности+" 00:00:00");
	   НовыйЭлемент.Наименование = НаименованиеСерии;
	   НовыйЭлемент.Записать();
	   Серия = НовыйЭлемент.Ссылка;
	   УстановитьПривилегированныйРежим(Ложь);
	   Возврат Серия;	   
   КонецФункции	
Показать
+
10. Boneman 298 18.01.18 16:20 Сейчас в теме
(9)
ПоискСерии(Номенклатура,НаименованиеСерии);

ПоискСерии(Номенклатура,НаименованиеСерии);

Это не вызов другой функции ?
+
11. wiseserg 18.01.18 16:26 Сейчас в теме
Да, это вызов функции на поиск уже существующей серии,
попробовал перенести непосредственно
Новыйэлемент = Справочники.СерииНоменклатуры.СоздатьЭлемент();
	   НовыйЭлемент.Владелец = Номенклатура.Ссылка;
	   НовыйЭлемент.СерийныйНомер = НомерДокумента;
	   НовыйЭлемент.СрокГодности = Дата(СрокГодности+" 00:00:00");
	   НовыйЭлемент.Наименование = НаименованиеСерии;
	   УстановитьПривилегированныйРежим(Истина);
	   НовыйЭлемент.Записать();
	   Серия = НовыйЭлемент.Ссылка;
	   УстановитьПривилегированныйРежим(Ложь);
Показать

Пока ошибка остается
+
12. Boneman 298 18.01.18 16:36 Сейчас в теме
(11)
Пока ошибка остается

обработка внешняя или встроенная в конфу ?
+
13. wiseserg 18.01.18 16:41 Сейчас в теме
(12) Обработка внешняя
подключаю к документу - обработка заполнения табличный частей
+
14. Boneman 298 18.01.18 16:46 Сейчас в теме
(13)
Обработка внешняя

из внешней обработки, ты ограничение прав не обойдешь. Иначе это была бы дыра в безопасности.
Только встраивать в конфу.
+
16. wiseserg 18.01.18 16:50 Сейчас в теме
(14) Тогда почему в файловом режиме работает?
+
18. Boneman 298 18.01.18 16:55 Сейчас в теме
(16)
Тогда почему в файловом режиме работает?

а вообще без УстановкиПривелигированного режима
в файловом перестает работать ?
+
20. wiseserg 18.01.18 17:03 Сейчас в теме
(18) Да , не работает
+
15. wiseserg 18.01.18 16:47 Сейчас в теме
(12) Почитал описание УстановитьПривилегированныйРежим
В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий.
У меня клиент-серверный вариант - обычные формы ( толстый клиент) может из-за этого не работает?
+
17. Boneman 298 18.01.18 16:52 Сейчас в теме
(15)
может из-за этого не работает?

Запросы и записи в БД на клиенте в принципе невозможны. Они выполняются на сервере. Поэтому это условие ни при чем.

Привелигированный режим не работает во внешних обработках !!!! Именно поэтому.

Да ты и отладчиком это можешь проверить элементарно.
+
19. wiseserg 18.01.18 16:58 Сейчас в теме
(17)Спасибо за помощь, отладчиком сегодня вечером посмотрю, непонятно все равно почему на файловом режиме работает
+
21. Boneman 298 18.01.18 17:11 Сейчас в теме
(19)
Спасибо за помощь, отладчиком сегодня вечером посмотрю, непонятно все равно почему на файловом режиме работает

может на файловом у твоего пользователя прав больше ?
вообще странно...я был уверен,
но кто его знает, может что-то уже изменилось. Поэтому даже интересно
+
22. Boneman 298 18.01.18 17:18 Сейчас в теме
(21) хотя вот сделал обработочку, проверки привелигированного режима.
запускаю под бесправным пользователем, в файловой базе,
ничего он не устанавливается, так и остается в состоянии "Ложь".

Видимо запускаешь, все таки под юзером с админскими правами, который может менять режим.
Попробуй, на юзере с обкоцанными правами проверять.

Ну или, уже не знаю.
Прикрепленные файлы:
ПривелигированныйРежимПроверка.epf
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот