Вход | Регистрация
 

Запретить добавление строк непериодического независимого регистра сведений

Запретить добавление строк непериодического независимого регистра сведений
Я
   SeiOkami
 
10.07.21 - 10:18
Коллеги, как запретить добавление строк непериодического независимого регистра сведений?
Для этой возможности будет отдельная роль. Особо уравновешенный пользователь заведет нужные записи в РС, а далее ресурсы этих записей будут править обычные юзвери.

Думал, задача простая, пока что не нашёл решения

"Добавление новой записи" - это когда в базе пытается появиться запись с набором измерений, которых ещё нет в РС.
Хочу в обработчиках событий это как-то отловить и установить Отказ
   BeerHelpsMeWin
 
1 - 10.07.21 - 10:26
дык ПередЗаписью
   SeiOkami
 
2 - 10.07.21 - 10:27
(1), дык как ?
   BeerHelpsMeWin
 
3 - 10.07.21 - 10:27
Или ролями отрегулируй. Право на чтение - в какую-нибудь обычную роль, право на запись - в отдельную, и выдай ее кому надо.
   BeerHelpsMeWin
 
4 - 10.07.21 - 10:28
а, тьфу, тебе надо именно добавление новой отрегулировать
   SeiOkami
 
5 - 10.07.21 - 10:29
Вот я изменяю запись РС. Просто меняю ресурс у существующей записи

В отладке нахожусь в событиях ПередЗаписью() и ПриЗаписи()

Сначала платформой происходит первая итерация - удаление прошлой записи.
Потом вторая итерация - добавление новой.

В момент второй итерации в РС уже нет записи.

Мне нужно на второй итерации (добавлении записи) понять, это реально новая или изменение существующей.
Но в этом моменте старой записи уже нет.
   BeerHelpsMeWin
 
6 - 10.07.21 - 10:30
ммм а если сравнить количество записей в РС в ПередЗаписью() и в ПриЗаписи()
   RomanYS
 
7 - 10.07.21 - 10:37
А не правильнее ли этот вопрос решать на уровне интерфейса? Не очень хорошо, когда пользователь что-то заполняет, а потом отказ получает
   SeiOkami
 
8 - 10.07.21 - 10:39
(7), кнопки добавления,копирования, будут отключены, но на уровне записи всё равно стоило бы проверить.
Но, похоже, что это невозможно.
   SeiOkami
 
9 - 10.07.21 - 10:40
(6), количество не меняется в этих событиях

сначала запись идет пустого набора. В обоих событиях 0 строк. Потом запись нового. В обоих событиях одна строка.
   dmpl
 
10 - 10.07.21 - 10:41
(0) Запрети всем редактирование, само редактирование пусть делают в специальной обработке, которая будет менять нужные поля в привилегированном режиме.
   SeiOkami
 
11 - 10.07.21 - 10:43
(10), да, только это и остаётся.

Однако, хочется уже добить эту тему.
Неужели нет вообще никакой возможности?
   dmpl
 
12 - 10.07.21 - 10:46
(11) Ну можешь добавить регистр "Операции записи в регистр", где сохранять информацию об удалении записи, и давать отказ, если пытается записаться запись, которой нет в этом регистре. Но проще воспользоваться привилегированным режимом.
   dmpl
 
13 - 10.07.21 - 10:51
(11) Ну или сделать скрытый реквизит в регистре, который при добавлении записи устанавливается в Истина для правильного пользователи и в Ложь для неправильного. Тогда при попытке записи можно будет сразу слать.
   BeerHelpsMeWin
 
14 - 10.07.21 - 10:57
Сделай вместо РС справочник :)
   GROOVY
 
15 - 10.07.21 - 11:24
ДопПараметры Перед записью установить и читать при повторной записи...
   OldCondom
 
16 - 10.07.21 - 11:36
создать менеджер записи, прочитать. Проверить, есть ли запись. Если нет - значит новые данные.
   SeiOkami
 
17 - 10.07.21 - 11:40
(15), ДополнительныеСвойства не передаются между этими двумя операциями
   SeiOkami
 
18 - 10.07.21 - 11:40
(16), записи всегда нет, потому что она удаляется перед добавлением
   SeiOkami
 
19 - 10.07.21 - 11:41
Можно, конечно, использовать какой-то параметр сеанса для этого, но жуть ведь редкостная
   RomanYS
 
20 - 10.07.21 - 11:54
(9) Ну так перед записью пустого набора и проверяй
   OldCondom
 
21 - 10.07.21 - 11:54
(18) Чего? Пару дней назад делал обмен с таким регистром, почти такая же задача. Все ок.
   SeiOkami
 
22 - 10.07.21 - 11:55
(21), значит задача другая
   SeiOkami
 
23 - 10.07.21 - 11:56
(20), что именно проверять ?
   dmpl
 
24 - 10.07.21 - 11:58
(21) Проверка была в модуле набора записей?
   RomanYS
 
25 - 10.07.21 - 12:18
(23) Уже попробовал, не работает. При создании новой записи пустой набор не записывается
   SeiOkami
 
26 - 10.07.21 - 12:26
(25) при создании записи не записывается пустой
а вот при изменении измерений - да
   SeiOkami
 
27 - 10.07.21 - 12:30
Нашёл пока одно нормальное решение. Но только на уровне формы записи.
Здесь можно перед записью сравнить новый ключ записи с исходным.
   RomanYS
 
28 - 10.07.21 - 13:01
(27) так можно из формы списка создание запретить, а в форме записи закрыть измерения для изменения.
   mistеr
 
29 - 10.07.21 - 15:04
(0) Задача простая, и решение простое. Набор значений измерений регистра выделить в отдельную сущность, то есть в справочник.

А двигать регистр все же советую документом.
   SeiOkami
 
30 - 10.07.21 - 16:04
(29), действительно, прям самое простое {сарказм}
 
 
   bolder
 
31 - 10.07.21 - 18:40
(0) Правми доступа запретить редактирование.В обработке привелигированными правами делать что хочешь.
   mistеr
 
32 - 10.07.21 - 18:51
(29) Однозначно проще, чем то, что ты пытаешься делать.
   bolder
 
33 - 10.07.21 - 18:57
(32) Да, это тоже неплохо.Но так контроль за неуравновешенными пользователями слабее, чем в обработке.
   2S
 
34 - 10.07.21 - 19:24
В качестве варианта при открытии писать в тз. Потом проверять по уид.
   RomanYS
 
35 - 10.07.21 - 19:31
(34) проблема в том, что писать не куда. Запись происходит два раза, причем в двух наборах записей не связанных общим контекстом. Только костыли с глобальными переменными или параметром сеанса


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.