|
Запретить добавление строк непериодического независимого регистра сведений | ☑ | ||
---|---|---|---|---|
0
SeiOkami
10.07.21
✎
10:18
|
Коллеги, как запретить добавление строк непериодического независимого регистра сведений?
Для этой возможности будет отдельная роль. Особо уравновешенный пользователь заведет нужные записи в РС, а далее ресурсы этих записей будут править обычные юзвери. Думал, задача простая, пока что не нашёл решения "Добавление новой записи" - это когда в базе пытается появиться запись с набором измерений, которых ещё нет в РС. Хочу в обработчиках событий это как-то отловить и установить Отказ |
|||
1
BeerHelpsMeWin
10.07.21
✎
10:26
|
дык ПередЗаписью
|
|||
2
SeiOkami
10.07.21
✎
10:27
|
(1), дык как ?
|
|||
3
BeerHelpsMeWin
10.07.21
✎
10:27
|
Или ролями отрегулируй. Право на чтение - в какую-нибудь обычную роль, право на запись - в отдельную, и выдай ее кому надо.
|
|||
4
BeerHelpsMeWin
10.07.21
✎
10:28
|
а, тьфу, тебе надо именно добавление новой отрегулировать
|
|||
5
SeiOkami
10.07.21
✎
10:29
|
Вот я изменяю запись РС. Просто меняю ресурс у существующей записи
В отладке нахожусь в событиях ПередЗаписью() и ПриЗаписи() Сначала платформой происходит первая итерация - удаление прошлой записи. Потом вторая итерация - добавление новой. В момент второй итерации в РС уже нет записи. Мне нужно на второй итерации (добавлении записи) понять, это реально новая или изменение существующей. Но в этом моменте старой записи уже нет. |
|||
6
BeerHelpsMeWin
10.07.21
✎
10:30
|
ммм а если сравнить количество записей в РС в ПередЗаписью() и в ПриЗаписи()
|
|||
7
RomanYS
10.07.21
✎
10:37
|
А не правильнее ли этот вопрос решать на уровне интерфейса? Не очень хорошо, когда пользователь что-то заполняет, а потом отказ получает
|
|||
8
SeiOkami
10.07.21
✎
10:39
|
(7), кнопки добавления,копирования, будут отключены, но на уровне записи всё равно стоило бы проверить.
Но, похоже, что это невозможно. |
|||
9
SeiOkami
10.07.21
✎
10:40
|
(6), количество не меняется в этих событиях
сначала запись идет пустого набора. В обоих событиях 0 строк. Потом запись нового. В обоих событиях одна строка. |
|||
10
dmpl
10.07.21
✎
10:41
|
(0) Запрети всем редактирование, само редактирование пусть делают в специальной обработке, которая будет менять нужные поля в привилегированном режиме.
|
|||
11
SeiOkami
10.07.21
✎
10:43
|
(10), да, только это и остаётся.
Однако, хочется уже добить эту тему. Неужели нет вообще никакой возможности? |
|||
12
dmpl
10.07.21
✎
10:46
|
(11) Ну можешь добавить регистр "Операции записи в регистр", где сохранять информацию об удалении записи, и давать отказ, если пытается записаться запись, которой нет в этом регистре. Но проще воспользоваться привилегированным режимом.
|
|||
13
dmpl
10.07.21
✎
10:51
|
(11) Ну или сделать скрытый реквизит в регистре, который при добавлении записи устанавливается в Истина для правильного пользователи и в Ложь для неправильного. Тогда при попытке записи можно будет сразу слать.
|
|||
14
BeerHelpsMeWin
10.07.21
✎
10:57
|
Сделай вместо РС справочник :)
|
|||
15
GROOVY
10.07.21
✎
11:24
|
ДопПараметры Перед записью установить и читать при повторной записи...
|
|||
16
OldCondom
10.07.21
✎
11:36
|
создать менеджер записи, прочитать. Проверить, есть ли запись. Если нет - значит новые данные.
|
|||
17
SeiOkami
10.07.21
✎
11:40
|
(15), ДополнительныеСвойства не передаются между этими двумя операциями
|
|||
18
SeiOkami
10.07.21
✎
11:40
|
(16), записи всегда нет, потому что она удаляется перед добавлением
|
|||
19
SeiOkami
10.07.21
✎
11:41
|
Можно, конечно, использовать какой-то параметр сеанса для этого, но жуть ведь редкостная
|
|||
20
RomanYS
10.07.21
✎
11:54
|
(9) Ну так перед записью пустого набора и проверяй
|
|||
21
OldCondom
10.07.21
✎
11:54
|
(18) Чего? Пару дней назад делал обмен с таким регистром, почти такая же задача. Все ок.
|
|||
22
SeiOkami
10.07.21
✎
11:55
|
(21), значит задача другая
|
|||
23
SeiOkami
10.07.21
✎
11:56
|
(20), что именно проверять ?
|
|||
24
dmpl
10.07.21
✎
11:58
|
(21) Проверка была в модуле набора записей?
|
|||
25
RomanYS
10.07.21
✎
12:18
|
(23) Уже попробовал, не работает. При создании новой записи пустой набор не записывается
|
|||
26
SeiOkami
10.07.21
✎
12:26
|
(25) при создании записи не записывается пустой
а вот при изменении измерений - да |
|||
27
SeiOkami
10.07.21
✎
12:30
|
Нашёл пока одно нормальное решение. Но только на уровне формы записи.
Здесь можно перед записью сравнить новый ключ записи с исходным. |
|||
28
RomanYS
10.07.21
✎
13:01
|
(27) так можно из формы списка создание запретить, а в форме записи закрыть измерения для изменения.
|
|||
29
mistеr
10.07.21
✎
15:04
|
(0) Задача простая, и решение простое. Набор значений измерений регистра выделить в отдельную сущность, то есть в справочник.
А двигать регистр все же советую документом. |
|||
30
SeiOkami
10.07.21
✎
16:04
|
(29), действительно, прям самое простое {сарказм}
|
|||
31
bolder
10.07.21
✎
18:40
|
(0) Правми доступа запретить редактирование.В обработке привелигированными правами делать что хочешь.
|
|||
32
mistеr
10.07.21
✎
18:51
|
(29) Однозначно проще, чем то, что ты пытаешься делать.
|
|||
33
bolder
10.07.21
✎
18:57
|
(32) Да, это тоже неплохо.Но так контроль за неуравновешенными пользователями слабее, чем в обработке.
|
|||
34
2S
10.07.21
✎
19:24
|
В качестве варианта при открытии писать в тз. Потом проверять по уид.
|
|||
35
RomanYS
10.07.21
✎
19:31
|
(34) проблема в том, что писать не куда. Запись происходит два раза, причем в двух наборах записей не связанных общим контекстом. Только костыли с глобальными переменными или параметром сеанса
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |