Подключение сканера штрих кода в терминальном режиме. Нужна помощь

1. serpolit 8 05.05.15 16:18 Сейчас в теме
Добрый день!
Конфигурация 1с: 1С:Предприятие 8.3 (8.3.4.408) "Управление торговлей", редакция 10.3 (10.3.32.1)
1с УТ работает в Sql режиме на сервере компании - запущен сервер 1с и база на postgrees. Вход в 1с пользователи
осуществляют в терминальном режиме через удаленное подключение к рабочему столу сервера и запуска 1с с рабочего стола сервера.
У каждого пользователя стоит галочка "использовать принтеры" и принтеры пользователей видятся нормально и печатают они каждый на своем принтере. Есть пользователи, у которых установлены сканеры штрихкодов. Галочка "Проброс портов" в настройках подключения 0,у этих пользователей тоже настроен.

В 1с УТ установка сканера штрихкода запускается в меню "подключение и настройка торгового оборудования". Здесь я добавил сканер штрихкода, указал ему COM порт локального компьютера с которого подключаюсь к серверу и сканер заработал на этом компьютере.
Но у других пользователей этот же сканер тоже доступен и вызывает ошибку при работе со справочником номенклатуры.

Вопрос: Как настроить несколько сканеров штрихкодов в 1с УТ (они у нас подключены к трем локальным компам), но чтобы они не мешали другим пользователям работать в справочнике номенклатура?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DJDUH 17 05.05.15 18:25 Сейчас в теме
(1) serpolit, Предположим, что установить каждому сканеру разный порт и у каждого пользователя подтянуть в обработке именно назначенный ему сканер с нужным COM - должно сработать, при условии, что у терминальных сессиях установлено "передача портов"!
3. serpolit 8 05.05.15 21:21 Сейчас в теме
(2) DJDUH, Передача портов в терминальной сессии настроена. Раньше на данном компьютере-сервере стояла 1с 7 ТиС и сканеры у всех трех пользователей работали нормально - порты пробрасывались с каждого компьютера свой Com порт, а у на других компьютерах настройки сканера не было. Сейчас же если я настраиваю на каком-нибудь компьютере пользователя сканер штрихкода в 1с 8 ут, то и у других пользователей данный сканер тоже оказывается включенным и так как его нет - выдается ошибка.
А вот что значит подтянуть в обработке каждому пользователю назначенный ему сканер - не совсем понял, это получается программировать что-ли надо? Хотелось бы обойтись какими-нибудь стандартными средствами - ведь в 1с 7 они же работали!
4. spacecraft 05.05.15 22:58 Сейчас в теме
(3) serpolit, стандартными средствами вряд ли получится. Там проверка подключения идет на компьютер, а при RDP он один (сервер). Этот геморрой 1С никак не хочет решать даже в УФ. Хотя там чуть попроще решается.
В данном случае только править код. В обработке ТОСервер.
5. serpolit 8 14.05.15 12:50 Сейчас в теме
(4) spacecraft, Чтобы не править код решил сделать у данных пользователей запуск 1с не в терминальном режиме, а с локальной станции и сканеры стали привязываться к локальному компьютеру и работают. Почему-то до этого думал, что так будут проблемы с лицензиями на 1с, но на самом деле все нормально. Всем спасибо.
6. ture 606 14.05.15 15:01 Сейчас в теме
(1) пихаем в разъем клавиатуры
настраиваем префикс и постфикс (должны быть равны, кажись "=") и больше нет проблем со сканером
7. spacecraft 14.05.15 15:08 Сейчас в теме
(6) ture, тут проблема не в сканере, а в обработке обслуживания. Она тупо находит все "подключенное" оборудование на рабочее место (а на сервере по RDP это всегда одно и тоже для всех). Соответственно даже у кого сканера нет, обработка будет его пробовать подключить.
В БПО под управляемые формы немного получше сделали. Можно для каждого пользователя свое рабочее место указать.
8. azubar 46 07.03.18 15:55 Сейчас в теме
Хоть тема и старая но с ней приходится до сих пор сталкиватся, в 1С оборудование привязывается к имени компьютера при настройке, на терминалте имя компьютера одинаково для всех подключенных сеансов, но имя удаленного компьютера подключенного к терминалу можно определить используюя WScript.Shell (работает только в Windows).
Я решил эту проблему изменив в модуле обработки подключения оборудования (Обработки.ТОСервер) функцию получения имени компьютера:

Функция ПолучитьИмяКомпьютераТО() Экспорт

    Если мИмяКомпьютера = Неопределено Тогда
        ПеременныеОкружения = ПолучитьПеременныеОкружения();
        мИмяКомпьютера         = ВРег(ПеременныеОкружения.Получить("ИмяКопьютера"));
    КонецЕсли;

    Возврат мИмяКомпьютера;

КонецФункции // ПолучитьИмяКомпьютераТО()


Функция ПолучитьПеременныеОкружения() Экспорт

    ПеременныеОкружения = Новый Соответствие;
  
    WshShell = Новый COMОбъект("WScript.Shell");
  
    ИмяЛокальногоКомпьютера = WshShell.ExpandEnvironmentStrings("%ComputerName%");
    ИмяУдаленногоКомпьютера = WshShell.ExpandEnvironmentStrings("%ClientName%");
  
    Если ИмяУдаленногоКомпьютера = "%ClientName%" Тогда
        //1С запущена на локальном компьютере
        ИмяУдаленногоКомпьютера = "";
        ИмяКопьютера            = ИмяЛокальногоКомпьютера;
    Иначе
        //1С запущена на удаленном компьютере (RDP)
        ИмяКопьютера            = ИмяУдаленногоКомпьютера;
    КонецЕсли;
  
    ПеременныеОкружения.Вставить("ИмяЛокальногоКомпьютера",     ИмяЛокальногоКомпьютера);
    ПеременныеОкружения.Вставить("ИмяУдаленногоКомпьютера",     ИмяУдаленногоКомпьютера);
    ПеременныеОкружения.Вставить("ИмяКопьютера",                 ИмяКопьютера);
    ПеременныеОкружения.Вставить("ИмяПользователя",             WshShell.ExpandEnvironmentStrings("%UserName%"));
    ПеременныеОкружения.Вставить("ИмяСессии",                     WshShell.ExpandEnvironmentStrings("%SESSIONNAME%"));
    ПеременныеОкружения.Вставить("CMD",                         WshShell.ExpandEnvironmentStrings("%COMSPEC%"));
    ПеременныеОкружения.Вставить("ДоменПользователя",            WshShell.ExpandEnvironmentStrings("%USERDOMAIN%"));
  
    Возврат ПеременныеОкружения;
  
КонецФункции 
Показать
goatmen; user1212; +2 Ответить
9. andreyrosp 11 28.11.18 09:57 Сейчас в теме
Спасибо! Изменение процедуры очень сильно помогло.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот