1. Назначение обработки
Данная внешняя обработка предназначена для организации обмена данными между 1С:Предприятие 8.3 (64-бит) и любыми внешними устройствами, подключенными через последовательный порт (COM-порт).
Обработка обеспечивает:
-
отправку текстовых команд в COM-порт, включая AT-команды модемов;
-
приём данных из COM-порта;
-
поддержание стабильного соединения и корректное закрытие порта;
-
автоматическую перекодировку данных в Unicode (UTF-8 без BOM), обеспечивающую корректную работу с кириллицей;
-
безопасную работу посредством .NET-компонента, зарегистрированного в системе.
Обработка универсальна и может использоваться для связи с модемами, модульными контроллерами, терминалами, измерительными устройствами и любой аппаратурой, работающей через RS-232/USB-COM адаптер.
2. Требования к окружению
-
Операционная система: Windows 10 / 11 (64-бит).
-
Платформа 1С: 1С:Предприятие 8.3 (64-бит).
-
Установленный .NET Framework 4.0+ (64-бит)
Обычно уже установлен в системе. -
Права администратора
Требуются только для первоначальной регистрации DLL.
3. Состав решения
- Внешняя обработка SerialPortCom.epf
Функционал:
-
имя COM-порта указывается текстом (например COM5);
-
скорость обмена указывается вручную (например 9600);
-
в текстовое поле выводятся прочитанные из COM-порта данные;
-
из текстового поля данные отправляются в COM-порт;
-
кнопки «Открыть порт», «Закрыть порт», «Очистить», «Чтение порта», «Запись в порт»;
- Готовая сборка .NET Framework: SerialPortCom.dll
- Исходный файл SerialPortCom.cs
Сборка SerialPortCom.dll экспортирует COM-класс SerialCom.Port.
Данный класс предоставляет следующие методы:
-
Open(Порт, Скорость, Паритет, БитыДанных, СтопБиты)
-
OpenSimple(Порт, Скорость)
-
Close()
-
Write(Строка)
-
WriteLine(Строка)
-
ReadExisting()
-
IsOpen()
-
SetTimeouts(ReadTimeout, WriteTimeout)
Внимание! В обработке, в качестве примера, применён упрощенный метод OpenSimple() с минимальным набором параметров.
4. Порядок регистрации DLL-файла
Шаг 1. Поместить SerialPortCom.dll в доступный каталог
Шаг 2. Открыть Командную строку (cmd) от имени администратора
Шаг 3. Выполнить регистрацию DLL
Для 64-битной системы и 1С 64-бит требуется 64-битный RegAsm:
"Путь до RegAsm.exe" пробел "Путь до SerialPortCom.dll" пробел /codebase /tlb
Например:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "C:\Program Files\SerialComInterop\SerialComInterop.dll" /codebase /tlb
Появится сообщение:
Типы зарегистрированы успешно.
Сборка экспортирована в *.tlb
Это означает, что 1С сможет создать объект:
sp = Новый COMОбъект("SerialCom.Port");
5. Возможности для интеграции
Обработку возможно использовать:
-
в качестве тестового терминала;
-
в качестве модуля обмена для конфигураций 1С и COM-портом;
-
для автоматизации обмена с GSM-модемами (AT-команды);
-
для приёма данных измерительных приборов.
Интеграция осуществляется на уровне кода 1С.
Пример:
sp = Новый COMОбъект("SerialCom.Port");
sp.Open("COM3", 9600, 0, 8, 1);
sp.WriteLine("AT+CSQ");
Ответ = sp.ReadExisting();
Сообщить("Ответ устройства: " + Ответ);
sp.Close();
6. Преимущества решения
-
Работает в 1С 64-бит (в отличие от MSComm32.ocx)
-
Не требует OCX-контролей
-
Полная поддержка Unicode / UTF-8
-
Поддержка современных USB-COM адаптеров
-
Стабильная работа с большими объёмами данных
-
Простая регистрация и подключение
-
Универсальная для любых устройств
7. Лицензионные условия
SerialPortCom.dll файл поставляется "как есть" и может распространятся свободно. Пользователь принимает все риски его использования.
Внешняя обработка используется и распространяется в соответствии с правилами Infostart.ru.
8. Заключение
Внешняя обработка SerialPortCom.epf обеспечивает полноценную и корректную работу с последовательными интерфейсами из 1С:Предприятие 8.3 (64-бит), используя современный .NET-компонент SerialPortCom.dll.
Данное решение является надёжной альтернативой устаревшим OCX-контролям и полностью совместимо с актуальными версиями Windows и 1С.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.188.17
Вступайте в нашу телеграмм-группу Инфостарт
