![]() |
![]() |
![]() |
|
УТ 10.3 Работа с оборудованием в терминальном режиме | ☑ | ||
---|---|---|---|---|
0
ilyich
08.04.11
✎
11:35
|
в 2010 году подобный вопрос рассматривался, но как-то четкого ответа я не вижу на форуме, поэтому пришлось капать самому.
Проблема в том что, при подключении оборудования, в регистр сведений "Торговое оборудование" в измерение "Компьютер" пишется имя компьютера и далее все отборы происходят по имени компьютера. Если мы работаем в терминальном режиме то имя компьютера может быть одно и тоже, а "пользователь 1С" разный, тут то и возникают проблемы. В итоге решил сделать так: Выполнить глобальный поиск строки: ПолучитьСерверТО().ПолучитьИмяКомпьютераТО() заменить везде эту строку на строку: СокрЛП(ПараметрыСеанса.ТекущийПользователь.Наименование) Пример: нашли строку Запрос.УстановитьПараметр("Компьютер", ПолучитьСерверТО().ПолучитьИмяКомпьютераТО()); нужно исправить на Запрос.УстановитьПараметр("Компьютер", СокрЛП(ПараметрыСеанса.ТекущийПользователь.Наименование)); Заметка: Имена пользователей не должны превышать 100 символов т.к. поле "Компьютер" в регистре сведений ТорговоеОборудование имеет длину 100. а то мало ли что )). Вопрос, какие ваши предложения по решению проблемы? Кто сталкивался с этим? |
|||
1
vis_tmp
08.04.11
✎
11:40
|
Удобнее заменить не на имя пользователя, а на имя локального компьютера
|
|||
2
vis_tmp
08.04.11
✎
11:41
|
P.S. Намёк: его можно получить в терминальной сессии.
|
|||
3
simol
08.04.11
✎
11:45
|
Может не "заменить везде", а поправить функцию ПолучитьСерверТО().ПолучитьИмяКомпьютераТО() ?
|
|||
4
ilyich
08.04.11
✎
12:18
|
(2) пожалуйста напиши как это сделать и как потом отличать терминальную сессию от обычной.
(3) согласен, я погорячился ))))) Правка функции ПолучитьИмяКомпьютераТО() в модуле обработке "ТОСервер" Есть еще один касяк, например драйвер сканера шк похоже также просит параметр имякомпьютера, т.к. сейчаз попробовали сделать с подстановкой имени пользователя вместо компьютера, не пашет. |
|||
5
vis_tmp
08.04.11
✎
12:41
|
(4) Вот так:
мИмяКомпьютера = Неопределено; WSS = Новый COMОбъект("WScript.Shell"); WSSE = WSS.Environment("Process"); мИмяКомпьютера = ВРег(WSSE.Item("ClientName")); |
|||
6
ilyich
08.04.11
✎
13:15
|
Всем спасибо, общими стараниями все получилось, в итоге что нужно для работы например сканера ШК в терминале:
Зайти в обработку "ТОСервер", найти функцию ПолучитьИмяКомпьютераТО() и заменить ее на это: Функция ПолучитьИмяКомпьютераТО() Экспорт //Если мИмяКомпьютера = Неопределено Тогда // мИмяКомпьютера = ВРег(ИмяКомпьютера()); //КонецЕсли; //Возврат мИмяКомпьютера; мИмяКомпьютера = Неопределено; WSS = Новый COMОбъект("WScript.Shell"); WSSE = WSS.Environment("Process"); мИмяКомпьютера = ВРег(WSSE.Item("ClientName")); Возврат мИмяКомпьютера; КонецФункции // ПолучитьИмяКомпьютераТО() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |