Сканеры штрих-кодов, ридеры и прочее под терминалом

Управление com-портами клиентских машин из под терминала.
Возникла ситуация: 5 юзеров работают в 1С 7.7 под терминалом, на каждом рабочем месте присутствует ридер магнитных карт, подключенный через com-порт.
Праздный вопрос: как работать ридерами из 1С, которая стоит на сервере?

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

НомерПорта 

= 0

;
Network 

= СоздатьОбъект(«WScript.Network»)

;
WshShell

=СоздатьОбъект(«WScript.Shell»)

;

Если

СокрЛП

(

Network

.

UserName

) = «kassa1» Тогда//определили имя терминального пользователя

НомерПорта 

= 1

;
WshShell

.

Run

(«cmd /c «+«net use /delete com1»,0)

;

//удалили com1, оставшийся от пред.сеанса

WshShell

.

Run

(«cmd /c «+«net use com1 \tsclientcom1»,0)

;

//добавили com1, для тек.пользователя ИначеЕсли

СокрЛП

(

Network

.

UserName

) = «kassa2» Тогда

НомерПорта 

= 2

;
WshShell

.

Run

(«cmd /c «+«net use /delete com2»,0)

;
WshShell

.

Run

(«cmd /c «+«net use com2 \tsclientcom1»,0)

;

КонецЕсли

;

Если

НомерПорта 

<> 0 Тогда //тут полет программерской мысли… Иначе //а вот здесь непредвиденная ситуация… КонецЕсли

;

Это все прекрасно работает 2000 и 2003 серверах, для Citrix необходимо вместо «tsclient» использовать «client».
Таким способом подключал сканера штрих-кодов, ридеры, терминалы сбора данных, весы.

8 Comments

  1. ssp_

    А если юзверей не 5, а 50, как будет выглядеть код при старте?

    Reply
  2. defini

    Если пользователей будет 50 человек, семерка сама по себе загнется…

    И вообще-то, я предложил идею, концепт, опять-таки без ВК и приложений, а дальше уж кто во что гаразд…

    Reply
  3. d.snissarenko

    В целом нормально, не обязательно даже имя юзера, пусть у всех мапит, а то при смене имени пользователя (а такое может ) случится, уйдет некоторое время на решение проблемы, пока вспониш что у тебя в глобальнике прописано, а если это будеш не ты, то уйдет еще больше

    Reply
  4. defini

    Ну я обычно для таких случаев в справочнике пользователей добавляю реквизит «СтрокаИнициализации», где и прописаны необходимые параметры запуска, по типу «Подключение торгового оборудования».

    Reply
  5. ssp_

    Я не понимаю, зачем каждому юзеру мапить устройство на свой порт? У меня все на один мапятся, все работают, никто никому не мешает. Или может так только Цитрикс умеет?

    Привязывать аппаратные настройки к имени юзера — не очень правильно. Потому что они меняются очень часто. Лично я все скрипты для мапинга портов кладу на клиентскую машину, чтобы конфигурация железа была там же, где само железо. А при старте одинэски они запускаются через \clientc$…

    Reply
  6. defini

    Сам ответил на свой вопрос, без глюков так умеет только Citrix 🙁

    Reply
  7. Al-X

    Кроме Citrixа так умеет делать Windows 2003 (сервер терминалов) + Windows XP (клиенты).

    Без всяких гемороев и изменения в конфе ! Просто включил перенаправление портов и ОК .

    в данный момент на некоторых компах работает сразу по 2 штриха ФР К + сканер штрих кода + ридер магнитных карт.

    Полет нормальный, проблем не наблюдаю.

    Reply
  8. misha226

    У меня сканер работает через Scanopos.dll, ручной через COM. Долго лагал, пропускал некоторые штрихи, т.е. брал не с первого раза. Обновил длл до 8.0.4.1(от 1С) и убрал буфера в порту на клиенте. Все Ок!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *