Имя: Пароль:
1C
1С v8
В чем проблема выполнять элементарные операции
,
0 zippygrill
 
11.01.12
09:35
Помогите понять по какой причине пользователь не может выполнять элементарные вычислении в базе.
Есть такая функция:

Функция СтеретьПервыеНули(Номер)
   рабСтрока = СокрЛП(Строка(Номер));
   ДлинаСтроки = СтрДлина(СокрЛП(Номер));
   Счетчик = 1;
   Пока Счетчик < ДлинаСтроки Цикл
       Если Лев(рабСтрока,1) = "0" Тогда
           рабСтрока = Прав(РабСтрока, СтрДлина(рабСтрока)-1);
           Счетчик = Счетчик +1;
       Иначе
           Прервать;
       КонецЕсли;    
   КонецЦикла;    
   Возврат рабСтрока;
КонецФункции    

{Форма.ФормаОтчета.Форма(471)}: Ошибка при получении значения атрибута контекста (Номер)
   рабСтрока = СокрЛП(Строка(Номер));
по причине:

по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

Наверное даже у пользователя с праввами "Пользователь" это код будет выполнятся.
1 Wobland
 
11.01.12
09:36
переименуй параметр
2 wladimir90
 
11.01.12
09:37
Какие права у пользователя? Самописные или типовые?
3 zippygrill
 
11.01.12
09:39
(1)да переименовал. было парСтрока стало Номер :)
(2)УПП типовая. права менеджера
Это во внешнем отчете. и еще как отладить под этим пользователем если ему не положено открыть внешние обработки/отчеты.
4 Defender aka LINN
 
11.01.12
09:42
Кэп говорит, что в параметр "Номер" передается какая-то ссылка.
5 zippygrill
 
11.01.12
09:44
сейчас перепроверю слова Кэпа.
6 zippygrill
 
11.01.12
09:46
отлаживаю под моим именем. там действительно передается Номер документа.
7 Defender aka LINN
 
11.01.12
09:49
(6) А зачем ты его в строку преобразовываешь?
8 YF
 
11.01.12
09:51
СтеретьПервыеНули(Знач Номер)?
9 zippygrill
 
11.01.12
09:53
(8) не понял
(7) привык. можно без, сейчас проверю.
10 YF
 
11.01.12
09:54
(9) Передавай пареметр по значению (если функция самописная)
11 zippygrill
 
11.01.12
10:05
(10) делаем успехи ))) тепери понятнее стало. Пользователь не может прочесть номер дока.
{Форма.ФормаОтчета.Форма(231)}: Ошибка при получении значения атрибута контекста (Номер)
           новаяСтрока.Номер = СтеретьПервыеНули(Строка.Регистратор.Номер);        
по причине:

по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.
12 zippygrill
 
11.01.12
10:31
получается что в коде обращаясь к Строка.Регистратор.Номер выдавало ошибку о недостаточных прав. понятие не имею почему, может обясните?
Сделал по другому .... получаю номер в запросе и потом вызываю мою функцию. Сработало.
13 YF
 
11.01.12
10:31
(12) А права-то на чтение документа есть?
14 zippygrill
 
11.01.12
10:43
(13) конечно
15 YF
 
11.01.12
10:44
(14) А на регистр?
16 RomaH
 
naïve
11.01.12
10:44
потому что Строка.Регистратор. читает все - аналогично
ВЫБРАТЬ * ИЗ ...
17 RomaH
 
naïve
11.01.12
10:45
а у тебя еще и две точки - т.е. весь регистр, а там еще и составной тип наверное у регистратора ...
18 katerinaUniv
 
11.01.12
10:46
если это внешняя обработка, то ему нужно выставить право администрирование внешних обработок или что-то типа того...
19 zippygrill
 
11.01.12
11:09
(15) я думаю ответ в (17)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн