|
Как обойти РольДоступна() при програмной записи РС? | ☑ | ||
|---|---|---|---|---|
|
0
1сПупс
24.09.26
✎
07:19
|
Коллеги, доброго утра.
В внешней обработке (подключена как БСП) делаю записи в РегСвед. Запрос = Новый Запрос; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоваяЗаписьРС = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи(); НоваяЗаписьРС.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; НовыйШтрихкод = РегистрыСведений.ШтрихкодыНоменклатуры.СформироватьШтрихкодEAN13(); НоваяЗаписьРС.Штрихкод = НовыйШтрихкод; НоваяЗаписьРС.Записать(); КонецЦикла Данную обработку будет использовать персонал. В Модуле набора записей данного регистра_ Заказчик в расширении жестко обрезал запись РегСвед если роль не ПолныеПрава. "Мол, специально отрубили чтобы не создавали": &Перед("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, Замещение)
Если не РольДоступна("ПолныеПрава") Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Можно ли сделать так, что если я вызываю запись из конкретной обработки контроль прав не выполнялся? |
|||
|
1
arsik
гуру
24.09.26
✎
07:25
|
Передавать флаг через ДополнительныеСвойства набора записей
|
|||
|
2
1сПупс
24.09.26
✎
07:35
|
(1) думал об этом, но как его заполнить на стороне внешней обработки?
|
|||
|
3
arsik
гуру
24.09.26
✎
07:41
|
(2) Через какой объект ты записываешь во внешней обработке? Или там у тебя не программная запись?
|
|||
|
4
1сПупс
24.09.26
✎
07:47
|
Переписал так расширение, но тут получается что при любой программной записи не будет контроля на права. А нужно только из моей обработки:
&Перед("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, Замещение)
Если Не ДополнительныеСвойства.Свойство("ИнтерактивнаяЗапись") Тогда
Возврат;
КонецЕсли;
Если не РольДоступна("ПолныеПрава") Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&После("ОбработкаПроверкиЗаполнения")
Процедура Расш1_ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
ДополнительныеСвойства.Вставить("ИнтерактивнаяЗапись");
КонецПроцедуры
|
|||
|
5
Мультук
гуру
24.09.26
✎
07:46
|
(2)
1) google: 1с регистрсведений наборзаписей ДополнительныеСвойства Ответ:
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());
// Заполняем набор записей...
// Передаем произвольный параметр через ДополнительныеСвойства
НаборЗаписей.ДополнительныеСвойства.Вставить("ИгнорироватьПроверку", Истина);
НаборЗаписей.Записать();
Там же пример кода для Процедура Расш1_ПередЗаписью(Отказ, Замещение) 2) Это для СоздатьНаборЗаписей, а можно так сделать для СоздатьМенеджерЗаписи ? Нет, нельзя. |
|||
|
6
arsik
гуру
24.09.26
✎
07:45
|
(4) 🤦
|
|||
|
7
1сПупс
24.09.26
✎
07:46
|
(3) юзер нажимает кнопку, формируются записи, серверный код привел в первом посте.
|
|||
|
8
arsik
гуру
24.09.26
✎
07:47
|
(7) 🤦🤦
|
|||
|
9
1сПупс
24.09.26
✎
07:52
|
(5) Благодарю! походу придется создавать записи через НаборЗаписей, а не МенеджерЗаписи...
|
|||
|
10
Lama12
24.09.26
✎
07:52
|
А все боятся что ИИ заменит программистов. Ну, ну...
|
|||
|
11
Garykom
гуру
24.09.26
✎
07:55
|
Переписать расширение с добавлением специальной роли на этот РС кроме ПолныеПрава
Пользователям выдавать эту роль |
|||
|
12
Мультук
гуру
24.09.26
✎
08:03
|
(11)
Тогда будет еще 20 страниц обсуждения, чтобы такие пользователи могли программно менять регистр, а интерактивно - нет |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |