Имя: Пароль:
1C
1С v8
Подключение сканера mertech CL-2310 P2D
0 кассир
 
20.11.25
16:27
Задача:
Подключить сканер беспроводной Mertech cl-2310 p2d к самописной конфигурации. Не типовая.

Мои действия:
1)Установил драйвер 8_0_15_1 для 1с взял из:
https://help.mertech.ru/barcode_scanners/SUPERLEAD/connect_1C_UT10.html
var obj;

Function Disconnect()
    obj.DeviceEnabled = 0;
    obj.Release();
    obj.Close();
endFunction

Function Connect()
    if obj.Open("Сканер штрихкода") <> 0 then
        return 0;    
    endif;
    obj.DataBits = 8;
    obj.Port = 5;
    obj.Speed = 115200;
    obj.StopBits = 0;
    obj.StopChar = 13;
    obj.EventName = "GetBareCode";
    if obj.Claim(1) <> 0 then
        Disconnect();
        return 0;    
    endif;    
    obj.DeviceEnabled = 1;
    obj.DataEventEnabled = 1;
    obj.DecodeData = 1;
    obj.ClearInput();
    obj.ClearOutput();
    if obj.DeviceEnabled <> 1 then
        Disconnect();
        return 0;
    endif;
    return 1;    
endFunction

Procedure Open_Form()
    try
        ПрогИД = "AddIn.Scanner";
        ПодключитьВнешнююКомпоненту(ПрогИД);
        obj = Новый (ПрогИД);
    except
        message("ошибка при загрузке компоненты");
    endtry;
    if Connect() = 0 then
        message("сбой подключения сканера");
    endif;
endProcedure

Procedure Close_Form()
    Disconnect();
endProcedure

Procedure GetBareCode(Источник, Событие, Данные)
    message("штрихкод = "+Данные)
endProcedure
2)Написал код 1с 8

Установил в свойствах формы
ВнешнееСобытие "GetBareCode"
ПриОткрытии Open_Form
приЗакрытии Close_Form

Результат:
Сканер в спец утилите mertech работает а в 1с не сканирует.

Почему может не срабатывать ВнешнееСобытие?
1 кассир
 
20.11.25
16:29
Сканер работает в режиме COM
2 lEvGl
 
гуру
20.11.25
16:46
древнедельфийский стиль, круто
со свободным атолом относительно много мороки
возьмите из бпо драйвер, он универсальный - на все разрядности и даже нативный
подключается в несколько строк кода и таскать по клиентам его не надо

вроде такого
Если Не ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера", "InputDevice", ТипВнешнейКомпоненты.Native) Тогда
        УстановитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера");
        ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера", "InputDevice", ТипВнешнейКомпоненты.Native);
    Конецесли;
    
    глСканер = Новый("AddIn.InputDevice.InputDevice");
    глСканер.УстановитьПараметр("Port", 0);
    глСканер.УстановитьПараметр("Suffix", 13);
    глСканер.УстановитьПараметр("Timeout", 60);
    глСканер.Подключить("СканерШтрихкода");

Для кома немного подругому, если решите такой вариант использовать - кину готовое

А ваш вариант может не работать, если конечно компонента подключилась, из за суффиксов/префиксов и как то не увидел назначения типа порта СОМ, по умолчанию девайс у атола, ЕМНИП, юсб. Впрочем, в мануале по "АПИ" к атолу все написано, можно и два девайса добавить с разным типом подключения
3 кассир
 
20.11.25
16:47
obj.Port = 5;  это значение сом порта.
Попробую суфиксы и префиксы поставить STX и ETX
4 lEvGl
 
гуру
20.11.25
16:49
(3) это номер порта, у объекта еще есть тип порта Keyboard и COM, если я не путаю драйвера, но кажется я говорю про "архитектуру" атолов, 8хххх - последняя бесплатная
5 lEvGl
 
гуру
20.11.25
16:59
все таки перепутал, ссылку не посмотрел, это сканопос вобще, самый древний, заюзайте тогда для кома лушче от Romixa vk_rs232
https://x-romix.narod.ru/
там же и инструкция

но лучше озадачиться с вариантом БПО, если планируется не одним только сканером пользоваться в этой базе (а может и не только в этой). Сканопос в юсб не умел.
6 кассир
 
20.11.25
17:03
Благодарю за идею проверить суфикс и префикс. Отсканировал штрих код Добавить суфикс CR+LF  и все заработало!!!
7 lEvGl
 
гуру
20.11.25
17:08
ну и зря