Друзья, вот такая проблемка. Установил Linux Ubuntu 14.04, поставил 1с 8.3.5.1486 Розница 2.1. Долго мучался со сканером, ничего не выходило, оказалось сканер не работает в режиме клавиатуры, а в linux по другому никак, взял другой сканер Honeywell Voyager 1250g, установил, в режиме клавиатуры заработал, но вылезла такая проблема, например когда создаешь чек ККМ, либо не нажимает F7 автоматически и каждый раз чтобы вбить товар по штрихкоду, нужно нажимать самому F7, либо, если поставить префикс F7, то при считывании штрихкода, сам открывает форму и вбивает туда штрихкод, иногда без первой цифры, и не сработывает суффикс Enter'а. А если самому нажать F7 то суффикс сробатывает. Т.е. В любом случае нужно будет нажимать какую-то клавишу. Хотелось-бы, что бы все было автоматически, как на Windows в режиме Com-порта. Воответственное несколько вопросов:
1. Как сделать, что бы при работе с префиксом F7 он не съедал первый символ;
2. Как сделать что бы срабатывал суффикс?
P.S. по второму вопросу, пробовал добавлять двойной суффикс Enter'а, результат прежний, не хочет сработывать и все.
1. Как сделать, что бы при работе с префиксом F7 он не съедал первый символ;
2. Как сделать что бы срабатывал суффикс?
P.S. по второму вопросу, пробовал добавлять двойной суффикс Enter'а, результат прежний, не хочет сработывать и все.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Joker2705, увеличить таймаут с 45мс или 75мс хотя бы до 100. Тоже было проблема со съеданием первых символов в обычной 1С под обычным Windows 7, со сканером в клавиатурном режиме. В тесте все ОК, а в форме документа первые символы проглатывались. Сторожилы давно бы уже поставили атоловский драйвер, но я упорный и увеличение таймаута решило проблему)
Скачать с сайта honeywellaidc.com полный мануал сканера, а не Quick Setup и экспериментировать с задержками при передаче/обработке штрих-кода.
Ключевые слова для поиска:
Read Time-out (milliseconds) Range: 0-300000 Default: 0
Output Delay
Delay Length ( x 5ms) Range: 0-65535 Default: 0
Intercharacter Delay ( x 5ms) Range: 0-65535 Default: 0
Character to Trigger Delay (Hex 00-FF) Range: 00-FF Default: 00
Interfunction Delay ( x 5ms) Range: 0-65535 Default: 0
Intermessage Delay ( x 5ms) Range: 0-65535 Default: 0
Addenda Timeout Range: 0-65535 Default: 100
Concatenation Timeout Range: 0-65535 Default: 750
Decoding Delay
Ключевые слова для поиска:
Read Time-out (milliseconds) Range: 0-300000 Default: 0
Output Delay
Delay Length ( x 5ms) Range: 0-65535 Default: 0
Intercharacter Delay ( x 5ms) Range: 0-65535 Default: 0
Character to Trigger Delay (Hex 00-FF) Range: 00-FF Default: 00
Interfunction Delay ( x 5ms) Range: 0-65535 Default: 0
Intermessage Delay ( x 5ms) Range: 0-65535 Default: 0
Addenda Timeout Range: 0-65535 Default: 100
Concatenation Timeout Range: 0-65535 Default: 750
Decoding Delay
Чтобы Энтер в конце нажался?
Еще с разными суффиксами поэкспериментировать, cr/cr+cr/cr+lf/lf.
Возможно, что поможет, но фиг его знает.
Еще можно попробовать программиста 1С нанять, чтобы он это нажатие энтера программно дописал, Розница установлена не базовая случайно?
Варианты с покупкой допиленного Вайна, или установкой Дэнси кассы, вместо Розницы, если уж так нужен Линукс, естественно не подойдут?
Еще с разными суффиксами поэкспериментировать, cr/cr+cr/cr+lf/lf.
Возможно, что поможет, но фиг его знает.
Еще можно попробовать программиста 1С нанять, чтобы он это нажатие энтера программно дописал, Розница установлена не базовая случайно?
Варианты с покупкой допиленного Вайна, или установкой Дэнси кассы, вместо Розницы, если уж так нужен Линукс, естественно не подойдут?
(7) Bryuhanov, все дело в том, что если срабатывает преффикс, то никакой суффикс не сработывает. Т.е., в моем случае, если не нажимать F7, то при считывании кода, открывается окно ввода ШК, вводится номер и ждет действий от пользователя, а если самому открыть окно ввода ШК, то, соотвественно, префикс не нужен, и тогда суффикс срабатывает.
(10) Че-то не то, давайте по порядку: когда сканер в режиме эмуляции клавиатуры, программа по идее и не знает что это сканер, а получает от него нажатия клавиш как от клавиатуры, мы хотим чтобы 1С отреагировала так как будто мы нажали <F7><цифры кода><Enter> - проверяем на всякий случай что это работает как надо от клавиатуры, затем, если при считывании ШК сканером получается не так как надо, то как я понимаю это может быть по одной из двух причин (или по обеим):
1) сканер шлет не те клавиши: проверить, у Enter'а код 13 (0Dh) независимо от ОС;
2) сканер отправляет нажатия клавиш слишком быстро и 1С не успевает отреагировать: межсимвольную задержку можно выставить хоть в несколько секунд и спокойно посмотреть что не так срабатывает, попивая кофе, а потом подобрать оптимальную задержку.
1) сканер шлет не те клавиши: проверить, у Enter'а код 13 (0Dh) независимо от ОС;
2) сканер отправляет нажатия клавиш слишком быстро и 1С не успевает отреагировать: межсимвольную задержку можно выставить хоть в несколько секунд и спокойно посмотреть что не так срабатывает, попивая кофе, а потом подобрать оптимальную задержку.
1) (Чисто поржать) Если сканер в обычном режиме (COM-порт, Эмуляция COM-порта) как вы выразились "Не работает", а работает только в режиме "Эмуляции клавиатуры" - То простите, а как вы фискальный регистратор подключили? Уж у ФР то точно нет "Эмуляции клавиатуры".
2)"Эмуляция клавиатуры" - это ТОЛЬКО режим сканера! (Он тупо передает в АКТИВНОЕ поле отсканированные данные) Нет активного поля - нет данных. Поэтому вы и нажимаете F7 для открытия поля ввода ШК. А вот драйвер для сканеров с эмуляцией клавиатуры перехватывает сообщение сканера (независимо от того какое поле активно) и передает в нужное русло согласно алгоритму.
Простым языком драйвер в вашей ситуации НЕ РАБОТАЕТ. Вы можете удалить настройку торг оборудования. Открыть РМК, нажать F7 и шелкнуть сканером по ШК. Получите тот же самый результат о котором вы писали выше.
И самое главное!!! Раз уж записались в ряды линуксоидов, то учите мат.часть! Перевод строки в Винде и в Линуксе - Это РАЗНЫЕ КОДЫ!
Совет: Если уж и запускать сканер из 1М в Линуксе, то использовать нужно нативный драйвер. Но не факт что будет корректно работать.
Т.к. даже в нативный драйверах используют параметры виндовых коммуникаций. (например сом-порты в линуксе это /dev/ttySX, а в винде COMX где Х-чисовой идентификатор порта)
2)"Эмуляция клавиатуры" - это ТОЛЬКО режим сканера! (Он тупо передает в АКТИВНОЕ поле отсканированные данные) Нет активного поля - нет данных. Поэтому вы и нажимаете F7 для открытия поля ввода ШК. А вот драйвер для сканеров с эмуляцией клавиатуры перехватывает сообщение сканера (независимо от того какое поле активно) и передает в нужное русло согласно алгоритму.
Простым языком драйвер в вашей ситуации НЕ РАБОТАЕТ. Вы можете удалить настройку торг оборудования. Открыть РМК, нажать F7 и шелкнуть сканером по ШК. Получите тот же самый результат о котором вы писали выше.
И самое главное!!! Раз уж записались в ряды линуксоидов, то учите мат.часть! Перевод строки в Винде и в Линуксе - Это РАЗНЫЕ КОДЫ!
Совет: Если уж и запускать сканер из 1М в Линуксе, то использовать нужно нативный драйвер. Но не факт что будет корректно работать.
Т.к. даже в нативный драйверах используют параметры виндовых коммуникаций. (например сом-порты в линуксе это /dev/ttySX, а в винде COMX где Х-чисовой идентификатор порта)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот