Часто пользователи и администраторы 1С сталкиваются с ситуацией: необходимо подключить электронные весы для автоматизации взвешивания товара, но при переходе в раздел Администрирование — Подключаемое оборудование в выпадающем списке типов оборудования пункт «Электронные весы» попросту отсутствует. Особенно часто это происходит в конфигурации «1С:Бухгалтерия предприятия 3.0».
В этой статье мы подробно разберем, почему так происходит, и проанализируем все доступные способы решения этой задачи — от самых простых, не требующих программирования, до сложных интеграций через расширения и внешние компоненты.
Прежде всего, выясним причину проблемы. Функционал работы с торговым оборудованием в современных конфигурациях 1С реализуется через БПО (Библиотеку подключаемого оборудования). Однако состав этой библиотеки в разных прикладных решениях различается:
Таким образом, отсутствие пункта «Электронные весы» — это не ошибка программы, а ограничение конкретной конфигурации. Тем не менее, техническая база платформы 1С 8.3 позволяет обойти это ограничение несколькими способами.
Рассмотрим самый простой и надежный метод, который работает абсолютно в любой конфигурации 1С. Суть метода заключается в использовании специальной утилиты от производителя весов (например, от компаний «Масса-К», «CAS» или «АТОЛ»).
Алгоритм работы:
F8) или режим автоматической передачи данных.Для 1С этот процесс выглядит так, будто пользователь ввел цифры вручную. Плюсы: не нужно менять конфигурацию, не нужны навыки программирования. Минусы: необходимо следить за тем, чтобы курсор всегда находился в поле «Количество».
Проанализируем ситуацию, когда нам нужно программное получение веса по кнопке в документе, но мы не хотим снимать конфигурацию с поддержки. Для этого идеально подходят внешние обработки заполнения.
Мы можем создать обработку, которая будет подключаться к драйверу весов через COM-объект или Native API напрямую. Разберем пример логики кода для получения веса через драйвер АТОЛ:
&НаКлиенте
Процедура ПолучитьВесИзВесов()
// Создаем объект драйвера
Попытка
Драйвер = Новый COMОбъект("AddIn.ShtrihMScale_1_12"); // Пример для весов Штрих-М
Исключение
Сообщить("Драйвер не установлен на данном ПК");
Возврат;
КонецПопытки;
// Настраиваем параметры связи
Драйвер.Password = 30;
Драйвер.ComNumber = 1; // Номер порта
Драйвер.BaudRate = 4; // Скорость 4800
// Пытаемся получить данные
Если Драйвер.Connect() = 0 Тогда
Если Драйвер.GetRangeData() = 0 Тогда
ТекущийВес = Драйвер.Weight;
Объект.Количество = ТекущийВес;
КонецЕсли;
Драйвер.Disconnect();
КонецЕсли;
КонецПроцедуры
Такую обработку можно зарегистрировать в справочнике «Дополнительные отчеты и обработки», и она добавит кнопку в документы (например, в «Реализацию товаров и услуг»), позволяя считывать данные без изменения типового кода.
Если нам необходимо, чтобы весы появились именно в стандартном списке подключаемого оборудования, придется прибегнуть к использованию расширений. Это наиболее технологичный путь, так как он позволяет «достроить» БПО до нужного уровня.
Разберем шаги по реализации этого метода:
ТипыПодключаемогоОборудования.ЭлектронныеВесы (имя должно точно совпадать с тем, которое ожидается в модулях БПО).МенеджерОборудованияВызовСервера), и переопределяем логику заполнения доступных типов.После этого в интерфейсе выбора типа оборудования появится заветный пункт. Далее вам потребуется загрузить zip-архив с драйвером в справочник ДрайверыОборудования. Важно использовать драйверы, сертифицированные «1С», так как они имеют стандартный программный интерфейс.
Существуют промежуточные решения, такие как платные универсальные драйверы. Они работают как мост между физическим устройством и 1С. Проанализируем их преимущество: такой драйвер часто имеет свою визуальную форму. Программист 1С вызывает простую команду из внешней компоненты, открывается небольшое окно поверх 1С с «живым» весом, и при нажатии кнопки «ОК» в окне драйвера, значение возвращается в 1С.
Это избавляет от необходимости прописывать низкоуровневые команды протокола обмена весов (например, ACK/NAK или разбор байтовых строк).
Выясним причины возможных неудач при подключении:
regsvr32 от имени администратора.Подключение весов в 1С 8.3 при их отсутствии в списке — задача решаемая. Для быстрой настройки без программиста используйте эмуляцию клавиатуры. Для качественной автоматизации в «Бухгалтерии 3.0» лучше всего использовать внешнюю обработку заполнения или расширение. Если же вы планируете масштабную работу с весовым товаром, стоит рассмотреть переход на конфигурацию, где этот функционал является штатным, например, «1С:Управление торговлей».