---
id: TCP
sidebar_class_name: TCP
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, TCP]
---

<img src={require('../../static/img/APIs/TCP.png').default} width='64px' />

# TCP (Клиент)



Этот раздел посвящен библиотеке для работы с протоколом TCP в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы

<div class="theme-admonition theme-admonition-info admonition_node_modules-@docusaurus-theme-classic-lib-theme-Admonition-Layout-styles-module alert alert--info">

<img src={require('../../static/img/addin.png').default} class="tipimage" />
<div class="addin">Для реализации некоторых функции в этой библиотеке используется внешняя компонента <br/>
Пожалуйста, ознакомьтесь с разделом ["О внешних компонентах"](/docs/Start/Component-requirements) перед началом работы</div>
</div>


<div class="theme-admonition theme-admonition-caution admonition_node_modules-@docusaurus-theme-classic-lib-theme-Admonition-Layout-styles-module alert alert--warning">

<img src={require('../../static/img/lock.png').default} class="tipimage" />
<div class="addin">Для работы этой библиотеки на Linux необходим **OpenSSL 3.x** <br/>
Узнать больше: <a href="/docs/Start/Component-requirements#openssl" class="orangelink">"Об использовании OpenSSL во внешних компонентах"</a></div>
</div>

## О реализованных методах

Данная библиотека предоставляет несколько готовых методов для работы в качестве TCP клиента. Стандартная схема взаимодействия с сервером выглядит следующим образом:

    1. Создание объекта и подключение к серверу производится при помощи функции `ОткрытьСоединение`. Туда передается строка подключения в формате `<адрес>:<порт>`
    2. При необходимости, серверу можно отправить сообщение при помощи функций `ОтправитьДвоичныеДанные` и `ОтправитСтроку`
    3. Для получения данных от сервера, используются функции `ПрочитатьДвоичныеДанные` и `ПрочитатьСтроку`. Они имеют различные параметры для ограничения получаемых данных по размеру, маркеру и ожиданию ввода (таймауту)
    4. При окончании работы желательно явно завершать соединение при помощи функции `ЗакрытьСоединение`

Для простого сценария со стандартными настройками, также существует функция `ОбработатьЗапрос` - она отправляет данные на указанный адрес и ждет ответа, завершая чтение при нахождении стандартного маркера `\\n`. Также это единственная функция, которая доступна в CLI версии ОПИ

## TLS

Библиотека поддерживает работу в режиме TLS. Для его включения необходимо сформировать настройки TLS при помощи функции `ПолучитьНастройкиTls`, и передать их как соответствующий параметр в функцию `ОткрытьСоединение` или `ОбработатьЗапрос`. Если параметр TLS при вызове этих функций не передан, соединение инициализируется в незащищенном режиме

## Использование прокси

Данный клиент поддерживает создание соединения через прокси сервер. Получить структуру настроек прокси можно при помощи функции `ПолучитьНастройкиПрокси`. Полученная структура, далее, должна быть передана в функцию `ОткрытьСоединение` или `ОбработатьЗапрос` при начале работы

```bsl

    ...

    ТипПрокси = "http"; // http, socks5, socks4

    АдресПрокси  = "127.0.0.1";
    ПортПрокси   = "8071";
    ЛогинПрокси  = "proxyuser";
    ПарольПрокси = "12we...";

    НастройкиПрокси = OPI_TCP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);

    Соединение = OPI_TCP.ОткрытьСоединение(Адрес, НастройкиTLS, НастройкиПрокси);

```

Поддерживается работа через SOCKS4, SOCKS5 и HTTP-прокси серверы

:::warning
Работа через http-прокси является экспериментальной и может быть нестабильной в зависимости от реализации прокси-сервера, его настроек и возможностей. Рекомендуется по возможности использовать SOCKS-прокси для стабильной передачи трафика
:::