Имя: Пароль:
1C
1С v8
Как отловить ошибку рлс у пользователя недостаточно прав?
,
0 Gorr
 
17.07.14
11:57
Не могу определить в каком месте возникает ошибка "У пользователя недостаточно прав на исполнение операции над базой данных". Установка флага "Остановка по ошибке" к остановке не приводит.
Ставил бряки на конец процедуры передзаписью объекта, формы, процедур механизма подписок. Процедуры отрабатывают до конца без ошибок, и лишь после выхода из тела процедуры появляется модальное предупреждение с текстом ошибки.
1 ДенисЧ
 
17.07.14
11:58
журнал регистрации
2 Gorr
 
17.07.14
12:09
Журнал регистрации говорит только о времени и действии (добавление/изменение). О строке кода вызывашей ошибку информации не дает.
3 Aloex
 
17.07.14
12:10
Запусти отладчик из под этого пользователя.
4 Gorr
 
17.07.14
12:11
(3) топик вообще читаем? что такое "бряки" знаем?))
5 p-soft
 
17.07.14
12:12
ошибка может появляться при выборке данных формой - бряк не поможет. нужно делать детальный разбор запроса выборки и определять причинный объект
6 Aloex
 
17.07.14
12:13
(4) Если руки растут не там где нужно, то см (0).

p.s Точки останова в данном случае совершенно не нужны.
7 РенеДекарт
 
17.07.14
12:13
(1) при чем тут ЖР?
(3) и что? Отладчик покажет "вот, вот, тут"?
(0)смотри, в какой момент ошибка, и проверяй в обратном порядке до этого моменты все обращения к базе - найти справочников, запросы и т.п.
Как проверять - смотри RLS на объекты, и думай, где и что могло пересечься в запрете РЛС и настройках пользователя.
8 РенеДекарт
 
17.07.14
12:14
(4)> что такое "бряки" знаем?))
придумка ваша какая-то.
А вообще стваить ловушки в процедрах на RLS - это как повезет: может, сработает, а может - вообще все паралелльно происходит.
9 Gorr
 
17.07.14
12:15
(5) чтобы это сделать, нужно сначала найти в каком запросе происходит ошибка.
10 p-soft
 
17.07.14
12:16
(9) что за объект?
11 Gorr
 
17.07.14
12:16
(6) установка бряков говорит о том, что ошибка происходит не в теле указанных процедур, а гдето еще.
12 РенеДекарт
 
17.07.14
12:16
+ 7
> где и что могло пересечься в запрете РЛС и настройках пользователя.
в самом пользователе, его ФизЛице, Сотруднике и т.д., все, что проверяется в РЛС.
А вот что проверяется - и выясняй для каждого объекта по ходу кода. И думай, не мог ли РЛС вот тут обрубить, потому как у пользователя нет вот этого.
13 Maxus43
 
17.07.14
12:17
(2) может хреново настроен журнал? там событие такое есть "Отказ в доступе". ЖР на максимум логирования переведи
14 РенеДекарт
 
17.07.14
12:18
(9)>чтобы это сделать, нужно сначала найти в каком запросе происходит ошибка.
- в данном случае это самое простое: запускаешься под польз, подключаешь конфигуратор, ставишь точки стопа примерно, и выясняешь, в каком месте кода вываливается ошибка.
Это если сам не пишет.
А вообще в 99% случаев таких в ошибке в Подробно пишет, где произошла (как счиатет 1С) ошибка.
15 РенеДекарт
 
17.07.14
12:19
(13)>там событие такое есть "Отказ в доступе".
сообщение на экране и след от него же в ЖР - это разные вещи.
Первое никогда в полном объеме не попадает в ЖР.
16 РенеДекарт
 
17.07.14
12:19
(11)>установка бряков говорит о том, что ошибка происходит не в теле указанных процедур
- Чего?
17 Maxus43
 
17.07.14
12:20
(15) Если сообщение об ошибке доступа в модальном окне, без кнопок подробно и прочее - то значит это РЛС (90%), значит это дублируется в ЖР.
18 РенеДекарт
 
17.07.14
12:21
(11) "жмыка пожурила жрука и смышанила шмугу"
это хорошо, что вы знаете словообразование русского языка.
По 1С что хотите сказать?
19 Gorr
 
17.07.14
12:22
(14)
А вообще в 99% случаев таких в ошибке в Подробно пишет, где произошла (как счиатет 1С) ошибка.

Это не 100% ошибка, поэтому ничего не пишет. Ни где.

- в данном случае это самое простое: запускаешься под польз, подключаешь конфигуратор, ставишь точки стопа примерно, и выясняешь, в каком месте кода вываливается ошибка.
Почему топик не читаем? как бы я еще ставил бряки если не в режиме отладки под пользователем при котором возникает проблема???? КАК???
20 РенеДекарт
 
17.07.14
12:23
(17) ну и ЖР скажет, в документе таком-то.
Да, я заню, что польз открывает док такого-то ивда, тут и ошибка.
Это ни на йоту не приблизит к разрешению.
21 Gorr
 
17.07.14
12:23
(16) ТОГО - если до бряка дошли без проблем значит проблем не было.
22 РенеДекарт
 
17.07.14
12:24
(19)>как бы я еще ставил бряки
я не знаю, что вы там ставите, бряки или шмяки, но если методично "офлажковывать" ошибку, в конце концов найдешь строчку, после которой ошибка есть, до котрой - ошибки нет.
23 РенеДекарт
 
17.07.14
12:25
(21) ну так ставьте запятую. и двигайтесь дальше.
Тут все зависит от способности оценить код - просматривать весь код, или предугадать самую проблемную часть, и пытать её.
24 Gorr
 
17.07.14
12:26
(22) вы тут самым умным себя считаете? даете мне советы как в отладчике работать?))
25 Maxus43
 
17.07.14
12:27
(24) не слушай иго)
Что ЖР то говорит? Мало инфы о кокнретном объекте?
26 Gorr
 
17.07.14
12:35
(25) настройка журнала регистрации по-умолчанию - самая детальная. самый нижний пункт "Регистрировать ошибки, предупреждения, информацию, примечания". информации никакой:
Событие Доступ: Отказ в доступе Документ: Заказ покупателя Действие: Изменение
Вообще этот жр - бесполезнейшая штука.
27 Aloex
 
17.07.14
12:36
(26) Теперь смотри настройки ролей которые заданы пользователю (для документа Заказ покупателя).
28 Никулин Леонид
 
17.07.14
12:39
Что ты делаешь? В какой конкретно момент возникает предупреждение?
29 Gorr
 
17.07.14
12:39
Сложность здесь в том, что это не классическая Ошибка. Обычная ошибка вызывает исключительную ситуацию. При этом платформа сама показывает тот участок кода, где возникает ошибка, работают такие опции конфигуратора как "Остановка по ошибке" (для тех, кто не в курсе)
(28) при записи по нажатию на кнопку формы записать
30 Gorr
 
17.07.14
12:40
+Проблемная же ситуация описанная в топике исключение не вызывает.
31 m-serg74
 
17.07.14
12:40
(26) еще как варик включить Замер производительности и выполнить действия, потом сравнить время в ЖР для ошибки и время по трассировке и может увидишь что в тот момент делалось
32 m-serg74
 
17.07.14
12:42
(31) сорри в замере момент выполнения не показывается
33 Никулин Леонид
 
17.07.14
12:42
Какой документ? Какой профиль у пользователя и какие есть внутри роли?
34 Gorr
 
17.07.14
12:43
(31) ставил бряку на конец процедуры, включал замер, нажимал Ф11,получал предупреждение,отключал замер. В замере была единственная строчка "КонецПроцедуры"
35 m-serg74
 
17.07.14
12:45
(34) а что пользователь конкретно то делает?
36 Gorr
 
17.07.14
12:47
(33) заказ покупателя. в профиле роли менеджер по заказам, менеджер по продажам, розничные продажи, кассир. рлс только по подразделению. С видимостью доков в журналах и списках все впорядке. но вот создать и сохранить заказ продавец не может - при сохранении возникает проблемная ситуация.
37 m-serg74
 
17.07.14
12:48
(36) мож какая нить регистрация для обменов? подписки, смотрел там?
38 Gorr
 
17.07.14
12:50
(37) не нашел. может кто знает как включить логгирование запросов к базе? была такая возможность в файле настройки платформы где-то.
39 ДенисЧ
 
17.07.14
12:50
(38) гугли технологический журнал
40 Никулин Леонид
 
17.07.14
12:54
Для УТ10.3 и УПП1.3 права вроде верные... Смотри настройки пользователя. Основной склад, группа пользователей и др.
41 Gorr
 
17.07.14
15:01
(40) роли я сам создавал на основе типовых. тексты ограничиний немного правил. надо разбираться.
технологический журнал не могу включить никак.
<config xmlns="http://v8.1c.ru/v8/tech—log">;
<log location="C:\Program Files\1cv82\logs" history="10">
<event> <eq propertу ="Name" value="EXCP"/> < /event>
<property name="all"> < /property>
</log>
</config>
а вот относительно того где этот файл должен быть неизвестно.
куда не помещал файлы логов не создаются.
42 Gorr
 
17.07.14
15:05
проверял следующие варианты расположения
C:\Program Files\1cv82\conf
C:\Program Files (x86)\1cv82\conf
C:\Program Files\1cv82\8.2.19.80\bin
43 Necessitudo
 
17.07.14
15:17
(0) Нужно в ЖР включить логирование дополнительных событий. В гугле все есть.
44 РенеДекарт
 
17.07.14
15:21
(43) ЖР и ТЖ - разные вещи.
А так удачи автору с ТЖ, им даже создатели пользоваться до конца не умеют, но у вас все получится.
45 Gorr
 
17.07.14
15:54
может кто знает тонкости включения ТЖ?
46 Gorr
 
17.07.14
15:55
он на файловой базе работает?
47 rozer76
 
17.07.14
16:00
(45) на итс есть обработка настройки конфига для ТЖ
(46) конечно
48 Gorr
 
17.07.14
16:03
(47) нифига не включается. файл простейший - все события:

<config xmlns="http://v8.1c.ru/v8/tech—log">;
    <log location="c:\log" history="10">
        <event>
            <ne propertу="Name" value=""/>
        </event>
        <property name="all">
        </property>
    </log>
</config>
49 Gorr
 
17.07.14
16:04
<config xmlns="http://v8.1c.ru/v8/tech—log">;
    <log location="c:\log" history="10">
        <event>
            <ne propertу="Name" value=""/>
        </event>
        <property name="all">
        </property>
    </log>
</config>
50 Gorr
 
17.07.14
16:28
массу ресурсов прерыл, руководство администратора почитал. платформа как будьто не видит этих файлов!(
51 alle68
 
17.07.14
17:01
"Событие Доступ: Отказ в доступе Документ: Заказ покупателя Действие: Изменение"
Что ещё нужно, чтобы найти причину?
Неясно, где искать? Очевидно, в ограничении доступа, право "Изменение".
52 Aloex
 
17.07.14
17:21
(51) Пусть пишет. Выше уже сказано где искать проблему.
53 Gorr
 
18.07.14
15:10
Проблемка решилась. Оказалось никакого отдельного запроса или обращения к базе приводящего к Предупреждению и не было. Предупреждение возникает, если условие ограничения доступа при записи в данном случае документа возвращает ложь.
54 Gorr
 
18.07.14
15:13
+ т.е. уже после всех проверок, после того как весь код отработал (о чем и говорили точки останова) в момент записи документа в базе отрабатывает код ограничения доступа. если выражение ложно, тогда и появляется данное предупреждение.
55 mikecool
 
18.07.14
15:15
(51) ты не прав. такое предупреждение будет выдано, если при записи документа не будет прав на любой объект, к которому идет обращение при записи документа.
56 mikecool
 
18.07.14
15:16
+55 т.е. я запрашиваю какие то данные из регистра, на который я не имею прав, но ошибка будет звучать как нет прав изменение документа
57 Gorr
 
18.07.14
15:21
(55) а каких прав? чтения или записи?
в данном случае (54) прав - если поставить у документа в доп ограничении "ГДЕ ИСТИНА" в праве на изменение, предупреждение не возникает.
58 mikecool
 
18.07.14
15:22
(57) я сталкивался на чтении
59 mikecool
 
18.07.14
15:22
(57) что за доп. ограничение?
60 Gorr
 
18.07.14
15:25
(56) мы здесь вообще говорим о записи документа. не о чтении.
(57) "ограничение доступа"
61 Gorr
 
18.07.14
15:27
справедливости ради нужно сказать, что при чтении возникает то же предуереждение. что в свою очередь, еще добавляет путаницы в клубок.
Ошибка? Это не ошибка, это системная функция.