Как правильно подключить и использовать внешнюю компоненту CAS для весов в 1С?

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

В процессе интеграции торгового оборудования, в частности весов компании CAS, разработчики часто сталкиваются с трудностями при подключении библиотек типа CAScentre_DLL_AllScale.dll. Основная ошибка заключается в попытке использовать метод ПодключитьВнешнююКомпоненту, который предназначен для Native API, тогда как библиотека является COM-сервером на базе .NET Framework. Давайте разберем по шагам, как правильно настроить окружение и вызвать методы драйвера из 1С.

Шаг 1: Подготовка среды и регистрация библиотеки

Поскольку библиотека написана на .NET Framework, 1С не сможет просто «увидеть» её без предварительной регистрации в системе. Стандартная команда regsvr32 здесь не поможет, так как она предназначена для классических COM-объектов. Нам потребуется утилита RegAsm.exe, входящая в состав установленного .NET Framework.

  1. Убедитесь, что на компьютере установлен .NET Framework 2.0 (или требуемая версия, указанная в документации производителя).
  2. Запустите командную строку (CMD) от имени администратора.
  3. Выполните команду регистрации сборки. Важно использовать ключ /codebase, который привязывает COM-объект к конкретному пути расположения файла:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "Путь_К_Вашей_Библиотеке\CAScentre_DLL_AllScale.dll" /codebase

После этого система должна выдать сообщение о том, что типы успешно зарегистрированы. Если вы используете 64-битную Windows и 32-битный клиент 1С, регистрацию нужно проводить именно через 32-битный RegAsm (как показано в примере выше), чтобы обеспечить корректную видимость объекта для 1С.

Шаг 2: Использование вспомогательного ПО

Практика показывает, что библиотека CAS часто работает в связке с фоновым приложением (например, SendWeightValueToWinApp.exe). Оно необходимо для инициализации связи с весами через COM-порт и передачи данных в буфер.

  1. Запустите управляющую утилиту от имени администратора.
  2. Настройте параметры порта (номер COM-порта, скорость 9600, отсутствие принтера).
  3. Выполните тест соединения. Если весы передают данные, вы увидите текущий вес в окне утилиты.
  4. Важно: После успешного теста обязательно закройте эту утилиту (через выход в трее), так как 1С и утилита не могут одновременно использовать один и тот же последовательный порт.

Шаг 3: Программный вызов из 1С

Теперь, когда библиотека зарегистрирована, мы можем создать объект драйвера непосредственно в коде 1С. Рассмотрим, как это сделать в управляемой форме на клиенте.


&НаКлиенте
Перем Драйвер;

// Функция для инициализации подключения
Функция ПодключитьДрайвер()
    Попытка
        // Создаем COM-объект по его ProgID
        Драйвер = Новый COMОбъект("CAScentre_DLL_AllScale.GetWeight");
        
        // Подключаемся к весам по COM-порту
        Порт = 4;
        Скорость = 9600;
        ТипВесов = 0;
        
        Драйвер.ConnectRS(Порт, Скорость, ТипВесов);
        Сообщить("Успешное подключение к весам!");
        Возврат Истина;
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
КонецФункции

Шаг 4: Получение данных о весе

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


&НаКлиенте
Функция ПолучитьВес()
    Попытка
        // Метод Update опрашивает весы и обновляет свойства объекта
        Драйвер.Update();
        
        // Получаем значение веса в килограммах
        ТекущийВес = Драйвер.CurrentWeightKg();
        Возврат ТекущийВес;
    Исключение
        Сообщить("Ошибка получения данных: " + ОписаниеОшибки());
        Возврат 0;
    КонецПопытки;
КонецФункции

Возможные проблемы и их решение

Если при попытке создания объекта возникает ошибка "Не найден указанный модуль", проверьте следующие моменты:

Используя этот алгоритм, вы сможете успешно интегрировать весы CAS в вашу конфигурацию 1С, избежав путаницы с типами компонент и настройкой системного окружения. Для подключения весов без регистрации COM-объектов подойдёт нативная компонента для весов с протоколом CAS-AD.

← На главную