Добрый день, дорогие друзья, недавно столкнулся с проблемой подключения торгового оборудования.
Имеем УТ 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.
В итоге для каждого пользователя будет свой список оборудования (у других пользователь он отображаться не будет) . Ошибка у других пользователя вылетать не будет.