|
Модуль сеанса | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
11.10.17
✎
10:12
|
В модуле сеанса кроме как Процедура УстановкаПараметровСеанса() допускается добавлять свои функции?
Все работают в основном в терминале, но возникла необходимость определять с какого компа зашел пользователь. Нашел функцию http://expert.chistov.pro/public/392980/ вставил ее в свой модуль, в модуль сеанса ее вызов. В файловой копии работает нормально. В sql рабочей - кучу ошибок вываливает на глобальные переменные (их инициализация в модуле приложении). Ладно, перенес функцию в сам модуль сеанса - та же хрень!? Комментирую ее вызов - нормально! |
|||
1
silent person
11.10.17
✎
10:18
|
в каком режиме работает конфигурация ? управляемое или обычное приложение ?
|
|||
2
Mikhail Volkov
11.10.17
✎
10:23
|
(1) В обычном Альфа-Авто 4.1
|
|||
3
Ненавижу 1С
гуру
11.10.17
✎
10:26
|
Добавьте параметр сеанса
|
|||
4
Mikhail Volkov
11.10.17
✎
10:35
|
(3) Какой?
//Устанавливает параметры сеанса. Запускается перед началом работы системы до вызова остальных стандартных обработчиков Процедура УстановкаПараметровСеанса() Пользователь = обОпределитьТекущегоПользователя(); // Пользователь ПараметрыСеанса.Пользователь = Пользователь; // Организация ПараметрыСеанса.Организация = Пользователь.Организация; // ПодразделениеКомпании ПараметрыСеанса.ПодразделениеКомпании = Пользователь.Подразделение; // Компьютер // Имя = ПолучитьИмяКомпьютераТО(); //+МВ 10.10.2017 вместо Имя = ИмяКомпьютера(); Комп = Справочники.Компьютеры.НайтиПоНаименованию(Имя,Истина); Если Комп.Пустая() Тогда Комп = Справочники.Компьютеры.СоздатьЭлемент(); Комп.УстановитьНовыйКод(""); Комп.Наименование = Имя; Комп.Записать(); КонецЕсли; ПараметрыСеанса.Компьютер = Комп.Ссылка; // Т.к. этот модуль отрабатывает на сервере, то это будет неверным для клиентской сессии, так что в ней переопределим позже // РежимРаботыОборудования РежимРаботыОборудования = Строка(Комп.НеВключатьОборудованиеПриВходе); РежимРаботыОборудования = РежимРаботыОборудования+Строка(Пользователь.РежимИспользованияОборудования); ПараметрыСеанса.РежимРаботы = РежимРаботыОборудования; |
|||
5
Mikhail Volkov
11.10.17
✎
10:40
|
Может рано в модуле сеанса использовать?:
WSS = Новый COMОбъект("WScript.Shell"); WSSE = WSS.Environment("Process"); мИмяКомпьютера = ВРег(WSSE.Item("ClientName")); |
|||
6
Mikhail Volkov
11.10.17
✎
10:42
|
+ Не, используют же вызов:
Пользователь = обОпределитьТекущегоПользователя();!? |
|||
7
Тихий омут
11.10.17
✎
10:46
|
(0) Имхается мне, что модуль сеанса выполняется на сервере, поэтому получать ты будешь имя сервера, а не компа, к которого заходят, сам в (4) об этом говоришь.
Тут надо "заходить" с того места, в котором по условиям задачи тебе это имя компа нужно. |
|||
8
Филиал-msk
11.10.17
✎
10:48
|
(0) > В sql рабочей - кучу ошибок вываливает на глобальные переменные (их инициализация в модуле приложении)
Модуль сеанса про модуль приложения ничего не знает. Вообще. В том числе и про глобальные переменные глобальные переменные типа мИмяКомпьютера. Больше того, модуль сеанса выполняется на сервере приложений, а не на терминальном сервере. Поэтому верни все обратно в модуль приложения и не парь никому ничего. |
|||
9
Mikhail Volkov
11.10.17
✎
10:54
|
(7) По условиям задачи пользователь должен зайти по сети, тогда правильно определится его комп, и подключится его локальное оборудование. А пользователь заходит в терминале. Как быть?
|
|||
10
Тихий омут
11.10.17
✎
10:58
|
(9) т.е. тебе надо определить, с какого компа 1сный юзер в терминал зашёл? дак это совсем другая пестня. тут духа смахарба бы вызвать, он может чего и подсказал бы
|
|||
11
Mikhail Volkov
11.10.17
✎
10:59
|
(9) мИмяКомпьютера - не глобальная, а переменная функции ПолучитьИмяКомпьютераТО(), которую перенес в модуль сеанса
|
|||
12
Mikhail Volkov
11.10.17
✎
11:04
|
(11) -> (8)
(10) Нужно определить зашел ли в базу компьютер кассира с ФР, можно ли чеки бить по ПКО/РКО!? |
|||
13
Mikhail Volkov
11.10.17
✎
12:14
|
(8) Да, подсказка в самом модуле сеанса:
// Т.к. этот модуль отрабатывает на сервере, то это будет неверным для клиентской сессии, так что в ней переопределим позже Нашел это место, туда вставил (перенес из модуля сеанса): Функция ПервоначальнаяИнициализация(ЕстьПраваАдминистратора,ОбнаруженПервыйЗапуск,НеобходимоОбновлениеБазыДанных) Экспорт Пользователь = ПараметрыСеанса.Пользователь; ИмяПользователя = ИмяПользователя(); ПолноеИмяПользователя = ПолноеИмяПользователя(); // Переопределим текущий компьютер (в клиентской сессии пользователя он может // отличным от того что был определен в УстановкаПараметровСеанса) Состояние("Обновляем информацию о компьютере ..."); Имя = мвДоработки.ПолучитьИмяКомпьютераТО(); //+МВ 10.10.2017 Комп = Справочники.Компьютеры.НайтиПоНаименованию(Имя,Истина); Если Комп.Пустая() Тогда Комп = Справочники.Компьютеры.СоздатьЭлемент(); Комп.УстановитьНовыйКод(""); Комп.Наименование = Имя; Комп.Записать(); КонецЕсли; ПараметрыСеанса.Компьютер = Комп.Ссылка; // Вот теперь тут правильное значение для клиентской сессии заработало! |
|||
14
Тихий омут
11.10.17
✎
12:39
|
(13) мвДоработки.ПолучитьИмяКомпьютераТО() - в этой ф-ции код из (5)?
|
|||
15
Тихий омут
11.10.17
✎
12:41
|
(14) ага, уже нашёл, записал на подкорку
|
|||
16
Mikhail Volkov
11.10.17
✎
14:18
|
(14) Да, от Павла Чистова http://expert.chistov.pro/public/392980/
|
|||
17
Cyberhawk
11.10.17
✎
14:19
|
(16) Тролль? Какого Чистова, если это зеркало ИС? :)
|
|||
18
Mikhail Volkov
11.10.17
✎
14:25
|
(17) На счет авторства не знаю, но работает нормально.
> зеркало ИС - это что? |
|||
19
Cyberhawk
11.10.17
✎
14:33
|
(18) http://catalog.mista.ru/profile/partner/web/about/
Пролистать можешь до какого-то стремного словосочетания "Аффилиатская витрина" |
|||
20
Mikhail Volkov
12.10.17
✎
16:54
|
То что комп подключился к базе еще не все. Он может и отвалиться... Как убедиться, что он на месте, подключен, и можно пользоваться его оборудованием?
|
|||
21
Mikhail Volkov
14.10.17
✎
05:01
|
+ (20) Убедиться, что комп на месте, его можно пропинговать. А как проверить что порт не отвалился на сервере, какой командой?
|
|||
22
Мимохожий Однако
14.10.17
✎
07:41
|
Попробуй telnet
|
|||
23
Mikhail Volkov
14.10.17
✎
08:09
|
(22) А как ее правильно вставить в 1С, типа как (5)?
|
|||
24
Mikhail Volkov
14.10.17
✎
08:13
|
+ а лучше сделать автоматический мапинг com портов на терминальном сервере http://forum.ru-board.com/topic.cgi?forum=8&topic=27329#13, но не знаю как это вставить в 1С!?
|
|||
25
Мимохожий Однако
14.10.17
✎
08:37
|
попробуй Выполнить()
|
|||
26
Mikhail Volkov
16.10.17
✎
06:10
|
(25) Она ничего не возвращает. Мне нужно типа этого:
// Возвращает Истина, если пингуется IP-адрес // Функция PingIP_Адреса(IP_Адрес = "", Wss = Неопределено) Экспорт Если ПустаяСтрока(IP_Адрес) Тогда Возврат Ложь; КонецЕсли; Если Wss = Неопределено Тогда Wss = Новый COMОбъект("WScript.Shell"); КонецЕсли; Возврат Wss.Run("ping -w 1500 -n 1 " + IP_Адрес, 0, Истина); КонецФункции // PingIP_Адреса() Проверил, что комп с ФР не отвалился, далее маппинг порта... |
|||
27
Mikhail Volkov
16.10.17
✎
13:58
|
Как пинговать еще варианты есть v8: Как средствами 1C проверить ping (Ping monitor)?, а как порты маппить?
|
|||
28
Мимохожий Однако
16.10.17
✎
14:02
|
Возможно, есть подсказка в типовых конфигурациях по команде Проверить соединение с торговым оборудованием.
|
|||
29
Mikhail Volkov
16.10.17
✎
15:50
|
(28) В типовых конфигурациях возможно есть, но глубоко их не копал. Кто бы подсказал где именно смотреть!? У меня Альфа-Авто, а в ней все эти дела в черном ящике "Компонента_Рарус"...
|
|||
30
Mikhail Volkov
24.10.17
✎
07:32
|
Перенес установку ПараметрыСеанса.Компьютер по ПолучитьИмяКомпьютераТО() в функцию ПервоначальнаяИнициализация() (13). Далее идет ИнициализацияФункцийВнешнихКомпонент(), подключение ТО. А там опять ПараметрыСеанса.Компьютер по ИмяКомпьютера()!? И в списке активных пользователей у всех компьютер - сервер!?
Это Альфа-Авто где-то переставляет, или на уровне платформы так сделано? |
|||
31
Тихий омут
24.10.17
✎
07:40
|
(30) точно не платформа, конфа это делает
|
|||
32
Мимохожий Однако
24.10.17
✎
07:50
|
(30) Добавь в параметры к имени компьютера имя пользователя. Посмотреть можно в библиотеке подключаемого оборудования. Лучше всего найти толкового системного администратора, который может настроить нормальную переброску портов без участия 1С.
|
|||
33
Mikhail Volkov
24.10.17
✎
11:07
|
(32) Как раз пользователь-главнюк с разных компов входит (а то и вовсе из дома) - не показатель. Мне именно нужен комп, на котором установлен ФР, только с него разрешать подключение ТО. В Альфа-Авто специально сделан справочник Компьютеры, к котором указывается где, что установлено. Но это для сетевого варианта, в RDP похоже не работает!?
В ПервоначальнаяИнициализация() правильно ставлю ПараметрыСеанса.Компьютер, а в ИнициализацияФункцийВнешнихКомпонент() уже сбрасывается в ИмяКомпьютера(). Значит не платформа сбрасывает... |
|||
34
Mikhail Volkov
25.10.17
✎
10:58
|
+ А не, ничего не сбрасывает ПараметрыСеанса.Компьютер - верно отладчик показывает. Это в списке активных пользователей у всех компьютер - сервер - неверно показывает. Почему так?
|
|||
35
SSSSS_AAAAA
25.10.17
✎
11:11
|
(34) Имя компа, который подключился по RDP к терминалу, лежит в переменной окружения ClientName и оно при этом отлично от имени компа с терминалом.
|
|||
36
Mikhail Volkov
25.10.17
✎
11:18
|
(35) Эту переменную ClientName в 1С можно посмотреть, или где?
|
|||
37
SSSSS_AAAAA
25.10.17
✎
11:40
|
(36) Решение а в лоб: КомандаСистемы("set > c:\sets.txt") и дальше анализ полученного set.txt
|
|||
38
Шаман
25.10.17
✎
11:48
|
модуль сеанса для запуска 1с . свои функции там не допустимы .
сделай общий модуль , зачем тебе модуль сеанса? |
|||
39
Mikhail Volkov
25.10.17
✎
11:52
|
(38) Так и сделал см. (13)
Сейчас ПараметрыСеанса.Компьютер - верно отладчик показывает. Но окно активные пользователи - врет!? |
|||
40
Mikhail Volkov
25.10.17
✎
11:59
|
А еще вопрос: при наличии оборудования на компьютере в Альфа-Авто Сервис/Параметры добавляется вкладка Свойства, на которой есть возможность посмотреть "Параметры оборудования", сделать проверку связи... В типовых конфигурациях так же?
По какому признаку определяется добавлять эту вкладку или нет? |
|||
41
Mikhail Volkov
25.10.17
✎
16:50
|
Даже 7.7 добавляет эту вкладку http://catalog.mista.ru/public/628914/
|
|||
42
Mikhail Volkov
26.10.17
✎
10:04
|
Этот вопрос в отдельную тему вынес Контроль наличия подключенных устройств
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |