Имя: Пароль:
1C
1С v8
Получить роль текущего сотрудника
0 KRolexx
 
09.11.12
11:13
Добрый день. Подскажите пожалуйста с 1 моментом. У меня есть функция которая проверяет тек пользователя, сверяет его с регистром сведений и если находит то идет дальше иначе "недостаточно прав"
Но это функция, а мне нужно что бы это было при начале работы системы а это уже процедура как быть?
1 KRolexx
 
09.11.12
11:13
могу приложить код, программы
2 samozvanec
 
09.11.12
11:14
как загнул-то...
3 golden-pack
 
09.11.12
11:14
приложи код, программы
4 Defender aka LINN
 
09.11.12
11:15
(0) Зажмуриться и пердставить, что это процедура
5 KRolexx
 
09.11.12
11:15
Если ЭтоНовый() тогда
       Сценарий=Справочники.ууСценарии.ПланБазовый;
   Иначе
   КонецЕсли;
   
   УправлениеВидимостью();
   
   Отбор = Файлы.Отбор;
   Если Отбор.Найти("Объект") = Неопределено Тогда
       Отбор.Добавить("Объект");
   КонецЕсли;
   Отбор["Объект"].Использование = Истина;
   Отбор["Объект"].Значение = Ссылка;
   Отбор["Объект"].ВидСравнения = ВидСравнения.Равно;    
   
   Запрос = Новый Запрос;
   
   Запрос.Текст = "ВЫБРАТЬ
                  |    ууПраваЭлектронныеПодписиСрезПоследних.Роль
                  |ИЗ
                  |    РегистрСведений.ууПраваЭлектронныеПодписи.СрезПоследних(&НаДату, Пользователь = &Сотрудник) КАК ууПраваЭлектронныеПодписиСрезПоследних
                  |ГДЕ        2
                  |    ууПраваЭлектронныеПодписиСрезПоследних.Утверждение = ИСТИНА";
   
             
   Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
   Запрос.УстановитьПараметр("НаДату", ТекущаяДата());

   тзРезультат = Запрос.Выполнить().Выгрузить();

   Если тзРезультат.Количество()=0 тогда
       Сообщить("У пользователя "+Сотрудник+" нет прав ");
       Возврат Неопределено;
   ИначеЕсли тзРезультат.Количество()=1 тогда
       Возврат тзРезультат[0].Роль;
   Иначе
       //если руководитель ЦФО
       Для Каждого ТекЭлемент Из ЭлементыФормы Цикл
           Попытка
               ТекЭлемент.ТолькоПросмотр=Истина;
           Исключение КонецПопытки;
       КонецЦикла;
       ЭлементыФормы.Заявка.ТолькоПросмотр=Ложь;
       ЭлементыФормы.Файлы.ТолькоПросмотр=Ложь;
       ЭлементыФормы.ТекКомментарий.ТолькоПросмотр=Ложь;
       
       Если ВыбСтрока=Неопределено тогда
           Возврат Неопределено;
       Иначе
           Возврат ВыбСтрока.Роль;
       КонецЕсли;
   КонецЕсли;
6 samozvanec
 
09.11.12
11:15
ну вызови ее при начале работы системы
7 KRolexx
 
09.11.12
11:16
моя функция не возвращает значения, а это важно
8 samozvanec
 
09.11.12
11:16
(5) создается впечатление, что это не вся программа
9 KRolexx
 
09.11.12
11:16
дело в том что она уже есть в форме документа но измененная немного
10 Trier
 
09.11.12
11:16
(7)Беда!) Пусть она возвращает Истину или Ложь
11 YF
 
09.11.12
11:17
(8) ага и у меня
12 KRolexx
 
09.11.12
11:17
только позже
13 YF
 
09.11.12
11:17
(10) Это страшное шаманство
14 KRolexx
 
09.11.12
11:18
ребят, в 1С можно вызывать функции которые написанны после процедуры?
15 samozvanec
 
09.11.12
11:18
выложи модуль приложения, так бесполезно гадать
16 KRolexx
 
09.11.12
11:18
обычно описываешь потом вызываешь или обращаешься или нет?
17 Reset
 
09.11.12
11:19
(14) Можно
18 samozvanec
 
09.11.12
11:20
(16) пишешь, потом вызываешь, по-другому пока нельзя
19 KRolexx
 
09.11.12
11:23
не получается вызвать потом результат если
20 Фрэнки
 
09.11.12
11:24
(16) а ты пробовал?

(18) :))) прикинь, если код процедуры/функции еще нигде не написан... а его уже вызвали и?
21 KRolexx
 
09.11.12
11:24
там же и в если используется возврат
22 Reset
 
09.11.12
11:25
У тебя манера изложения как у программы - "бредогенератора", то есть которая из набора слов составляет по набору правил случайные фразы
23 1Сергей
 
09.11.12
11:26
Вы чо, в версии 8.3 можно вызывать функции до написания их. Сперва вызываешь, а потом напишешь, месяца через 2...
24 Reset
 
09.11.12
11:26
(23) Асинхронный вызов кода?
25 KRolexx
 
09.11.12
11:29
Вроде дошел как вызывать, буду пробывать
26 artems
 
09.11.12
11:34
(0) у нас для этого на стене висит бубен :)
27 KRolexx
 
09.11.12
11:42
ребят, если CF заливать на концу, пароли и настройки пользователей слетят?
28 KRolexx
 
09.11.12
11:42
конфу*
29 Reset
 
09.11.12
11:45
Пароли пользователей ИБ - нет.
Что ты именуешь настройками - хз
30 1Сергей
 
09.11.12
11:54
(27) ты бы это... книжки почитал, чтоли... прежде чем конфу обновлять
31 KRolexx
 
09.11.12
12:03
хочу новый документ со всеми настройками перенести, ну чтоб не мучится взять и накатить цф на базу
32 KRolexx
 
09.11.12
12:03
вот что я имел в виду
33 samozvanec
 
09.11.12
12:10
можно не накатить, а объединить
34 KRolexx
 
09.11.12
12:14
еще вопрос
35 KRolexx
 
09.11.12
12:15
Если тзРезультат.Количество()=0 тогда
       Сообщить("У пользователя "+Сотрудник+" нет прав ");
       Возврат Неопределено;
   Иначе
       Если тзРезультат.Количество()=1 тогда
       Возврат тзРезультат[0].Роль;
       конецЕсли;
   КонецЕсли;

почему в процедуру не возвращает по этому условию хотя отрабатывает его? куда посмотреть? может неправильное условие в самой процедуре?
36 KRolexx
 
09.11.12
12:16
ТекРоль=ТекущаяРоль(ПараметрыСеанса.ТекущийПользователь);    
   Если ТекРоль<>Неопределено Тогда
       //если руководитель ЦФО
       Для Каждого ТекЭлемент Из ЭлементыФормы Цикл
           Попытка
               ТекЭлемент.ТолькоПросмотр=Истина;
           Исключение КонецПопытки;
       КонецЦикла;
       ЭлементыФормы.ЦФО.ТолькоПросмотр=Ложь;
       ЭлементыФормы.СтатьяДДС.ТолькоПросмотр=Ложь;
       ЭлементыФормы.СтатьяДР.ТолькоПросмотр=Ложь;
       ЭлементыФормы.Расшифровка.ТолькоПросмотр=Ложь;
   
       Если НЕ РольДоступна("Экономист") И Подписи.Количество()>2 Тогда
           ЭлементыФормы.Заявка.ТолькоПросмотр=Истина;
       КонецЕсли;
   КонецЕсли;
это кусок процедуры
37 cw014
 
09.11.12
12:18
тзРезультат[0].Роль Есть Неопределено
38 KRolexx
 
09.11.12
12:24
разве по условию не определено это когда
тзРезультат.Количество()=0
39 KRolexx
 
09.11.12
12:24
а если не возврат роли
40 YF
 
09.11.12
12:26
(35) оТЛАДЧИК СПАСЕТ ОТЦА РУССКОЙ ДЕМОКРАТИИ
41 KRolexx
 
09.11.12
12:27
капсом незя))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн