|
Нарушение прав доступа! (удаление элемента справочника) | ☑ | ||
---|---|---|---|---|
0
extrim-style
06.10.11
✎
12:12
|
8.1 При программном удалении элемента справочника выскакивает эта ошибка.
{Справочник.хз_СтатьиЗатрат.Форма.ФормаСписка(39)}: Ошибка при вызове метода контекста (Удалить): Нарушение прав доступа! Выборка.ПолучитьОбъект().Удалить(); где Выборка.ПолучитьОбъект() тип СправочникОбъект.хз_СтатьиЗатрат Права пользователей были немного подрезаны. Но на этот справочник у юзверя есть все права, кроме интерактивного удаления. Тем не менее эта ошибка - в чем тут дело? |
|||
1
Mort
06.10.11
✎
12:14
|
В обработке удаления видимо режутся связанные объекты, на которые прав уже нет.
|
|||
2
extrim-style
06.10.11
✎
12:18
|
Удалить() это стандартный метод СправочникОбъект.<Имя справочника>
|
|||
3
Mort
06.10.11
✎
12:23
|
(2) Я очень рад.
|
|||
4
Mort
06.10.11
✎
12:24
|
А еще бывает событие "перед удалением" в модуле справочника.
|
|||
5
rutony
06.10.11
✎
12:27
|
(2) -> (1) Есть настройки, например, у регистра сведений, которые удаляют записи в случае удаления измерения
|
|||
6
extrim-style
06.10.11
✎
12:27
|
(4) уже смотрел. нет такого. есть только ПередЗаписью.
|
|||
7
hhhh
06.10.11
✎
12:28
|
(6) регистры сведений все проверил?
|
|||
8
rutony
06.10.11
✎
12:28
|
(5) + ну а на сам регистр ограниченные права
(6) сделай поиск ссылок на справочник, и проверь права на найденные регистры |
|||
9
extrim-style
06.10.11
✎
12:42
|
Владельца у справочника нет. Ни с какими регистрами он не связан.
Поиск ссылок в объекте показал на ПодсистемаХЗ, которой справочник принадлежит и 2 перечисления: Перечисление.ОтнесениеРасходовКДеятельностиЕНВД Перечисление.ВидыРасходовНУ У юзера есть права только на ПодсистемуХЗ. Перечисления в ролях не присутствуют. Но сами перечисления присутствуют в других подсистемах. Попытался дать юзеру права на эти подсистемы - толку нет. Подскажите, может вобще не обрезать пользователю права по подсистемам? На что это влияет? |
|||
10
extrim-style
06.10.11
✎
12:43
|
Да и мне вобще непонятно, какая тут может быть связанная информация? Я получил объект справочника, но не могу его удалить. Почему?
|
|||
11
extrim-style
06.10.11
✎
12:46
|
Дал юзеру права на все подсистемы - толку нет. Значит дело не в подсистемах, а непосредственно в правах роли юзера. Но как понять, чего не хватает?
|
|||
12
shuhard
06.10.11
✎
12:54
|
(10) приколист,
на твой справочник сидят ссылки в тыще мест в других справочниках, Рг и х.з. где ещё |
|||
13
extrim-style
06.10.11
✎
12:57
|
(12) на мой справочник нет ни одной ссылки в конфигурации. Есть толко из него, те, которые в (9)
|
|||
14
shuhard
06.10.11
✎
12:58
|
(13) тогда пометь его на удаление и запусти штатную обработку
далее зырь журнал |
|||
15
extrim-style
06.10.11
✎
13:58
|
(14) не понял. Пометить элемент справочника на удаление? Какую штатную обработку? Удаление помеченных объектов?
|
|||
16
extrim-style
06.10.11
✎
14:03
|
(15) Поставлю вопрос по-другому. Имеется справочник, при открытии которого удаляются некоторые элементы по условию. Код:
Выборка = Справочники.хз_СтатьиЗатрат.ВыбратьИерархически(); Пока Выборка.Следующий() = 1 Цикл Если Условие Тогда Выборка.ПолучитьОбъект().Удалить(); В последней строке выскакивает сообщение об ошибке удаления. Какие тут могут быть зависимости или может быть стандартные механизмы обработки удаления справочников в общих модулях или еще где-нибудь? Я вобще не воткну в чем трабл: получаю элемент справочника, у пользователя все права на справочник (справочник от пользователя открывается), почему нельзя удалить, не пойму? |
|||
17
ДемонМаксвелла
06.10.11
✎
14:09
|
Вообще не должны пользователи с ограниченными правами делать удаление объектов в базе. Только помечать.
|
|||
18
extrim-style
06.10.11
✎
14:10
|
Права даны ОтветственномуЮзверю.
|
|||
19
extrim-style
06.10.11
✎
14:11
|
(17) Этот справочник - копия справочника СтатьиЗатрат, только перегруппирован по-другому, отсюда и необходимость удалять элементы сразу и не хранить мусор.
|
|||
20
catena
06.10.11
✎
14:13
|
(18)ООО, с этой фразы начинаются многие забавные повести, а порой и триллеры...
|
|||
21
extrim-style
06.10.11
✎
14:14
|
(20) у пользователя нет никаких лишних прав. только программная синхронизация одного справочника с другим.
|
|||
22
extrim-style
06.10.11
✎
14:16
|
Ну что никто не знает почему нельзя удалить элемент справочника?
|
|||
23
extrim-style
06.10.11
✎
14:25
|
хелп
|
|||
24
catena
06.10.11
✎
14:39
|
попробуй встать на эту строчку и нажать ф11, может правда в какие подписки лезет...
|
|||
25
extrim-style
06.10.11
✎
15:05
|
попробовал сейчас удалить от этого пользователя другой справочник, на который у пользователя также есть все права - выдал эту же ошибку. Получается работает какой-то общий механизм при удалении элемента справочника? И как его найти? Конфа Бух 1.6.
|
|||
26
catena
06.10.11
✎
15:06
|
(25)попробуй встать на эту строчку и нажать ф11, может правда в какие подписки лезет...
|
|||
27
extrim-style
06.10.11
✎
15:08
|
(26) уже пробовал. никуда не идет.
|
|||
28
catena
06.10.11
✎
15:20
|
(27)Тады ай.
У меня все удаляется. |
|||
29
extrim-style
06.10.11
✎
15:20
|
*здесь крик о помощи*
|
|||
30
hhhh
06.10.11
✎
15:43
|
а в модуле объекта ничего нет? и что такое "программная синхронизация"?
|
|||
31
hhhh
06.10.11
✎
15:51
|
(29) еще попробуй Выборка.ПолучитьОбъект().Записать();
|
|||
32
extrim-style
06.10.11
✎
15:59
|
(30) программная синхронизация означает, что новый справочник создается на основе другого и содержание справочников должно совпадать. Т.е. при открытии происходит проверка на соответствие элементов, если елемента в исходном справочнике нет, то он должен удалиться из этого справочника. Как раз с этим моментом и возникла проблема.
(31) зачем записывать то, что уже записано? (30) в модуле объекта почти ничего нет, заходит туда только при пометке удаления. А при непосредственном удалении не заходит. У пользователя с полными правами всё работает. У текущего пользователя, от которого запускаю - нет. Как понять чего не хватает. Может есть какая-то глобальная проверка? Но не представляю, где её искать. |
|||
33
hhhh
06.10.11
✎
16:04
|
обмен может? На обмен права есть?
|
|||
34
extrim-style
06.10.11
✎
16:05
|
(33) новый справочник - изначально копия старого, и в старом действительно был обмен. Но в новом эти галки сняты.
|
|||
35
catena
06.10.11
✎
16:08
|
(32)@зачем записывать то, что уже записано? @
чтобы проверить, есть ли права... |
|||
36
НЕА123
06.10.11
✎
16:12
|
(0)
> Выборка.ПолучитьОбъект().Удалить() ой как некошерно!!! |
|||
37
extrim-style
06.10.11
✎
16:15
|
(36) чем?
|
|||
38
extrim-style
06.10.11
✎
16:16
|
Начал методом тыка подключать права для роли. Похоже дело в регистре сведений каком-то...
|
|||
39
НЕА123
06.10.11
✎
16:25
|
(38)
мда... так ты до сих пор не делал поиска ссылок на объекты? |
|||
40
НЕА123
06.10.11
✎
16:27
|
2АЛЛ
сегодняшний день на мисте - это что-то...!!! |
|||
41
extrim-style
06.10.11
✎
16:31
|
(38) я уже написал в (9) обо всех ссылках
|
|||
42
extrim-style
06.10.11
✎
16:32
|
(40) похоже, пока разбирался со своим вопросом, всё интересное на мисте пропустил...)
|
|||
43
НЕА123
06.10.11
✎
16:41
|
(41)
ссылки в конфигураторе что-ли искал? из (9) >Ни с какими регистрами он не связан. из (38) >Похоже дело в регистре сведений каком-то... (37) Выборка может слететь. и нельзя удалять без проверки ссылок. |
|||
44
extrim-style
06.10.11
✎
16:48
|
(43) да нет никаких ссылок. я же сам создал этот объект.
|
|||
45
shuhard
06.10.11
✎
16:53
|
(44) можно задвинул
теперь предположим наличие в конфигурации подписки перед/при записи на все справочники, которая пишет в Рг сведений версии объектов или объекты доступа |
|||
46
shuhard
06.10.11
✎
16:54
|
(46) +1
кстати конфа до сих пор не озвучена, вдруг это УПП |
|||
47
extrim-style
06.10.11
✎
16:59
|
Трам-пам-пам. Барабанная дробь! РС СоответствиеОбъектовДляОбмена. Не понял откуда ноги растут. Будет интересно если кто просвятит.
В исходном справочнике СтатьиЗатрат есть настроенный обмен. В коде я сравниваю элементы обоих справочников. Но в этом справочнике обмен отключен. Не пойму каким он сюда вылез? |
|||
48
extrim-style
06.10.11
✎
17:00
|
(46) озвучена в (25). Бух 1.6
|
|||
49
extrim-style
06.10.11
✎
17:01
|
Вот более полный код:
Выборка = Справочники.хз_СтатьиЗатрат.ВыбратьИерархически(); СообщениеВыведено = Ложь; Пока Выборка.Следующий() = 1 Цикл Если Выборка.ЭтоГруппа = Ложь Тогда Элемент = Справочники.СтатьиЗатрат.НайтиПоНаименованию(Выборка.Наименование, Истина); Если Элемент = Справочники.СтатьиЗатрат.ПустаяСсылка() Тогда Выборка.ПолучитьОбъект().Удалить(); |
|||
50
extrim-style
06.10.11
✎
17:02
|
справочники синхронизируются по наименованию статей
|
|||
51
shuhard
06.10.11
✎
17:02
|
(47) не фига было выпендриваться,
поиск ссылок со стороны предприятия ищет ссылку за секунды |
|||
52
extrim-style
06.10.11
✎
17:05
|
(51) я не понял, что речь идет о поиске данных в пользоват. режиме. Спрашивал об этом в (15).
|
|||
53
shuhard
06.10.11
✎
17:06
|
(52) не свисти
я тебе утром дал ответ пометь на удаление и запусти штатную обработку она даст все ссылки |
|||
54
extrim-style
06.10.11
✎
17:07
|
(53) я так и сделал. не было никаких проблем. элемент спокойно предлагался на удаление.
|
|||
55
shuhard
06.10.11
✎
17:11
|
(54) топик закрыт
|
|||
56
extrim-style
06.10.11
✎
17:14
|
(55) нет не закрыт! Я день промучился с этой траблой и нихрена не понял! Почему он просит у меня этот регистр?
|
|||
57
extrim-style
06.10.11
✎
17:22
|
и кстати этого регистра недостаточно. еще какой-то(какие-то) нужны, как оказалось.
|
|||
58
catena
06.10.11
✎
17:39
|
О, боже, а зачем:
Элемент = Справочники.СтатьиЗатрат.НайтиПоНаименованию(Выборка.Наименование, Истина); ??? (57)Не помечай на удаление, сделай НайтиСсылки() |
|||
59
extrim-style
07.10.11
✎
08:27
|
(58) справочник-копия самостоятельный и не является ссылочным к исходному справочнику
|
|||
60
catena
07.10.11
✎
08:44
|
(59)а ты уверен, что нет каких-нить регистров, в которые пишутся ВСЕ справочники?
|
|||
61
extrim-style
07.10.11
✎
08:53
|
(60) нет. не уверен. а как мне это определить?
|
|||
62
catena
07.10.11
✎
09:01
|
(57)Не помечай на удаление, сделай НайтиСсылки()
|
|||
63
catena
07.10.11
✎
09:03
|
пардон,
НайтиПоСсылкам |
|||
64
Sammo
07.10.11
✎
09:07
|
Кстати, как вариант нет доступа на изменение регистра сведений, где в измерении тип ВсеСсылки
При этом фактически записей в этом регистре по данному элементу справочника может и не быть |
|||
65
catena
07.10.11
✎
09:11
|
Хм... А ведь Удалить() действительно не проверяет ссылки. Пятница, однако.
|
|||
66
extrim-style
07.10.11
✎
09:38
|
(65) а как ты это поняла?
|
|||
67
Sammo
07.10.11
✎
09:45
|
(65) Емнип, кроме того, что в подписках и РС, где на измерение с данным типом стоит Ведущее
|
|||
68
catena
07.10.11
✎
09:45
|
(66)Тут где-то СП по СП была, поищи.
|
|||
69
extrim-style
07.10.11
✎
09:48
|
(68) ааа... а я думал о чем ты...
|
|||
70
extrim-style
07.10.11
✎
10:23
|
оказывается, еще и прав на документ какой-то не хватает...
|
|||
71
extrim-style
07.10.11
✎
11:33
|
Итого в сухом остатке - понадобились права на изменение для РС КоллизииПриОбмене, РС ОбъектыИнформационныхБаз, РС СоответствиеОбъектовДляОбмена, РС СоответствиеОбъектовИнформационныхБаз.
Я так понял, что весь этот трабл связан именно с недостатком прав на обмен. Не знаю как обмен работает, но может в момент моего обращения к исходному справочнику СтатьиЗатрат он отрабатывает. А ошибка почему-то выскакивает позже? |
|||
72
Sammo
07.10.11
✎
11:37
|
(71) Указан ли в данных регистрах сведений в измерениях данный тип или тип ВсеСсылки?
|
|||
73
extrim-style
07.10.11
✎
11:41
|
(72) Да. У каждого из этих регистров есть измерение с типом ЛюбаяСсылка.
|
|||
74
Sammo
07.10.11
✎
11:43
|
(73) Тогда см. 64
|
|||
75
Sammo
07.10.11
✎
11:44
|
Классика...
Еще из этой же серии - создается документ, который двигает регистр накоплений. На данный документ у человека прав нет, на регистр - есть. При формировании отчета по регистру - нарушение прав доступа (хотя документов еще не было) |
|||
76
extrim-style
07.10.11
✎
11:49
|
(74) а как это всё работает? можно поподробнее? Мало ли в каком регистре что указано. Если я не использую его непосредственно, то каким боком он тут вылез?
|
|||
77
extrim-style
07.10.11
✎
12:07
|
ап. интересно.
|
|||
78
НЕА123
07.10.11
✎
12:18
|
учиться, учиться и учиться (с)
|
|||
79
extrim-style
07.10.11
✎
12:36
|
(78) ссылку не?
|
|||
80
НЕА123
07.10.11
✎
12:40
|
||||
81
НЕА123
07.10.11
✎
12:41
|
(64)+(67)
|
|||
82
extrim-style
07.10.11
✎
12:53
|
да, кстати, в этих регистрах эта ЛюбаяСсылка как ведущее.
Но причем здесь мой левый справочник, ни с чем не связанный, и эти регистры? И почему именно в момент удаления происходит эта проверка? |
|||
83
Sammo
07.10.11
✎
13:00
|
(82) Рекомендую прочитать - что такое признак Ведущее у измерения Регистра сведений. И много думать...
|
|||
84
extrim-style
07.10.11
✎
14:08
|
(83) Руководство разработчика. Ведущее - установка этого свойства имеет смысл для измерений, тип данных которых - ссылка на объект конфигурации. В этом случае считается, что запись регистра сведений имеет смысл, только пока существует этот объект.
И что я отсюда должен вынести, кроме того, что здесь написано? |
|||
85
НЕА123
07.10.11
✎
14:34
|
(84)
ты это... того... прочитай до конца (83). |
|||
86
extrim-style
07.10.11
✎
14:41
|
хотя бы один снизошел... Тут написано - "запись регистра". Я в регистр ничего не записываю, тем более эти регистры вобще пустые.
|
|||
87
catena
07.10.11
✎
14:43
|
(86)Запись регистра не может существовать без этого объект, т.е. даже при использовании Удалить(), связанные записи пропадут. Вот он и лезет везеде, где твой элемент ПОТЕНЦИАЛЬНО может быть, а у него прав нету.
|
|||
88
extrim-style
07.10.11
✎
14:50
|
(87) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |