Разделение рабочих мест для подключения торгового оборудования через RDP

Публикация № 866783

Оборудование - ККМ

Торговое оборудование рабочее место кассы УТ УПП настройка

21
Информация по настройке торгового оборудования.

Добрый день, дорогие друзья, недавно столкнулся с проблемой подключения торгового оборудования.

Имеем УТ 10.3, несколько рабочих мест, находящихся удаленно друг от друга, и сервер, где стоит 1С и к нему все подключаются через RDP.

Проблема заключается в следующем: к примеру, у нас есть 10 рабочих мест и 4 кассы ККТ. На тех компьютерах, где стоят кассы локально, настроен проброс портов, в 1С на стороне RDP все настроено корректно, связь есть, чеки печатаются, но на остальных компьютерах, где кассы не подключены, при создании документов каждый раз вылетает сообщение с ошибкой о подключении торгового оборудования.  Как оказалось, типовая конфигурация к такому варианту работы не приспособлена, так как рабочее место в 1С ограничено именем компьютера см. скрин1.

Решение проблемы следующие: 

1) В конфигурации включить возможность редактирования

2) В древе конфигурации найти обработку ТОСервер

3) В модуле обработке заменить текст процедуры "ПолучитьИмяКомпьютераТО()" на 

Если мИмяКомпьютера = Неопределено Тогда
        
        мИмяКомпьютера = ВРег(ИмяКомпьютера());        
        WshShell = Новый COMОбъект("WScript.Shell");
        
        ИмяКомпьютераКлиента = WshShell.expandEnvironmentStrings("%CLIENTNAME%"); 
        ИмяСессии = WshShell.expandEnvironmentStrings("%SESSIONNAME%");
        ИмяПользователя = WshShell.expandEnvironmentStrings("%USERNAME%"); 
        
        Если ИмяСессии="Console" Тогда
            //Имя Компьютера будет равно имени терминального сервера
            мИмяКомпьютера = мИмяКомпьютера + "_" + ИмяПользователя;
        Иначе     
            //Терминальный клиент
            мИмяКомпьютера = мИмяКомпьютера + "_"+ ИмяКомпьютераКлиента+ "_" + ИмяПользователя;
            //мИмяКомпьютера = мИмяКомпьютера + "_"+ ИмяКомпьютераКлиента;
        КонецЕсли;
    КонецЕсли;
    
    Возврат мИмяКомпьютера;    


В итоге после принятия изменений в конфигурации получим следующее: для каждого пользователя имя компьютера будет складываться из имени сервера+имя компьютера локальной машины+имя пользователя, под которым зашли в RDP, см. скрин 2.

В итоге для каждого пользователя будет свой список оборудования (у других пользователь он отображаться не будет) . Ошибка у других пользователя вылетать не будет. 

21

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. gorakh 18 13.07.18 16:52 Сейчас в теме
А если драйвер ТО "не понимает" что у него много подключений и он работает с удаленным оборудованием?
2. VRP 269 13.07.18 17:41 Сейчас в теме
ИмяСервера+ИмяКомпьютера+ИмяПользователя нужно только при распределенной базе на разных серверах с RDP. При этом необходимость ИмяПользователя все равно под вопросом.

(1) При пробросе портов ТО не пересекается т.к. виртуализируется. И поэтому у всех кто подключился сканеры могут быть на "одинаковом" COM3.

Пы.Сы Уже лет десять ржу с типовых конфей и как люди гемороятся с ними. Или теряют деньгу на вот такие мелкие, но глобальные правки. ИМХО.
4. Xellsing 27 13.07.18 22:56 Сейчас в теме
(2) Да ТО не пересекается но 1С видит что оборудование есть на этом рабочем месте и пытается к нему подключаться из-за этого ошибка и возникает, или бывает другая ситуация открывают смену на одном компьютере, чек печатается на другом
7. VRP 269 14.07.18 18:43 Сейчас в теме
(4) печать нужно настраивать как ТО (я так и делал), т.е. в привязке к клиентскому компу и тогда проблем нет. А лучше всего печать настраивать через ScrewDrivers (ну да бесплатная реклама) и тогда все как часики работает.
3. VRP 269 13.07.18 17:51 Сейчас в теме
И еще ... запрос через имена среды исполнения не всегда дает правильный ответ. А вот правильный всегда можно получить через реестр HKEY_CURRENT_USER\Volatile Environment и дальше сами разберетесь ... а еще WMI
5. azubar 36 13.07.18 23:13 Сейчас в теме
Еще момент, если сеанс создан с одного компа, а потом в этот сеанс подключились с другого компа то все эти параметры %CLIENTNAME%, %SESSIONNAME%, %USERNAME% не переинициализируются и будете опять ловить ошибку...
6. VRP 269 14.07.18 18:41 Сейчас в теме
(5) смотри (3) я об этом и писал
8. azubar 36 15.07.18 13:18 Сейчас в теме
(6) Да, в реестре обновляется. А можно ли узнать внешний ip того кто подключился к rdp?
9. VRP 269 15.07.18 19:33 Сейчас в теме
(8) в принципе да, но толку будет не много, т.к. за NAT'ом вполне можно получать IP роутера (прокси) в локалке. А если настроить все по фэншую, то полученный IP (интернетовский) также может быть ни о чем ...
10. azubar 36 15.07.18 23:34 Сейчас в теме
(9) По IP (интернетовскому) можно определить страну, провайдера, проверить были ли раньше подключения с этого IP/диапазона. Уведомлять в телеграмм о подозрительных подключениях. Искал решение, компоненты выдают локальный IP клиента за натом/роутером который, пока нашел способ только парсить event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational":
https://mikecrowley.us/2015/04/08/a-new-and-an-updated-powershell-script/
11. rpgshnik 1098 16.07.18 08:43 Сейчас в теме
12. Shevon 1 16.07.18 17:03 Сейчас в теме
В итоге для каждого пользователя будет свой список оборудования (у других пользователь он отображаться не будет) . Ошибка у других пользователя вылетать не будет.


И настраивай сам себе кассир(не админ, который пользуется торговым оборудованием) оборудование...
13. Некто A. Petti 60 21.07.18 18:07 Сейчас в теме
Если мне не изменяет память, когда-то давным давно в УТ был отдельный справочник "ГруппыПользователейТорговогоОборудования" через который можно было настроить конкретному пользователю доступ к подключению ТО и все замечательно работало под терминалом. Но потом (давно это было) при очередном обновлении конфигурации его убрали и сделали так как и сейчас. И зачем?
14. newold2 125 28.08.18 15:53 Сейчас в теме
Плюс. Помогло для Вики-Принт
15. denis1c@ 4 20.12.18 03:10 Сейчас в теме
"На тех компьютерах, где стоят кассы локально, настроен проброс портов, в 1С на стороне RDP все настроено корректно..."
А можно ли развернуть информацию по пробросу портов и настройке RDP? Как организовано? (конфа БП 3.0)
Оставьте свое сообщение