Подключение нескольких сканеров штрих-кода по rdp (win server 2003, 2008 х64 ) 1Сv8: Управление торговлей 10.3

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

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

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

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

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

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

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

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

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

17 Comments

  1. padlik07

    не плохо. =) в чем плюс что не надо изобретать велосипед =)

    Reply
  2. dagroma

    А мы это делаем добавлением ресурса Пользователь в регистр сведений ТорговоеОборудование.

    Reply
  3. Al-X

    Я так подключал не сканеры, а терминалы сбора данных к УПП. Тока я схитрил, указал у всех, что работа идет тока с ком1. 7 терминалов на 7 компах работают отлично, и конфликтов нет. Надо установить терминал на другой комп, назначаю ком 1, и уже все сразу само работает.

    Reply
  4. pss1985

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

    «Сканер штрихкода (общий): Ошибка при подключении устройства.

    Необходимо убедиться, что устройство правильно настроено и соответствующий порт не занят другим приложением.

    Сканер штрихкода (общий): Ошибка при подключении устройства.

    Необходимо убедиться, что устройство правильно настроено и соответствующий порт не занят другим приложением.

    Сканер штрихкода (общий): Ошибка при подключении устройства……………»

    Reply
  5. webester

    По моему в корне неверное решение плевать на ошибки подключения и каждый раз перебирать ВСЕ подключенное оборудование включая фискальный регистратор, сканеры и еще много чего. Почему вы просто не используете другой идентификатор вместо имени компьютера? Вот процедура из модуля обработки ТОСервер которая возвращает строку, по которой конфигурация из регистра восстанавливает подключенное торговое оборудование:

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

    Если мИмяКомпьютера = Неопределено Тогда

    // мИмяКомпьютера = ВРег(ИмяКомпьютера());

    мИмяКомпьютера = ВРег(ИмяПользователя());

    КонецЕсли;

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

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

    Как видите здесь стоит имя пользователя, так как у нас каждый пользователь это вполне определенный компьютер разумеется со своим сканером. Но сюда можно засунуть вообще все что угодно, начиная от имени компьютера клиента, который подключился к терминальному серверу, заканчивая содержимым буфера обмена или там диска C клиента или не знаю еще чего.

    Reply
  6. webester

    (3)Они по очереди будут работать, вместе нет, сканеры так работать точно не будут.

    Reply
  7. webester

    (2)Какой в этом смысл когда можно (5)?

    Reply
  8. dagroma

    (7) Перенастраивать проще.

    Reply
  9. webester

    (8)Не понял, что проще перенастраивать добавив ресурс в регистр?

    Reply
  10. dagroma

    (9) Пользователи 1С часто меняются и при вводе нового пользователя пришлось бы настраивать новое рабочее место. А так можно изменить пользователя и все. Конечно, и в вашем случае его можно руками вписать, но клиент захотел таким образом решить.

    Reply
  11. webester

    (11)Я и говорю, что не понимаю, какая разница что изменить, новое, добавленное вами поле регистра, или строку с именем пользователя, у существующего измерения.

    Reply
  12. serega_sun

    (2) dagroma,

    Я тоже решал таким методом. Мне кажется так правильнее. Меньше похоже на костыли.

    Reply
  13. 1cmax

    (9) webester, Аналогично делал

    Reply
  14. Sergoninfostarru

    А не каждый ли раз при подключении к терминальному серверу надо будет настраивать порты ?

    Не слишком это будет сложно для обычных пользователей? Жестко порт к терминальному серверу не прикрутишь !!!

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

    Reply
  15. Spacer

    «Для начала все сканеры должны висеть на разных com портах»

    Далеко не самый лучший вариант. С com-портами постоянный геморр будет обеспечен.

    Гораздо проще подключать USB-сканеры по типу «в разрыв клавиатуры» и использовать АТОЛ-овские дрова.

    Просто, надежно и никаких проблем.

    Reply
  16. webester

    (14)(15)Работаем несколько лет уже так, 4 магазина, от 5 до 15 компов в каждом, проблем не замечено.

    Reply
  17. tp_home@mail.ru

    Автору спасибо. Нагуглил только эту ветку с решениями. Спасибо за то, что хоть какой то якорь запузырили в сеть!

    Остальным спасибо за варианты в каментах.

    Reply

Leave a Comment

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