Как подключить электронные весы в 1С 8.3, если их нет в списке подключаемого оборудования

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

Часто пользователи и администраторы 1С сталкиваются с ситуацией: необходимо подключить электронные весы для автоматизации взвешивания товара, но при переходе в раздел Администрирование — Подключаемое оборудование в выпадающем списке типов оборудования пункт «Электронные весы» попросту отсутствует. Особенно часто это происходит в конфигурации «1С:Бухгалтерия предприятия 3.0».

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

Почему в списке оборудования нет весов?

Прежде всего, выясним причину проблемы. Функционал работы с торговым оборудованием в современных конфигурациях 1С реализуется через БПО (Библиотеку подключаемого оборудования). Однако состав этой библиотеки в разных прикладных решениях различается:

  1. Торговые конфигурации (Управление торговлей 11, Розница 2/3, ERP, Комплексная автоматизация) содержат полный контур БПО, включая поддержку весов (online и offline), дисплеев покупателя, терминалов сбора данных и т.д.
  2. Бухгалтерские конфигурации (Бухгалтерия предприятия) ориентированы на учет, а не на операционную работу склада. Разработчики намеренно исключают из них «лишние» типы оборудования, чтобы не перегружать интерфейс и код.

Таким образом, отсутствие пункта «Электронные весы» — это не ошибка программы, а ограничение конкретной конфигурации. Тем не менее, техническая база платформы 1С 8.3 позволяет обойти это ограничение несколькими способами.

Способ 1: Эмуляция ввода с клавиатуры (Keyboard Wedge)

Рассмотрим самый простой и надежный метод, который работает абсолютно в любой конфигурации 1С. Суть метода заключается в использовании специальной утилиты от производителя весов (например, от компаний «Масса-К», «CAS» или «АТОЛ»).

Алгоритм работы:

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

Способ 2: Использование внешних обработок заполнения

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

Мы можем создать обработку, которая будет подключаться к драйверу весов через COM-объект или Native API напрямую. Разберем пример логики кода для получения веса через драйвер АТОЛ:


&НаКлиенте
Процедура ПолучитьВесИзВесов()
    // Создаем объект драйвера
    Попытка
        Драйвер = Новый COMОбъект("AddIn.ShtrihMScale_1_12"); // Пример для весов Штрих-М
    Исключение
        Сообщить("Драйвер не установлен на данном ПК");
        Возврат;
    КонецПопытки;

    // Настраиваем параметры связи
    Драйвер.Password = 30;
    Драйвер.ComNumber = 1; // Номер порта
    Драйвер.BaudRate = 4;  // Скорость 4800
    
    // Пытаемся получить данные
    Если Драйвер.Connect() = 0 Тогда
        Если Драйвер.GetRangeData() = 0 Тогда
            ТекущийВес = Драйвер.Weight;
            Объект.Количество = ТекущийВес;
        КонецЕсли;
        Драйвер.Disconnect();
    КонецЕсли;
КонецПроцедуры

Такую обработку можно зарегистрировать в справочнике «Дополнительные отчеты и обработки», и она добавит кнопку в документы (например, в «Реализацию товаров и услуг»), позволяя считывать данные без изменения типового кода.

Способ 3: Подключение через расширение конфигурации

Если нам необходимо, чтобы весы появились именно в стандартном списке подключаемого оборудования, придется прибегнуть к использованию расширений. Это наиболее технологичный путь, так как он позволяет «достроить» БПО до нужного уровня.

Разберем шаги по реализации этого метода:

  1. Создаем новое расширение и отключаем в нем безопасный режим (это критически важно для работы с внешними компонентами драйверов).
  2. Добавляем в расширение перечисление ТипыПодключаемогоОборудования.
  3. Добавляем новое значение ЭлектронныеВесы (имя должно точно совпадать с тем, которое ожидается в модулях БПО).
  4. Заимствуем общие модули, отвечающие за инициализацию списка оборудования (например, МенеджерОборудованияВызовСервера), и переопределяем логику заполнения доступных типов.

После этого в интерфейсе выбора типа оборудования появится заветный пункт. Далее вам потребуется загрузить zip-архив с драйвером в справочник ДрайверыОборудования. Важно использовать драйверы, сертифицированные «1С», так как они имеют стандартный программный интерфейс.

Способ 4: Интеграция через универсальные драйверы («Драйвер-М» и др.)

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

Это избавляет от необходимости прописывать низкоуровневые команды протокола обмена весов (например, ACK/NAK или разбор байтовых строк).

Важные нюансы при работе с драйверами

Выясним причины возможных неудач при подключении:

Итоги

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

← На главную