Консоль для взаимодействия 1С с COM-портом (чтение и отправка данных)

13.12.25

Интеграция - Внешние источники данных

Внешняя обработка 1С позволяет посылать текстовые команды в COM-порт и производить чтение из COM-порта.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Архивный файл: Внешняя обработка "Консоль для взаимодействия 1С с COM-портом" , dll - сборка, исходник .cs.
.rar 8,33Kb
5 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

1. Назначение обработки

Данная внешняя обработка предназначена для организации обмена данными между 1С:Предприятие 8.3 (64-бит) и любыми внешними устройствами, подключенными через последовательный порт (COM-порт).

Обработка обеспечивает:

  • отправку текстовых команд в COM-порт, включая AT-команды модемов;

  • приём данных из COM-порта;

  • поддержание стабильного соединения и корректное закрытие порта;

  • автоматическую перекодировку данных в Unicode (UTF-8 без BOM), обеспечивающую корректную работу с кириллицей;

  • безопасную работу посредством .NET-компонента, зарегистрированного в системе.

Обработка универсальна и может использоваться для связи с модемами, модульными контроллерами, терминалами, измерительными устройствами и любой аппаратурой, работающей через RS-232/USB-COM адаптер.

 

2. Требования к окружению

  1. Операционная система: Windows 10 / 11 (64-бит).

  2. Платформа 1С: 1С:Предприятие 8.3 (64-бит).

  3. Установленный .NET Framework 4.0+ (64-бит)
    Обычно уже установлен в системе.

  4. Права администратора
    Требуются только для первоначальной регистрации 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

Вступайте в нашу телеграмм-группу Инфостарт

обработка com порт

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    30597    42    49    

46

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

05.10.2022    13182    15    8    

16

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

122000 руб.

19.08.2020    29316    27    3    

28

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (Базовая, ПРОФ, КОРП, ФРЕШ (тонкий клиент)).

17080 руб.

19.12.2016    53623    121    107    

83

Внешние источники данных Программист Бизнес-аналитик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouseDB, PostgreSQL, MySQL, в шину данных с поддержкой REST API (CSV, JSON. SQL), в локальные файлы (CSV, JSON, XLS, XLSX) или в Google Sheets. Это дополнительная подключаемая обработка.

18000 руб.

21.08.2024    8448    21    4    

18

Внешние источники данных Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Быстро и легко. Выгрузка всех элементов и групп номенклатуры (с их иерархией), кроме помеченных на удаление. Без использования COM-объектов.

4880 руб.

16.08.2023    3787    7    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Bizerber 15.12.25 09:11 Сейчас в теме
НомерПорта = 5;
Скорость = 9600;
Компонента = Новый COMОбъект("MSCOMMLib.MSComm.1");
Компонента.CommPort = НомерПорта;
Компонента.Settings = Формат(Скорость, "ЧГ=0") + ",n,8,1";
Компонента.InBufferSize = 4096;
Компонента.PortOpen = Истина;
Компонента.RTSEnable = Истина;

Не?
2. pwn 49 15.12.25 12:45 Сейчас в теме
(1) Скорее да чем не, если удаётся воспользоваться mscomm32.ocx.
3. YA_2206000826 17.02.26 16:38 Сейчас в теме
Есть ли возможность передавать управляющие байты на весы посредством данной dll? Компьютер посылает байт 05 hex, весы отвечают байтом 06 hex, по средством методов Write WriteLine не получается.
4. pwn 49 17.02.26 20:45 Сейчас в теме
(3) Текущая реализация dll для этого не подходит потому что она ориентирована на текстовый режим, где данные проходят через Encoding.

Для управляющих байтов:
0x05 = ENQ
0x06 = ACK
использовать строковую передачу нельзя, потому что:
- байт может интерпретироваться как управляющий символ Unicode,
- возможны преобразования кодировки,
- протокол весов может требовать строгое побайтное соответствие.
5. pwn 49 17.02.26 23:22 Сейчас в теме
(3) Необходимо в исходник добавить методы для чтения и записи побайтно и пересобрать dll:

public void WriteByte(int value)
{
if (port != null && port.IsOpen)
{
byte b = (byte)value;
port.Write(new byte[] { b }, 0, 1);
}
}

public int ReadByte()
{
if (port != null && port.IsOpen)
return port.ReadByte();

return -1;
}

Вызов методов на стороне 1С:

sp = Новый COMОбъект("SerialCom.Port");
sp.Open("COM3", 9600, 0, 8, 1);

// Отправляем 0x05
sp.WriteByte(5);

// Читаем ответ
Ответ = sp.ReadByte();

Если Ответ = 6 Тогда
Сообщить("Весы подтвердили (ACK)");
Иначе
Сообщить("Ответ: " + Строка(Ответ));
КонецЕсли;
6. YA_2206000826 20.02.26 16:14 Сейчас в теме
(5) Тоже пришел к похожему решению, спасибо.
Для отправки сообщения требуется регистрация/авторизация