Как подключить сканер-весы Datalogic Magellan 8400 к 1С:Розница и решить типовые проблемы?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

Подключение торгового оборудования, такого как сканер-весы Datalogic Magellan 8400, к учетным системам 1С:Розница часто сопряжено с различными техническими сложностями. Эти сложности могут возникать на разных этапах: от физического подключения и настройки COM-порта до корректной обработки данных в самой программе 1С. В этой статье мы подробно рассмотрим процесс подключения, проанализируем основные проблемы, с которыми сталкиваются пользователи, и предложим комплексные решения на основе опыта коллег и официальной документации.

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

Настройка и устранение проблемы с искаженными данными при сканировании

Первоначальная проблема, с которой часто сталкиваются пользователи, это получение искаженных данных при попытке сканирования (иногда это требует передачи символа GS), например, такой строки: COM1: У°8Ві№288°°°1°°°4°42°У1і1°12°. Это явный признак некорректной настройки параметров COM-порта.

Пошаговое решение проблемы с искаженными данными:

  1. Проверка и настройка битов в байте. Одной из наиболее распространенных причин получения искаженных данных является неверно установленное количество битов в байте для COM-порта. В нашем случае, проблема была успешно решена изменением этого параметра с 8 на 7.

    Для изменения этого параметра необходимо:

    1. Зайти в Диспетчер устройств Windows.
    2. Найти ветку "Порты (COM и LPT)".
    3. Выбрать нужный COM-порт (например, COM1), к которому подключен сканер.
    4. Откройте его свойства и перейдите на вкладку "Параметры порта".
    5. В выпадающем списке "Биты данных" установите значение 7.
    6. Сохраните изменения.
  2. Подбор скорости порта. Если изменение битов в байте не помогло, следующим шагом мы рекомендуем попробовать подобрать оптимальную скорость порта (бодрейт). Хотя в исходной теме этот шаг не привел к решению, это базовая рекомендация при работе с COM-портами.

    В "Параметрах порта" Диспетчера устройств попробуйте установить разные значения скорости, например, 9600, 19200, 38400. После каждого изменения проверяйте работоспособность сканера. Для весов Datalogic Magellan 8400 часто используется скорость 9600.

  3. Проверка физического подключения и распиновки кабеля. Искаженные данные также могут быть результатом неправильного подключения кабеля или некорректной распиновки на коннекторе. Мы настоятельно рекомендуем убедиться, что кабель надежно подключен как к сканеру/весам, так и к компьютеру, и что нет повреждений. Если вы используете собранный кабель, проверьте правильность его распиновки, сверившись с документацией на Datalogic Magellan 8400.

  4. Настройка самого сканера. Убедитесь, что сам сканер настроен на работу с выбранным интерфейсом (например, RS-232). Для этого обычно используются специальные настроечные штрихкоды из руководства пользователя. В частности, вам может потребоваться настроить тип интерфейса RS-232 на сканере/весах, например, на RS-232 Single Cable, если используется один кабель для сканера и весов.

Устранение проблемы с префиксом "S" перед штрихкодом

После успешной настройки COM-порта, следующая распространенная проблема – это появление нежелательного символа (например, "S") перед каждым отсканированным штрихкодом. Это может быть связано с настройками префиксов и идентификатора этикетки (Label ID) в сканере, который по умолчанию может передавать служебную информацию о типе считанного штрихкода.

Вариант 1: Отключение идентификатора этикетки в сканере

Наиболее правильным решением является отключение этой функции непосредственно в настройках сканера. Для этого воспользуемся руководством пользователя Datalogic Magellan 8400:

  1. Найдите в инструкции штрихкод для отключения функции "LABEL ID TRANSMISSION: DISABLE". Эта функция отвечает за передачу идентификатора этикетки.

  2. Войдите в режим программирования сканера. Обычно для этого необходимо отсканировать специальный штрихкод "Enter Setup" или аналогичный.

  3. Отсканируйте штрихкод "LABEL ID TRANSMISSION: DISABLE".

  4. Выйдите из режима программирования. Для этого также потребуется отсканировать штрихкод "Exit Setup" или "End Configuration".

  5. Также попробуйте отсканировать штрихкод AIM ID: Disable, если такой есть в мануале.

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

Вариант 2: Сброс сканера к заводским настройкам

Если точечная настройка не дает результата, вы можете сбросить сканер к заводским настройкам. В инструкции к Datalogic Magellan 8400 вы найдете специальный штрихкод для Factory Reset или Default Settings. После сброса вам, возможно, придется повторно настроить параметры COM-порта (например, тип интерфейса RS-232) с помощью других штрихкодов из мануала.

Вариант 3: Корректировка данных в 1С:Розница (обработка внешнего события)

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

Мы будем перехватывать событие сканирования и удалять первый символ из полученного штрихкода. Это решение является рабочим, но не идеальным, так как оно перекладывает задачу очистки данных со сканера на программу.

Рассмотрим по шагам, как реализовать этот подход:

  1. Создание расширения конфигурации. Откройте конфигуратор 1С:Предприятия. Создайте новое расширение, если его еще нет, или используйте существующее. Добавьте в расширение объект, который будет переопределять обработку внешнего события, например, общую форму или подсистему, если это уместно.

  2. Доработка общего модуля или формы. В 1С:Розница обработка внешнего события от сканера штрихкода обычно происходит в общем модуле РаботаСоСканерамиШтрихкода или в обработчиках форм, где подключено торговое оборудование. Мы должны найти то место, где вызывается событие ОбработкаВнешнегоСобытия.

    Вам потребуется найти процедуру обработки внешнего события в конфигурации. Часто она выглядит примерно так:

    
    Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Экспорт
        // ...
        Если Источник = "BarCodeScanner" Тогда
            // ... текущая логика обработки
        КонецЕсли;
        // ...
    КонецПроцедуры
    
  3. Переопределение или подписка на событие. Мы можем переопределить существующую процедуру ОбработкаВнешнегоСобытия в нашем расширении, либо создать подписку на событие, если это позволяет архитектура конфигурации. Для простоты и универсальности часто используется переопределение.

    В расширении мы добавим процедуру, которая будет вызываться вместо оригинальной или до нее. Примерный код для перехвата и корректировки данных может выглядеть так:

    
    // В модуле, который будет обрабатывать внешние события в расширении
    // Например, в модуле объекта 'РасширениеКлиентскийМодуль' или 'РасширениеМенеджерОборудования'
    
    &Вместо("ОбработкаВнешнегоСобытия")
    Процедура Расширение_ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
        Если Источник = "BarCodeScanner" И ТипЗнч(Данные) = Тип("Строка") Тогда
            Если Лев(Данные, 1) = "S" Тогда // Проверяем, начинается ли строка с "S"
                ДанныеБезПрефикса = Сред(Данные, 2); // Удаляем первый символ
                // Вызываем оригинальную процедуру, но с модифицированными данными
                ПродолжитьВызов("ОбработкаВнешнегоСобытия", Источник, Событие, ДанныеБезПрефикса);
                Возврат; // Завершаем выполнение, чтобы не вызывать оригинальную процедуру дважды
            КонецЕсли;
        КонецЕсли;
                
        // Если префикса "S" нет или это другое событие, вызываем оригинальную процедуру
        ПродолжитьВызов("ОбработкаВнешнегоСобытия", Источник, Событие, Данные);
    КонецПроцедуры
    

    Пояснение к коду:

    • &Вместо("ОбработкаВнешнегоСобытия"): Эта директива указывает 1С, что наша процедура будет вызываться вместо оригинальной процедуры с таким же именем в основной конфигурации.
    • Мы проверяем Источник = "BarCodeScanner", чтобы быть уверенными, что обрабатываем данные именно от сканера штрихкодов.
    • ТипЗнч(Данные) = Тип("Строка"): Убеждаемся, что данные являются строкой, прежде чем работать с ней.
    • Если Лев(Данные, 1) = "S" Тогда: Проверяем, начинается ли строка штрихкода с символа "S".
    • ДанныеБезПрефикса = Сред(Данные, 2);: Если "S" найден, мы используем функцию Сред() для получения подстроки, начиная со второго символа, эффективно удаляя префикс.
    • ПродолжитьВызов("ОбработкаВнешнегоСобытия", Источник, Событие, ДанныеБезПрефикса);: Эта функция позволяет нам вызвать оригинальную процедуру ОбработкаВнешнегоСобытия из базовой конфигурации, но уже с очищенными данными (ДанныеБезПрефикса).
    • Возврат;: После обработки и вызова оригинальной процедуры с измененными данными, мы завершаем выполнение нашей процедуры, чтобы избежать повторного вызова оригинального обработчика.

    Такой подход позволяет нам гибко реагировать на специфические особенности оборудования, не изменяя при этом основную конфигурацию и сохраняя ее на поддержке.

Подключение и настройка весов Datalogic Magellan 8400

Datalogic Magellan 8400 является комплексным устройством, объединяющим функции сканера и весов. Для полноценной работы с весами в новом РМК требуется отдельная настройка и использование OPOS-драйверов.

  1. Установка OPOS-драйверов. Datalogic предоставляет специализированные OPOS-драйверы для своих устройств. Мы рекомендуем загрузить актуальные драйверы с официального сайта Datalogic или запросить их через службу поддержки. Установите их на компьютер, к которому подключаются сканер-весы.

  2. Физическое подключение весов. Часто Datalogic Magellan 8400 поддерживает схему "single cable" (один кабель), при которой данные сканера и весов передаются через один последовательный порт. В этом случае синий кабель (обычно RS-232) подключается в разъем POS TERMINAL на весах. Убедитесь, что устройство подключено к соответствующему COM-порту вашего компьютера.

  3. Настройка параметров COM-порта для весов. Для корректного обмена данными между весами и 1С важно правильно настроить параметры COM-порта. Эти параметры могут отличаться от параметров для сканера, поэтому рекомендуем свериться с инструкцией к весам. Типичные параметры включают:

    • Скорость: 9600 бод.
    • Биты данных: 7 или 8.
    • Стоповые биты: 1.
    • Контроль четности: Без контроля четности (None).
    • Контроль потока: Без контроля потока (None).

    Важно также правильно настроить тип интерфейса RS-232 на самих весах/сканере, например, на RS-232 Single Cable, как было упомянуто ранее.

  4. Настройка весов в 1С:Розница. После установки драйверов и физического подключения, перейдем к настройке в программе 1С:Розница:

    1. Откройте раздел Администрирование -> Подключаемое оборудование.
    2. Добавьте новое устройство типа "Весы с печатью этикеток" или "Электронные весы".
    3. Укажите модель устройства (Datalogic Magellan 8400) и выберите соответствующий драйвер (часто OPOS-драйверы интегрируются в 1С).
    4. Укажите номер COM-порта, к которому подключены весы, и задайте параметры порта (скорость, биты данных и т.д.) в соответствии с настройками весов.
    5. Выполните тест подключения и взвешивания для проверки корректности работы.

Общие рекомендации и полезные советы

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

  1. Используйте оригинальную документацию. Полное руководство пользователя к Datalogic Magellan 8400 является вашим главным источником информации. В нем содержатся все необходимые штрихкоды для программирования различных функций, включая настройку интерфейсов, сброс к заводским настройкам, управление префиксами и суффиксами.

  2. Тестирование через HyperTerminal или аналогичные программы. Для первичной проверки работоспособности сканера и весов, а также для просмотра данных, поступающих на COM-порт, мы рекомендуем использовать программы типа HyperTerminal (в старых версиях Windows) или любые современные терминальные эмуляторы (например, PuTTY). Это позволит увидеть "сырые" данные с устройства и убедиться в правильности настроек COM-порта еще до подключения к 1С.

  3. Актуальное программное обеспечение. Убедитесь, что прошивка сканера и драйверы устройства являются актуальными. Производители регулярно выпускают обновления, которые могут включать поддержку новых функций, исправления ошибок или улучшение совместимости с различными операционными системами и программными продуктами. Актуальные версии прошивок и драйверов обычно доступны на официальном сайте Datalogic.

  4. Программирование функциональных клавиш. Для упрощения работы с 1С без написания сложной обработки внешнего события, сканер можно запрограммировать так, чтобы он отправлял определенную функциональную клавишу (например, F7) перед штрихкодом. Это позволяет 1С автоматически открывать окно поиска товара по штрихкоду, если такая функция реализована в конфигурации.

  5. Альтернативные драйверы. Помимо "Драйвера устройств ввода АТОЛ", фирма 1С также разрабатывает собственные драйверы для сканеров штрихкода, подключаемых к COM-портам, которые могут быть совместимы с Magellan 8400. Мы рекомендуем проверить их наличие и совместимость в вашем дистрибутиве 1С:Розница.

Мы рассмотрели основные шаги и возможные решения для подключения сканер-весов Datalogic Magellan 8400 к 1С:Розница. Несмотря на то что некоторые проблемы требуют программной доработки в 1С, большинство из них могут быть устранены путем правильной настройки аппаратной части и использования актуальных драйверов. Надеемся, что этот подробный анализ поможет вам успешно интегрировать оборудование и оптимизировать работу вашей торговой точки.

← На главную