Как сделать запрет на удаление записей регистра сведений ? #458920


#0 by VVVP
Коллеги, подскажите пож., как штатными средствами при работе непосредственно в форме записей регистра сведений запретить удаление записей? Вроде удобно в форме работать, ничего изобретать не нужно. А ненароком можно весь регистр снести. Правами не рулится, нужно записи создавать и редактировать. Регистр периодический, независимый.
#1 by NcSteel
РегистрСведенийНаборЗаписей.<Имя регистра сведений>.ПередЗаписью (InformationRegisterRecordSet.<Имя регистра сведений>.BeforeWrite) РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) ПередЗаписью (BeforeWrite) Синтаксис: ПередЗаписью(<Отказ>, <Замещение>) Параметры: <Отказ> Тип: Булево. Признак отказа от записи набора регистра сведений. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись выполнена не будет. Значение по умолчанию: Ложь <Замещение> Тип: Булево. Режим записи набора. Истина - запись осуществляется с заменой существующих в базе данных записей набора. Ложь - запись осуществляется с "дописыванием" текущего набора записей. Описание: Возникает перед выполнением записи набора регистра сведений. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи набора регистра сведений.
#2 by NcSteel
Тьфу ты не то ))).
#3 by NcSteel
У табличного поля есть куча "событий"
#4 by AndreyFAN
улыбнул ))))))))))
#5 by VVVP
Там нет ничего связанного с удалением :(
#6 by AndreyFAN
кто поддерживает конфу? пусть снимут галочку в правах на регистр "Удаление"
#7 by NcSteel
#8 by IronDemon
Нет таких прав
#9 by AndreyFAN
действительно... Вот сколько раз себе говорю "Молчи и слушай, молчи и слушай"...
#10 by VVVP
Так в 8-ке предопределенных процедур нет вроде. Ее привязывать нужно к событию. А привязывать некуда
#11 by hhhh
там редактирование записи сделано через удаление-добавление
#12 by Irbis
Запрети записывать пустой набор.
#13 by IronDemon
#14 by IronDemon
Перед запросом Если ЭтотОбъект.Отбор.Период.Значение=Дата(1,1,1) Тогда
#15 by IronDemon
И сравнить две таблицы
#16 by VVVP
Я про пустой набор молчу пока. Мне бы только ручное удаление записей отключить (через форму записей юзеры будут события вводить)
#17 by Irbis
А смысл? Все равно модуль набора записей не минуешь.
#18 by VVVP
Объясню: вот входит юзер в форму записей, а там кнопка "удалить", плюс в меню то же самое. Он жмет на кнопку и сносит записи. В регистре бардак, и т.д.! Как запретить интерактивно удалять записи из регистра ?? Есть способ?
#19 by VVVP
плюс в меню по правой кнопке мыши тож удаление есть! Отключить все меню? Как работать с формой?
#20 by Irbis
А ты попробуй в модуле набора записей регистра сведений в ПередЗаписью добавить
#21 by Irbis
к
#22 by VVVP
Отказ=Количество=0; Извини не совсем понял
#23 by IronDemon
Можно командую панель свою сделать
#24 by Irbis
Если набор пустой, отказ от записи.
#25 by VVVP
Разве удаление записи = запись пустого набора ??
#26 by wise
РегистрСведенийСписок предопределённая процедура ПЕРЕДудалением
#27 by VVVP
-> Так в 8-ке предопределенных процедур нет вроде. Ее привязывать нужно к событию. А привязывать некуда ... Или я не прав?
#28 by wise
26+ в форме списка регистра
#29 by wise
ты НЕ прав ! это предопределённая процедура ЭЛЕМЕНТА формы
#30 by Irbis
А разве нет?
#31 by wise
29+ назвать ты её можешь КАК хочешь, но привязать к СОБЫТИЮ...
#32 by VVVP
Ладно, спасибо за помощь, будем пробовать так
#33 by wise
как это НЕКУДА... ФСЁ...
#34 by VVVP
А втыкать ее где нужно: в модуль формы или в модуль регистра?
#35 by cleaner
Простейший пример:    Если ЭтотОбъект.Количество = 0 Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры Если происходит запись пустого набора - то он все равно бесполезен, а в остальных случаях это означает, что происходит удаление. Разместить в модуле объекта
#36 by cleaner
А если кому-то и можно удалять, то проверяй права:
#37 by VVVP
Воткнул процедуру в модуль набора записей, в формы списка и элемента (на всякий случай) - и удалил запись без запинки!! НЕ работает по ходу дела такой вариант
#38 by Irbis
Я об этом с поста толкую.
#39 by cleaner
я поддержал:)
#40 by Irbis
Ты не поддержал, а за него работу сделал. Он теперь тебе тарелку супа должен.
#41 by VVVP
вот это то что надо! Единственное что работает! И соотвественно. Жаль что поподробнее не дал расклад :) Всем большое спасибо !!
#42 by cleaner
согласен, будет должен:)
#43 by VVVP
Мда, есть одно неудобство - корректировать тоже нельзя, т.к. судя по всему изменение действительно идет через удаление старого набора данных и запись обновленного. А у нас - блокировка удаления. Т.е. либо только просмотр, либо сноси все подряд. В лом было 1С-кам этот вопрос разрулить, хотя бы правами на регистр, спасибо блин большое. :(
#44 by VVVP
А вариант в модуле формы списка (табличная часть) вообще не срабатывает на событие "удалить":
#45 by 73
Процедура привязана к событию табличного поля?
#46 by Irbis
условия как в или еще какие вставь и радуйся
#47 by VVVP
Все привязано, ни одно событие таблчного поля не срабатывает !!! Не катит так! Надо чтобы юзеры редактировать могли ,а удалять - нет. А так и редактировать не дает Может платформа глючная (Версия 8.1.11 стоит) ???
#48 by 73
<ни одно событие таблчного поля не срабатывает > - как привязывал?
#49 by Mitriy
да привязи ты уже событие к табполю...
#50 by Mitriy
* привяжи...
#51 by VVVP
Да привязано все!  Через события табличного поля в форме списка регистра! Выбраны соотв. процедуры, сформированы самой 1с. 7-ка не подарок была, а это вообще ЖЖЖ...
#52 by Mitriy
а ты форму списка с формой выбора не путаешь? или, может, это вообще не форма регистра?
#53 by VVVP
и может вообще не 1С?  :))
#54 by VVVP
Думаю, нахер эту тему. Сделаю как раньше, через подчиненный справочник. 30 минут на формы потрачу, чем 2 дня на эту херь. И права нормально рулятся. И не снесешь случайно все.
#55 by Mitriy
правильно, одна строчка кода - это неинтересно...
#56 by 0xFFFFFF
при чем тут подарок? Правильная вроде логика... Если в РС отредактировать ИЗМЕРЕНИЕ - это будет уже ДРУГАЯ запись РС. Соответственно ты этим действием удаляешь старую запись. Думаю, что у тебя не сработает, если будешь править ресурс...
#57 by 0xFFFFFF
не правильно думаешь. Если там действительно РС - более правильный выбор, нежели справочник, то в форму "владельца" нужно просто воткнуть РегистрСведенийСписок с предустановленным отбором по этому владельцу. Тогда случайно никто ничего не удалит.
#58 by 0xFFFFFF
и будет по-настоящему, по семерочному! :)
#59 by VVVP
Хотелось для упрощения из владельца открывать непосредственно форму списка регистра и в ней работать. Там все так построено. Отбор есс-но включается. Только защиты от удаления руками нет.
#60 by Snovy
Кнопку "удалить" удалить или заблокировать (и в контекстном меню тоже) не предлагали?
#61 by VVVP
) Вот это по 8-шному !!! :))
#62 by VVVP
имелось ввиду
#63 by VVVP
или туплю уже. Всем спасибо!!!
#64 by 0xFFFFFF
Так добавь эту форму списка в форму владельца! И в ней работай...
#65 by 0xFFFFFF
+ Причем чтобы работали только с записями этого владельца, нужно скрыть колонку с этим владельцем. А там пусть хоть заудаляются.
#66 by VVVP
ДА, можно еще посидеть и воткнуть все это во владельца. Но там в конфе много информации так же через формы регистров сделано. И ставится вопрос защиты от "дурака". Вот поэтому вопрос и возник - глобально! Как защитить регистр?? Ну не перепахивать же всю конфу
#67 by VVVP
Нашел, млин, причину всех несчастий! Форму списка не указал в качестве основной, недоглядел. И регистр свою подсовывал. Потому и события не отрабатывались. Теперь все пойдет :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С