![]() |
|
Вывод значений функции СвойстваСеанса | ☑ | ||
---|---|---|---|---|
0
noise
06.06.20
✎
02:59
|
Привет всем! Необходимо воспользоваться данной функцией, но ничего не происходит выводится пустая строка. Все ли я делаю правильно ? Я новичок в 1С.
Описание функции https://its.1c.ru/db/bsp312doc#content:380:hdoc &НаСервере Функция СвойстваСеанса() Экспорт Результат = Новый Структура(); Результат.Вставить("Номер"); Результат.Вставить("ИмяПользователя"); Результат.Вставить("ИмяКлиентскогоКомпьютера"); Результат.Вставить("ИдентификаторКлиентскогоПриложения"); Результат.Вставить("ИдентификаторЯзыка"); Результат.Вставить("МоментСозданияСеанса"); Результат.Вставить("МоментПоследнейАктивностиСеанса"); Результат.Вставить("Блокировка"); Результат.Вставить("БлокировкаСУБД"); Результат.Вставить("Передано"); Результат.Вставить("ПереданоЗа5Минут"); Результат.Вставить("СерверныхВызовов"); Результат.Вставить("СерверныхВызововЗа5Минут"); Результат.Вставить("ДлительностьСерверныхВызовов"); Результат.Вставить("ДлительностьТекущегоСерверногоВызова"); Результат.Вставить("ДлительностьСерверныхВызововЗа5Минут"); Результат.Вставить("ПереданоСУБД"); Результат.Вставить("ПереданоСУБДЗа5Минут"); Результат.Вставить("ДлительностьВызововСУБД"); Результат.Вставить("ДлительностьТекущегоВызоваСУБД"); Результат.Вставить("ДлительностьВызововСУБДЗа5Минут"); Результат.Вставить("СоединениеСУБД"); Результат.Вставить("ВремяСоединенияСУБД"); Результат.Вставить("МоментЗахватаСоединенияСУБД"); Результат.Вставить("ОписаниеСоединения"); Результат.Вставить("Спящий"); Результат.Вставить("ЗавершитьЧерез"); Результат.Вставить("ЗаснутьЧерез"); Результат.Вставить("ПрочитаноСДиска"); Результат.Вставить("ПрочитаноСДискаВТекущемВызове"); Результат.Вставить("ПрочитаноСДискаЗа5Минут"); Результат.Вставить("Лицензия"); Результат.Вставить("ЗанятоПамяти"); Результат.Вставить("ЗанятоПамятиВТекущемВызове"); Результат.Вставить("ЗанятоПамятиЗа5Минут"); Результат.Вставить("ЗаписаноНаДиск"); Результат.Вставить("ЗаписаноНаДискВТекущемВызове"); Результат.Вставить("ЗаписаноНаДискЗа5Минут"); Результат.Вставить("РабочийПроцесс"); Возврат Результат; конецфункции &НаКлиенте Процедура ИзвлечьВсеНосители(Команда) Результат = СвойстваСеанса(); сообщить(результат.ИмяПользователя); КонецПроцедуры |
|||
1
Chameleon1980
06.06.20
✎
04:38
|
ау. вы хоть капельку вникаете в то, что написано.
вот создается структура с ключами и пустыми значениями. что вы нахер ожидаетеиувидеть! получая не заполненное значение из структуры по ключу? вым даже капли не вникаете. |
|||
2
Kassern
06.06.20
✎
14:03
|
(0) Да уж... правильно вам написали, вы сами создаете структуру, но ничем ее не заполняете. Сами пишите "Результат.Вставить("ИмяПользователя");" без значения после ключа, а потом запрашиваете результат.ИмяПользователя. Естественно будет пусто. Вы можете написать Результат.Вставить("ИмяПользователя","Вася"), тогда вам вернет "Вася". Это я так для общего понимания пример привел)
Я понимаю откуда вы подтянули эту функцию. К ней обращаются по COM и заполняют данную структуру, но у вас эти функции пропущены. Вот например: Функция СловарьСвойствСеансов() Результат = Новый Структура(); Результат.Вставить("Номер", "session-id"); Результат.Вставить("ИмяПользователя", "user-name"); Результат.Вставить("ИмяКлиентскогоКомпьютера", "host"); Результат.Вставить("ИдентификаторКлиентскогоПриложения", "app-id"); Результат.Вставить("ИдентификаторЯзыка", "locale"); Результат.Вставить("МоментСозданияСеанса", "started-at"); Результат.Вставить("МоментПоследнейАктивностиСеанса", "last-active-at"); Результат.Вставить("БлокировкаСУБД", "blocked-by-dbms"); Результат.Вставить("Блокировка", "blocked-by-ls"); Результат.Вставить("Передано", "bytes-all"); Результат.Вставить("ПереданоЗа5Минут", "bytes-last-5min"); Результат.Вставить("СерверныхВызовов", "calls-all"); Результат.Вставить("СерверныхВызововЗа5Минут", "calls-last-5min"); Результат.Вставить("ДлительностьСерверныхВызовов", "duration-all"); Результат.Вставить("ДлительностьТекущегоСерверногоВызова", "duration-current"); Результат.Вставить("ДлительностьСерверныхВызововЗа5Минут", "duration-last-5min"); Результат.Вставить("ПереданоСУБД", "dbms-bytes-all"); Результат.Вставить("ПереданоСУБДЗа5Минут", "dbms-bytes-last-5min"); Результат.Вставить("ДлительностьВызововСУБД", "duration-all-dbms"); Результат.Вставить("ДлительностьТекущегоВызоваСУБД", "duration-current-dbms"); Результат.Вставить("ДлительностьВызововСУБДЗа5Минут", "duration-last-3min-dbms"); Результат.Вставить("СоединениеСУБД", "db-proc-info"); Результат.Вставить("ВремяСоединенияСУБД", "db-proc-took"); Результат.Вставить("МоментЗахватаСоединенияСУБД", "db-proc-took-at"); Возврат Новый ФиксированнаяСтруктура(Результат); КонецФункции И вот еще : Функция СвойстваСеансов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Истина) Экспорт Шаблон = "%rac session --cluster=%cluster% --cluster-user=%?cluster-user% --cluster-pwd=%?cluster-pwd% list --infobase=%infobase%"; Параметры = Новый Соответствие(); Параметры.Вставить("cluster", ИдентификаторКластера); ЗаполнитьПараметрыАутентификацииВКластере(ПараметрыАдминистрированияКластера, Параметры); Параметры.Вставить("infobase", ИдентификаторИнформационнойБазы); Если ИспользоватьСловарь Тогда Словарь = СловарьСвойствСеансов(); Иначе Словарь = Неопределено; Фильтр = ФильтрВНотациюRac(Фильтр, СловарьСвойствСеансов()); КонецЕсли; ПотокВывода = ВыполнитьКоманду(Шаблон, ПараметрыАдминистрированияКластера, Параметры); Результат = ПарсерВывода(ПотокВывода, Словарь, Фильтр); Возврат Результат; КонецФункции и т.д. По факту вам нужно не этой функцией воспользоваться а решить какую-то конкретную задачу. Я могу предположить, что вам нужно получить имя пользователя и вы почему-то решили, что данная функция вам поможет... Если я угадал, попробуйте воспользоваться ПараметрыСеанса.ТекущийПользователь. |
|||
3
Kassern
06.06.20
✎
14:11
|
(0) Если вам все-таки интересно, как и когда запускается ваша функция, изучите 2 модуля АдминистрированиеКластераCOMКлиентСервер и АдминистрированиеКластераRASКлиентСервер.
|
|||
4
noise
06.06.20
✎
14:58
|
(2) (3) Благодарю за подробный ответ и за пример, я новичок и попытался сделать глупость. Начну с изучения модулей.
|
|||
5
Kassern
06.06.20
✎
15:04
|
(4) Если у вас был затык еще на моменте понимания структуры, то лучше начинать не с этих модулей, а с азов 1с, с его синтексиса, клиент-серверного взаимодействия, работы с формами и т.д.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |