Имя: Пароль:
1C
 
Ошибка оператора РольДоступна()
0 ildary
 
14.10.15
08:04
Уважаемые специалисты, подскажите пожалуйста, что может вызвать ошибку при выполнении оператора РольДоступна( "ПолныеПрава" ), который вызывается в серверном модуле? При этом если полные права есть - ошибки нет, а если запустить под неполным юзером - вылазит "Недопустимое значение параметра (параметр номер 1)".
1С 8.3.5.1570, УТ11, postgree.
1 Лефмихалыч
 
14.10.15
08:42
РольДоступна(Метаданные.Роли.ПолныеПрава)
2 Лефмихалыч
 
14.10.15
08:43
для того, чтобы получить роль по строчке "ПолныеПрава", платформе нужны права, который у ограниченного пользователя нет. А на коллекцию метаданных ни каких прав не нужно.
3 Jonny_Khomich
 
14.10.15
08:46
(2) ну и дела.
А ещё я слышал, что теперь наименование роли необходимо правильно писать, а то платформа ругается. Раньше можно было написать в строке любое слово, он вернул бы ложь, а сейчас ошибка.
4 Лефмихалыч
 
14.10.15
08:47
(3) я вообще не понимаю, зачем туда строку писать. Это не типобезопасно напрочь же
5 ildary
 
14.10.15
08:48
(3) кстати, так и есть, я очепятался в строковом названии права, вот ошибка и лезет. Могли бы Ложь возвращать в таком случае....
6 Jonny_Khomich
 
14.10.15
08:49
(4) в типовых строку пишут, я хуже что ли?
7 Лефмихалыч
 
14.10.15
08:51
(6) не надо быть хуже, надо быть лучше
8 Jonny_Khomich
 
14.10.15
08:53
(7) опять же смотри. Если роль удалить, то с метаданными на старых конфиругациях будет проблема. А с текстом всё хорошо будет.
9 mehfk
 
14.10.15
08:54
(8) Для этого в новых платформах есть реfuckторинг
10 Лефмихалыч
 
14.10.15
08:55
(8) вялый аргумент
11 Jonny_Khomich
 
14.10.15
08:57
(9) я в 8.1 работаю, поэтому о новом только слышал. что там такого крутого?
(10) но я думаю как раз из-за этого в типовых используется текст.
12 Лефмихалыч
 
14.10.15
08:58
(11) нет, просто конфы для 8.n всегда пишут те, кто ранее работал только с 8.n-1
13 Fedor-1971
 
14.10.15
08:59
(8) а контроль конфигурации тебе найдёт ошибку в строке? А в 1 найдёт.
14 Jonny_Khomich
 
14.10.15
09:00
(13) я для теста написал, ничего не нашёл. Опять же я писал в 8.1
15 Лефмихалыч
 
14.10.15
09:01
(13) не найдет. ЭТот тупорылый контроль до первой точки работает.
16 Fedor-1971
 
14.10.15
09:08
(15) в 8.2.19.90 - вроде находит ошибки обращения к общим модулям. Про роль не проверял, но предполагаю, что найдёт.
17 Jonny_Khomich
 
14.10.15
09:12
(16) 1С:Предприятие 8.3 (8.3.5.1383) не нашёл ошибки в
РольДоступна(Метаданные.Роли.Ж#па);
18 Лефмихалыч
 
14.10.15
09:20
(16) общий модуль - это как раз до первой точки.

Вот такая строчка вызовет подозрения только, если модуля нет или функции в нем. На вторую точку все контролям насцать.
МойСуперВажныйМодуль.ВернутьСтруктуруЧегоНибудьТам().элементСтруктуры;