Ошибка при удалении элемента справочника #778603


#0 by Коротков
Если в конфигурации существует регистр сведений с ведущим измерением с типом ЛюбаяСсылка или СправочникСсылка, то для удаления любого элемента любого справочника нужны права на редактирование этого регистра. Иначе ругается на "Недостаточно прав". Это баг или фича?
#1 by Горогуля
так надо
#2 by Коротков
Зачем?
#3 by wertyu
чтобы битых ссылок не было
#4 by RomanYS
редактирование? прав на запись точно не достаточно?
#5 by Горогуля
для того, чтобы удаление элемента справочника влекло за собой удаление соответствующих записей регистра, Ватсон
#6 by Коротков
В регистре нет записей вообще. Никаких. Причем здесь битые ссылки?
#7 by wertyu
ну и что?
#8 by Коротков
Наверное и на изменение достаточно, не проверял
#9 by wertyu
и итоги, если периодический
#10 by Коротков
Нелогично и избыточно. Если бы существовали записи регистра с измерениями, ссылающимися на удаляемый элемент справочник, то подобное ограничение по правам выглядело бы вполне оправданным.
#11 by RomanYS
А как узнать, есть ли записи, если у тебя прав нет?
#12 by wertyu
как раз логично, и вообще зачем давать права на интерактивное удаление?
#13 by Коротков
Ну на чтение регистра права могут быть. Какое отношение вообще это имеет к вопросу? Права на интерактивное удаление конечно не нужны в большинстве случаев, согласен. Вопрос был чисто теоретический, почему-то раньше не сталкивался с таким поведением. Т.е. это все таки не баг, а фича, хоть и с малопонятной мне логикой.
#14 by RomanYS
всё здесь логично. При необходимости есть способы обойти эти ограничения: привилегированный режим, режим загрузки.
#15 by Коротков
Нелогично. Зачем проверять права на запись в таблицу регистра, если фактически апдейта этой таблицы не произойдет?
#16 by Горогуля
а зачем проверять, произойдёт или не произойдёт?
#17 by Коротков
Ну если апдейта таблицы регистра не будет, то и права на этот регистр проверять незачем -> можно спокойно удалять элемент справочника.
#18 by Коротков
Так было бы логичней
#19 by Коротков
Налицо избыточное ограничение
#20 by Горогуля
представь себе 800 регистров, в каждом по 200 ведущих измерений типа ссылка на твой справочник...
#21 by Коротков
Утрируешь, в реальности такие конифгурации не встречаются
#22 by Горогуля
утрирую. в педагогических целях
#23 by Коротков
Т.е., как я понимаю, девелоперы 1С исходили из того, что "проверять на запись долго, давайте сперва тупо проверим по правам и запретим, если что"
#24 by Горогуля
у девелоперов и спроси. я б разбираться не стал, что там в базе уже понаписано
#25 by Коротков
Забавно, что хотя процедуры ПередЗаписью и ПриЗаписи модуля набора записей такого регистра при удалении элемента справочника не вызываются - тем не менее, модуль компилируется. Т.е., если в модуль засунуть синтаксический мусор, то при попытке удалении элемента справочника система ругается и тупо завершает работу.
#26 by RomanYS
я так понимаю, идёт тупая перезапись пустого набора. На этом у тебя и вылетает. Чтения и проверок не происходит.
#27 by Коротков
Нет записи набора, проверял
#28 by RomanYS
а я проверил, у меня передЗаписью остановилось (8.3.6)
#29 by Коротков
Любопытно, я тестил на 8.3.8.1747. Проверю еще раз.
#30 by Коротков
Нет, на ПередЗаписью не останавливается
#31 by Горогуля
до удаления: после: модуль НЗ:
#32 by Горогуля
1С:Предприятие 8.3 (8.3.8.1747)
#33 by RomanYS
#34 by Коротков
Ага, понял в чем разница. Вы УДАЛЯЕТЕ элемент справочника, т.е. права на запись регистра есть. А я ПЫТАЮСЬ удалить без прав на регистр - в этом случае модуль набора записей хоть и компилируется, но не вызывается.
#35 by Горогуля
а чего там вызывать без прав?
#36 by Коротков
Все, теперь уложилось в голове. Действительно, независимо от наличия записей в регистре, ссылающихся на на наш справочник, запись набора происходит в любом случае. Отсюда и трабла с правами. Только, имхо, это ведь совсем неправильно. Зачем в данном случае записывать пустой набор? Только лишний оверхед.
#37 by Mauser
Потому что, чтобы узнать что писать не надо - надо прочитать. Что тоже оверхед, так как удаление существующих данных происходит куда чаще, чем несуществующих.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С

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