|
Попытка получения неинициализированного значения параметра сеанса | ☑ | ||
---|---|---|---|---|
0
laby1
26.02.16
✎
14:13
|
Подскажите, что не так, почему ошибку дает при обращении к номенклатуре:
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; КонецПроцедуры Для номенклатуры на чтение в роли установил доступ: Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаправлениеМенеджера КАК НаправлениеМенеджера ПО Номенклатура.Родитель = НаправлениеМенеджера.НоменклатурнаяГруппа ГДЕ НаправлениеМенеджера.Пользователь = &Пользователь |
|||
1
portowyi
26.02.16
✎
14:26
|
(0)
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; КонецПроцедуры Вот здесь нужно: Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) ПараметрыСеанса.Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; КонецПроцедуры И "Пользователь" определен в "Общие" - "Параметры сеанса"? |
|||
2
portowyi
26.02.16
✎
14:27
|
(1) Добавлю - а посему в "Пользователь" записывается строка? Или "НаправлениеМенеджера.Пользователь" в запросе это тоже строка? Если так, то как то не по фен шую.
|
|||
3
laby1
26.02.16
✎
14:32
|
(2) Да, там строка, я пока до фен-шуя как правильно по пользователю не дошел, пока Гилев строкой научил
|
|||
4
portowyi
26.02.16
✎
14:47
|
(3) Строками пользоваться - зело, можно кучу ошибок огрести. В системе нужен справочник "Пользователи". Если очень нужно, то через ГУИДы системного справочника "ПользователиИБ" можно их связать. И параметр сеанса "ТекущийПользователь" сделать типом "СправочникСсылка.Пользователи". Ну и "НаправлениеМенеджера.Пользователь" так же установить в тип "СправочникСсылка.Пользователи".
|
|||
5
laby1
26.02.16
✎
14:48
|
(1) Да, ошибка ушла! И запрос доделал:
Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаправлениеМенеджера КАК НаправлениеМенеджера ПО (Номенклатура.Родитель = НаправлениеМенеджера.НоменклатурнаяГруппа ИЛИ Номенклатура.ЭтоГруппа) ГДЕ НаправлениеМенеджера.Пользователь = &Пользователь ИЛИ НаправлениеМенеджера.Пользователь ЕСТЬ NULL |
|||
6
laby1
26.02.16
✎
14:49
|
(4) Да, спасибо, когда пойму что такое ПользователиИБ, так и сделаю
|
|||
7
portowyi
26.02.16
✎
14:49
|
(5) Вот и ладненько)
|
|||
8
laby1
26.02.16
✎
14:53
|
(6) Хотя что такое ПользователиИБ это понятно - это те самые пользователи, которых мы добавляем через администрирование, непонятно где они хранятся, есть подозрение, что они вообще не в конфигурации, хотя с другой стороны для каждой конфигурации они свои ...
|
|||
9
portowyi
26.02.16
✎
14:57
|
(8) В таблицах БД они хранятся. Но эти данные недоступны для интерактивного редактирования, кроме как через Администраование. Ну а если программно - то в СП посмотрите (в индексе СП введите "ПользователиИнформационнойБазы"). Менеджер пользователей ИБ позволяет как получать информацию о них, так и редактировать.
|
|||
10
xxTANATORxx
26.02.16
✎
14:59
|
так кошернее делать (для 8.2)
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) Если ТребуемыеПараметры = Неопределено Тогда Иначе УстановленныеПараметры = Новый Структура; Для Каждого ИмяПараметра ИЗ ТребуемыеПараметры Цикл УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры); КонецЦикла; КонецЕсли; КонецПроцедуры Процедура УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры) Если УстановленныеПараметры.Свойство(ИмяПараметра) Тогда Возврат; КонецЕсли; Если ИмяПараметра = "ОбщиеЗначения" Тогда ПараметрыСеанса.ОбщиеЗначения = Новый ХранилищеЗначения(Новый Структура); УстановленныеПараметры.Вставить("ОбщиеЗначения"); ИначеЕсли ИмяПараметра = "Пользователь" Тогда ПараметрыСеанса.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(ИмяПользователя(), Истина); УстановленныеПараметры.Вставить("Пользователь"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |