Клиент HTTP(S): внешняя компонента для 1С 7.7
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Эта компонента создавалась для работы с онлайн кассой Dreamkas из среды 1С 7.7. «Родная» компонента 1С V7HttpReader из библиотеки V7Plus.dll устарела и не работает по протоколу HTTPS. Как вариант можно использовать COM-объект Msxml2.XMLHTTP в составе ОС Windows не очень старой версии. Но, например, в Windows XP и в Microsoft Windows Server 2003 этот COM-объект также устарел.
Клиент HTTP(S) разработан по технологии создания внешних компонент для платформы 1С 7.7 в среде Lazarus благодаря публикации № 279986 «Шаблон внешней компоненты COM для Lazarus (FreePascal)». Позволяет работать с веб-сервисами по протоколу HTTP или HTTPS и использовать любые способы передачи: GET, POST, PUT, DELETE, OPTIONS.
Поддерживается автоматическая распаковка данных сжатых в формате gzip.
Протокол HTTPS работает с библиотекой OpenSSL версии 1.0.2 и поддерживает TLS v1.2.
В прилагаемой внешней обработке демонстрируются примеры запросов: 1) по HTTP к веб-сервису ЦБ РФ и 2) по HTTPS к веб-сервису Gismeteo (так как это ресурс платный, то в ответ приходит сообщение о «плохом токене»).
Функционал компоненты:
Методы объекта «AddIn. HTTPS77»:
Запросить (<URL>, <Метод> ) – запрос к Internet -ресурсу без передачи данных для обработки.
ПолучитьКакФайл(<URL>, < ФайлПриемник >) – запрос к Internet -ресурсу с сохранением «тела» ответа в файл.
Обработать (<URL>, <Метод>, <Источник>, <ТипИсточника>, <ФайлПриемник>) – универсальный запрос к Internet -ресурсу.
УдалитьЗаголовкиЗапроса() – удаляет все HTTP-заголовки запроса.
УстановитьЗаголовокЗапроса (<ИмяЗаголовка>,<Содержание>) – устанавливает HTTP-заголовок запроса.
КоличествоЗаголовковОтвета () – количество заголовков в ответе сервера.
ПолучитьЗаголовокОтвета(<НомерЗаголовка>) – получает один из заголовков ответа.
Utf8ToAnsi (<Стр>) – конвертирует строку из кодировки Utf8 в ANSI.
AnsiToUtf8 (<Стр>) – конвертирует строку из кодировки ANSI в Utf8.
Свойства объекта «AddIn. HTTPS77» (чтение+запись):
ВыводитьТранспортныеСообщения – число, 0 – не выводить, 1 - выводить сообщения в процессе получения ответа.
Таймаут– число, ограничение времени ожидания ответа в миллисекундах.
Свойства объекта «AddIn. HTTPS77» (чтение):
СтрокаСостоянияОтвета– содержит возвращенную сервером строку статуса.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Разработка внешних компонент Разработчик 1С:Предприятие 7.7 1С:Предприятие 8 Абонемент ($m)
PDFConverter — высокопроизводительная нативная компонента для работы с PDF-документами в среде 1С:Предприятие 8.
10 стартмани
20.03.2026 1772 19 v_peroff 8
Разработка внешних компонент Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Внешняя компонента позволяет в среде 1С 7.7 работать с бинарными файлами: анализировать их, создавать новые, копировать, корректировать и комбинировать. Имеются функции сжатия и разжатия строк и бинарных данных.
1 стартмани
10.06.2025 2843 1 mdbruyfn 0
Разработка внешних компонент Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Внешняя компонента позволяет в среде 1С 7.7 работать с ZIP-архивами: создавать архивы, читать их и разархивировать.
1 стартмани
29.05.2025 2926 3 mdbruyfn 2
WEB-интеграция 1С:Предприятие 7.7 Абонемент ($m)
Может быть интересен пользователям Windows 10-11, для которых важен доступ к определенным интернет-ресурсам, например государственным службам, именно с помощью Internet Explorer.
1 стартмани
27.05.2025 3302 2 item 0
Разработка внешних компонент Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Компонента позволяет в среде 1С 7.7 генерировать двухмерный QR код из любого текста длиною до 1800 символов и сохранять его в файле BMP формата. Из файла он может быть загружен в объект 1С "Картинка".
1 стартмани
29.01.2025 3405 6 mdbruyfn 4
WEB-интеграция Обмен с ГосИС Разработчик 1С:Предприятие 7.7 1C77 Россия Абонемент ($m)
В связи с нововведением Разрешительного Режима ТС ПИоТ, Онлайн и Офлайн проверки ЛМ ЧЗ, написал механизм взаимодействия 1С 7.7 с ТС ПИоТ, Честным знаком и ЛМЧЗ. Использовал три варианта отправки запросов.
3 стартмани
01.04.2024 17188 158 buka99999 152
Разработка внешних компонент Системный администратор Разработчик 1С:Предприятие 7.7 1С:Предприятие 8 Россия Платные (руб)
Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.
7320 руб.
19.04.2023 7319 1 0
Разработка внешних компонент WEB-интеграция Разработчик 1С:Предприятие 7.7 1C77 Платные (руб)
Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async можно наладить обмен данными между удаленными информационными базами по протоколам HTTP, HTTPS и WebSocket. С помощью компоненты HttpSrv7 используя протокол WebSocket можно создавать и поддерживать работу нескольких чатов. С помощью компоненты HTTP_Async можно асинхронно отправлять HTTP-запросы к сайтам, веб-сервисам (в т.ч. к HTTPSrv7) и обрабатывать ответы по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи в формате Base64 и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.
6100 руб.
27.05.2022 13645 2 20
Запросы на текстовый файл (https://***.ru/***.yml) отрабатываются нормально, в ответе строка с содержимым файла.
А как быть c запросами на картинки и др.бинарные файлы (https://***.ru/media/catalog_product/image/317.jpg)?
В ответе пустая строка.
Метода ПолучитьКакФайл в V7Plus нет?
HTTP_77 : Reading headers : 3933 Bytes.
HTTP_77 : Response headers received:
Строка состояния: HTTP(S)/1.1 200 OK
Количество заголовков ответа: 8
Server: nginx
Date: Sun, 17 Nov 2019 15:19:49 GMT
Content-Type: image/jpeg
Content-Length: 3705
Last-Modified: Wed, 16 Jul 2014 14:47:00 GMT
Connection: close
ETag: "53c69064-e79"
Accept-Ranges: bytes
Подскажите пожалуйста, не компилится
ComServer.SetServerName('AddIn'); Error: identifier idents no member "SetServerName"
HTTP_77 : No SSL Socket support compiled in.
Please include opensslsockets unit in program and recompile it.
Ошибка при выполнении метода объекта компоненты E:\Program Files\bin\HTTP_77.dll
Подскажите пож
Как я понял, компилится без ошибок и юниты fphttpclient, sslsockets, fpopenssl имеются?
Может быть это что-то связанное с версией библиотек или компилятора Lazarus, можете сверить с моими:
Lazarus 32 bit v.2.0.4, компилятор FPC v.3.0.4, пакет библиотек FCL v.1.0.1
Еще можете сверить файлы в составе проекта из папки ..\Lazarus\fpc, которые перечислены в файле HTTP_77.lps,
если каких-то не хватает и компилятор ошибок не выдает, то это какой-то глюк лазаруса.
Может быть переименовать AddIn.HTTP в AddIn.HTTP_77?
Ни в какую у меня не загружается альтернативная библиотека HTTPS77.dll -
Ошибка при создании объекта из компоненты HTTPS77.dll (отсутствует CLSID)
И под администратором загружал и регистрировал вручную - ничего не помогает
Компонента супер, решила много проблем. Сейчас столкнулся с проблемой. При POST запросе в ответе получается бинарный файл. В объектах типа "WinHttp.WinHttpRequest.5.1" или "Msxml2.XMLHTTP.6.0", которые я так же использую в более современных операционных системах, responseBody я могу записать в файл. У данной компоненты в ответе
"ответ = Соединение.Обработать(Сервер,"POST",ТекстЗапроса);" Содержится только часть файла, как я понял до первого "NUL".
Можно как-то получать аналог responseBody?
HTTPS77 : Could not initialize OpenSSL library
UPD: Заработало, когда положил файлы libeay32.dll и ssleay32.dll в C:\Windows\SysWOW64
Это уменьшит трафик, но клюшки ответ не поймут.
Если возможно что-то сделать, чтобы получать данные сжатыми, а средствами вк уже разархивировать - будет круто.
Последние дни начали сбоить запросы к "https://suppliers-api.wildberries.ru/api/v2/". По запросам к другим сервисам проблем не наблюдается на данный момент. Ошибка:
HTTP_77 : Connect to suppliers-api.wildberries.ru:443 failed.
ответ = Соединение.Обработать(Сервер,"GET",);
Причем если я на компьютере с win10 запускаю то ошибка возникает реже чем на winXP.
Не подскажите, не появились ли какие-то новые протоколы у некоторых сервисов которые не предусмотрены библиотекой или библиотеки libeay32.dll и ssleay32.dll нужно обновить?
Возможно. Я обновил версию библиотеки, установил интервал на 10 секунд вроде проблема пропала.
Заметил проблему (не сильно критично, но все же может кому пригодится) нельзя использовать в одной программе две версии библиотеки с объектом HTTP77 и HTTP, после первого вызова второго объекта первый перестает работать. Так что пришлось переписать все места где использовалась старая версия библиотеки.
УстановитьЗаголовокЗапроса("Content-Type","application/x-www-form-urlencoded");
Обработать(Урл,Способ,"hash=M8HZztVgtqMTNKjFSHOU4FTwT5Pl09dDq6IJyxjI");
HTTP_77 : Stream read error
Ошибка при выполнении метода объекта компоненты C:\1cbin\HTTP_77.dll
(с пустым телом все норм)
(c "Content-Type","application/json") и не пустым телом тоже все норм)
возможно проблема возникает при редиректе
Столкнулся с проблемой. Библиотека не хочет работать на WIN10, WIN7 с ресурсом akusherstvo.ru. Пример GET запроса
Ошибка "HTTPS77 : Connect to partners.akusherstvo.ru:443 failed."
На winXP, winServer 2003 все работает.
На другие ресурсы тоже все отправляет без проблем на всех системах.
Браузер и postman на win10 получает ответ без проблем.
Есть догадки, что это проблема с версиями SSL на стороне их сервера, но вот что надо сделать, чтобы заработало не понятно.
HTTPS77 : Could not initialize OpenSSL library
В C:\Windows\SysWOW64 (как и system32) файлы libeay32.dll и ssleay32.dll присутствуют, в чем может быть еще проблема?
ОС: win10 x64
А в этой библиотеке не предусмотрена асинхронная работа? А то у меня периодически завешивается 1с. Поставил таймаут, но все равно виснет. Вот подумал, что если бы была возможность асинхронного запуска, то было бы супер.
20240427_150118_HTTP_Async_log.txt
Версия скачанная в 2020 году работала более менее нормально.
Последняя версия работает только из под администратора сервера. Неудачная попытка создания объекта (AddIn.HTTPS77) Помогите пожалуйста
Но далее столкнулся с другой проблемой, такое впечатление, что новая версия портит содержимое источник (при Обработать типисточника = 0) в случае использования там русских букв. Кодировка источника utf8 (кодировку пробовал и своей либой и через HTTPS77.dll) Т.е. на английском содержимом все ок на обоих версиях. Если в источнике есть русские буквы, то HTTP_77.dll работает нормально, а HTTPS77.dll нет. К сожалению понять что конкретно серверу не нравится не получается, (сервер закрытый) но как будто библиотека частично съедает или портит, или путает байты местами в кодировке буквы понять не могу, может что то другое.
Источник это json
передаётся слово "перенести"
верхняя строка это новая версия (HTTPS77.dll), кодирует в utf8 неверно
нижняя строка это старая версия (HTTP_77.dll), кодирует в utf8 верно.
Новая версия сразу кодирует данные в utf8 , а старая нет, поэтому с новой версией у меня было двойное кодирование
Мой вопрос (извините, нужна небольшая консультация корифеев):
Из 1С формируется запрос к серверу, передавая параметр:
// Отправка ПОСТ запроса
WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"Windows-1251");
WinHttp.Open("POST",ИмяCервера,0);
WinHttp.SetRequestHeader("Accept-Language", "ru");
WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");
WinHttp.setRequestHeader("Content-Language", "ru");
WinHttp.setRequestHeader("Content-Charset", "Windows-1251");
WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251");
ПараметрыПОСТ = "&id=" + НомерВСрм;
WinHttp.Send(ПараметрыПОСТ);
Получаем в ответ и записываем XML-файл:
// Запись XML в текстовый файл
Текст = СоздатьОбъект("Текст");
Текст.ДобавитьСтроку(WinHttp.ResponseText());
Текст.Записать(ИмяФайла);
Сейчас потребовалось передавать на сервер вместо параметра - XML-файл (можно архив). Можете подсказать, как мне изменить приведённый выше запрос?
Подскажите, компонента позволяет использовать URL с указанием порта?
Мне нужно послать запрос на программную кассу по такому УРЛ: "http://192.168.0.110:37015/v1"
Сейчас при использовании компоненты выскакивает ошибка: HTTPS77 : Error reading data from socket
Перебрал разные способы задания заголовка запроса - каждый раз код сообщения "415"!
Варианты, которые пробовал:
1)
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept", "application/soap+xml");
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept-Charset","utf-8");
2)
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept", "application/xml");
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept-Charset","utf-8");
3)
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept", "text/soap+xml");
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept-Charset","utf-8");
4)
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept", "text/xml");
HTTPСоединение.УстановитьЗаголовокЗапроса("Accept-Charset","utf-8");
5)
HTTPСоединение.УстановитьЗаголовокЗапроса("Content-Type","application/soap+xml; charset=utf-8");
6)
HTTPСоединение.УстановитьЗаголовокЗапроса("Content-Type","application/xml; charset=utf-8");
7)
HTTPСоединение.УстановитьЗаголовокЗапроса("Content-Type","text/xml; charset=utf-8");
8)
HTTPСоединение.УстановитьЗаголовокЗапроса("Content-Type","text/soap+xml; charset=utf-8");
Где ошибаюсь? Заранее спасибо!
Соединение=СоздатьОбъект("AddIn.HTTPS77");
Соединение.УдалитьЗаголовкиЗапроса();
Соединение.Таймаут = 2500;
Соединение.УстановитьЗаголовокЗапроса("Content-Type","application/json");
Соединение.УстановитьЗаголовокЗапроса("X-Content-Type-Options","nosniff");
Соединение.УстановитьЗаголовокЗапроса("Authorization", WildberriesAuth);
ответ = Соединение.Обработать(Сервер,"PATCH",ТекстЗапроса);
ТекСтатус = Соединение.СтрокаСостоянияОтвета;
Не всегда, примерно 1 из 10 запросов на один и тот же сервер, меняется только текст запроса.
Есть идеи из-за чего может такое быть?
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 1152364
Создание 14.11.19 16:54
Обновление 29.07.26 12:30
Просмотры 24675
Загрузки 138
Рейтинг
19
Комментарии 110
Код открыт Да
Рубрики Разработка внешних компонент WEB-интеграция
Кому Разработчик
Тип файла Архив с данными
Платформа 1С:Предприятие 7.7
Конфигурация Универсальные
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)