Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 17:56

Связка справочника Пользователи и ПользователиИнформационнойБазы

Автор onegreyonewhite, 30 янв 2012, 05:15

0 Пользователей и 1 гость просматривают эту тему.

onegreyonewhite

Пытаюсь создать 2 справочника: Пользователи и Сотрудники.
Проблем сразу несколько:
1. Как сделать проверку в справочниках Пользователи и Сотрудники

Процедура ПриВыбореЭлемента()
Если ТекущийПользователь = Администратор Тогда
       Форма = ПолучитьФорму(форма для сисадмина);
       Форма.Открыть();
ИначеЕсли ПользовательИзЭтогоСправочника = ТекущийПользователь Тогда
       Форма = ПолучитьФорму(форма для пользователя, редактируемая);
       Форма.Открыть();
Иначе
       Форма = ПолучитьФорму(Форма для пользователя, только просмотр);
       Форма.Открыть();
КонецЕсли;


Притом я хочу организовать такую проверку в обоих справочниках ибо защита от пакостников нужна очень сильно.

2. Как сделать проверку (тут надо проверить на наличие ошибок)

Процедура СоздатьПользователя(Имя, ПолноеИмя, Пароль, Должность) Экспорт
//Должность является объектом перечисления который по названию сопоставим с Ролями.
Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(Имя);
РольПользователя = Метаданные.Роли.Найти(Должность);
Если Пользователь = Неопределено Тогда
      Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
      Пользователь.Имя = Имя;
      Пользователь.ПолноеИмя = ПолноеИмя;
      Пользователь.Пароль = Пароль;
      Пользователь.Роли.Добавить(РольПользователя);
      Пользователь.Записать();
ИначеЕсли Пользователь.Имя = Имя Тогда
      Пользователь.Пароль = Пароль;
      Если Пользователь.Роли.Содержит(РольПользователя) Тогда
            Пользователь.Записать();
      Иначе
            Пользователь.Роли.Очистить();
            Пользователь.Роли.Добавить(РольПользователя);
            Пользователь.Записать();
      КонецЕсли;
КонецЕсли;
КонецПроцедуры


И собственно говоря проблема в чём... Мне база кажет, что Имя не является элементом объектного типа (Я строку с именем передаю).

onegreyonewhite

Да, и ещё... После выполнения процедуры ПриВыбореЭлемента() из первого листинга открывается (если вообще открывается) только последняя форма, и основная которая указана основной для справочника. Whatta fack?! :(

cska-fanat-kz

Насчет первого листинга...
1. Мы методом ясновидения должны догадаться, какие значения "сидят" в переменных "Администратор" и "ПользовательИзЭтогоСправочника"?
2. "форма для сисадмина", "Форма для пользователя" - насторожили пробелы....
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

onegreyonewhite

Цитата: cska-fanat-kz от 31 янв 2012, 13:38
Насчет первого листинга...
1. Мы методом ясновидения должны догадаться, какие значения "сидят" в переменных "Администратор" и "ПользовательИзЭтогоСправочника"?
2. "форма для сисадмина", "Форма для пользователя" - насторожили пробелы....

1. Вот я и думаю, что надо сахреначить в эти переменные :) чтоб всё это работало ;)
2. Это образные названия.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск