Modber Сообщество
профессионалов по 1С

Подключение нескольких сканеров штрих-кода по rdp (win server 2003, 2008 х64 )



Платформы: 1С:Предприятие 8.2, 1С:Предприятие 8.1
Конфигурации: 1С:Управление торговлей
Версия: 10.3
2014-04-21
2057 
davlen
0  
Была задача: удаленные филиалы подключить по rdp к одному серваку под управление win 2008 и сканеры штрихкодов тоже, но они никак не хотели работать. То есть если работал один, остальные не работали.

Напишу сразу это решение проблемы для конкретного релиза УТ 10.3.3.3, на остальных  не проверял может уже исправили в последующих.Просто конфигурация сильно переписанная и не обновляемая у нас.

Для начала все сканеры должны висеть на разных com портах. Поменять номер порта можно в диспетчере устройств, в разделе Порты (COM и LPT) необходимо выбрать нужный порт и вызвать его свойства, там перейти во вкладку "Параметры порта" и по кнопке "Дополнительно" вызвать дополнительные параметры, где можно сменить номер порта. И при подключении к удаленному рабочему столу необходимо убедится что галочка перекидывать порты установлена. На сервере проверить перекинулся ли порт можно командой "change port".

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

Проблема была в том что работал только один сканер остальные не работали.

Решение проблемы: После продолжительных танцов с бубнами, пошел юзать отладчик, и обнаружил интересный код, который находится в обработке "ТОСервер". В нем есть функция "ПодключитьОборудование()", которая пытается подключить в цикле  сканеры забитые в базе и привязанные к данному компу.Так вот кусок кода в цикле:


Результат = Обработка.Подключить(Объект);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат;
КонецЕсли;



Прикол в том что, при попытке подключить первое оборудование в цикле, если она неудачная, то функция возвращала ошибку подключения, даже не пытаясь подключить остальные сканеры из списка.


Вот как я подправил данный фрагмент кода:

//Если ЗначениеЗаполнено(Результат) Тогда
// Возврат Результат;
//КонецЕсли;
Если Результат = Перечисления.ТООшибкиОбщие.ОшибкаПриПодключении Тогда
Продолжить;
КонецЕсли;



После чего все прекрасно заработало, и  все были счастливы, особенно я после стольких танцов. Просто даже в голову изначально не приходило, что все из за кода конфигурации. Буду очень рад если кому то данная статья поможет.



В центре внимания

Комментарии (0)