HTTP-клиент

Публикация № 1488090 28.07.21

Разработка - Инструментарий разработчика

конфигурация http запросы клиент url перенаправления аутентификация cookie http-client http-requests fluent асинхронность punycode дка модуль библиотека postman curl idn кодогенерация

Подсистема 1С для работы с HTTP.

Подсистема 1С для работы с HTTP

 

Представляет собой библиотеку методов и инструменты выполнения HTTP-запросов. Реализованы:

  • исполнение запросов по URI (Клиент "понимает" IDN)
  • исполнять запросы можно на клиенте (асинхронно) и на сервере, а также в мобильном приложении
  • текучий интерфейс методов настройки выполнения запроса
  • методы GET, POST, PUT, DELETE, HEAD, PATCH
  • передача в теле запроса текста, данных файлов и двоичных данных
  • хранение данных результатов запросов в рамках сессии (Cookie, перенаправления)
  • получение сжатого контента в ответе
  • консоль интерактивного выполнения запросов
  • генерация кода 1С, интерактивно настроенного в Консоли запроса
  • импорт файла Postman (формат файла v2.1)
  • настройка Консоли в соответствии с командой консольной утилиты curl

Кредо системы: лаконичная результативность. К чему и стремимся.

Репозиторий на github

Документация

Примеры использования

Является open source с лицензией Apache 2.0

 

Пример кода

 

В первую очередь Клиент – это библиотека методов выполнения HTTP-запросов.

Версия 1 использует синхронные вызовы, поэтому при вызове функций выполнения запроса с клиента и с сервера тип ответа отличаться не будет.

В версии 2 вызовы с клиента асинхронные – функции выполнения запроса вернут Обещание.

Оформлял экспортные методы модулей с комментариями. Все методы выполнения представлены в модуле КлиентHTTPКлиентСервер. Константные значения – в КлиентHTTPПовтИсп. Пара примеров:

 

Голый GET

 

// Для версии 1, на сервере или для внешнего соединения
Ответ = КлиентHTTPКлиентСервер.Получить("https://ya.ru");

// На клиенте для версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.Получить("https://ya.ru");

 

Установка параметров запроса

 

Адрес = "https://evilinsult.com/generate_insult.php";

// Добавим параметры URL: ?lang=ru&type=json
ПЗ = КлиентHTTPКлиентСервер.НовыеПараметрыЗапроса();
КлиентHTTPКлиентСервер
    .ДобавитьПараметр(ПЗ, "lang", "ru")
    .ДобавитьПараметр(ПЗ, "type", "json");

Ответ = КлиентHTTPКлиентСервер.Получить(Адрес, ПЗ); // на вызов с клиента в версии 2 вернётся Обещание
Текст = ПолучитьСтрокуИзДвоичныхДанных(Ответ.Тело);

или же

// Для версии 1, на сервере или для внешнего соединения
Ответ = КлиентHTTPКлиентСервер.Получить(
    "https://evilinsult.com/generate_insult.php?lang=ru&type=json"
);

// На клиенте для версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.Получить(
    "https://evilinsult.com/generate_insult.php?lang=ru&type=json"
);

 

Сохранение тела ответа в файл

 

Адрес = "https://epic.gsfc.nasa.gov/archive/natural/2015/10/31/png/epic_1b_20151031074844.png";

ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
    .УстановитьИмяВыходногоФайла(ДП, "С:\tmp\pic.png")
    .Получить(Адрес, , ДП);

 

POST текста

 

Адрес = "https://jsonplaceholder.typicode.com/posts";
Данные = "{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}";

ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
    .УстановитьТипMIME(ДП, КлиентHTTPПовтИсп.ТипMIMEJSON())
    .УстановитьКодировку(ДП, КлиентHTTPПовтИсп.КодировкаUTF16())
    .ОтправитьТекст(Адрес, Данные, ДП);

 

POST multipart/form-data

 

Адрес = "https://httpbin.org/post";

ПФ = КлиентHTTPКлиентСервер.НовыеПоляФормы();
ФайлПоля = Новый Файл("C:\temp\1.png");

Ответ = КлиентHTTPКлиентСервер
    .ДобавитьПолеФормыФайл(ПФ, "my_file", ФайлПоля, ФайлПоля.Имя, КлиентHTTPСлужебный.ТипMIMEРасширенияФайла(ФайлПоля.Расширение))
    .ДобавитьПолеФормыТекст(ПФ, "user_name", "Имярек")
    .ОтправитьДанныеФормы(Адрес, ПФ);

 

POST application/x-www-form-urlencoded

 

Адрес = "https://httpbin.org/post";
ПФ = КлиентHTTPКлиентСервер.НовыеПоляФормы();

Ответ = КлиентHTTPКлиентСервер
    .ДобавитьПолеHTMLФормы(ПФ, "user_name", "Имярек")
    .ДобавитьПолеHTMLФормы(ПФ, "role", "Сотрудник")
    .ОтправитьДанныеHTMLФормы(Адрес, ПФ);

 

Авторизация

 

ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
    .УстановитьDigestАвторизацию(ДП, "login", "password")
    .Получить("http://192.168.1.1", , ДП);

 

Преобразование тела ответа

 

// Объект идентификатора ресурса соответствующий URI: https://evilinsult.com/generate_insult.php?lang=ru&type=json
оАдрес = КлиентHTTPКлиентСервер.ОбъектИдентификатораРесурса("evilinsult.com", , "generate_insult.php?lang=ru&type=json");

ПЗ = КлиентHTTPКлиентСервер.НовыеПараметрыЗапроса();
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();

// В Ответ.Тело получаем структуру
Ответ = КлиентHTTPКлиентСервер
    .ТелоОтветаКакJSON(ДП)
    .Получить(оАдрес, ПЗ, ДП);

 

Переиспользование HTTP-соединения

 

ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();

КлиентHTTPКлиентСервер.ПереиспользоватьСоединение(ДП);

// Первый после включения режима переиспользования запрос сохранит объект HTTP-соединения
Ответ = КлиентHTTPКлиентСервер.Получить("https://ya.ru", , ДП);

Для я = 1 По 100 Цикл
    ПЗ = КлиентHTTPКлиентСервер.НовыеПараметрыЗапроса();
    Ответ = КлиентHTTPКлиентСервер
        .ДобавитьПараметр(ПЗ, "nr", XMLСтрока(я))
        .Получить("https://ya.ru/", ПЗ, ДП); // объект HTTP-соединения будет переиспользован
КонецЦикла;

 

При каждом вызове функции ПереиспользоватьСоединение очищается сохранённый Объект HTTP-соединения. Проверка соответствия конфигурации соединения текущего запроса и сохранённого HTTP-соединения не осуществляется.

 

Использование сессии (включение Cookie и перенаправлений)

 

ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();

КлиентHTTPКлиентСервер.ИспользоватьСессию(ДП);

// На вызов функций выполнения запроса с клиента в версии 2 вернётся Обещание - имеет смысл Ждать
Ответ1 = КлиентHTTPКлиентСервер.Получить("https://www.google.com/search?q=infostart", , ДП);
Ответ2 = КлиентHTTPКлиентСервер.Получить("https://play.google.com/store/search?q=infostart", , ДП);

// КукиЗдесь = ДП.Сессия.Печенье;
// Перенаправления сработают автоматически

 

Стандартный стиль кода

 

Если текучий интерфейс вам не подходит:

Адрес = "https://evilinsult.com/generate_insult.php";

// Обернём длинное имя общего модуля в переменную
мКлиент = КлиентHTTPКлиентСервер;

ПЗ = мКлиент.НовыеПараметрыЗапроса();
ДП = мКлиент.НовыеДополнительныеПараметры();

мКлиент.ДобавитьПараметр(ПЗ, "lang", "ru")
мКлиент.ДобавитьПараметр(ПЗ, "type", "json");
мКлиент.ТелоОтветаКакJSON(ДП);

Ответ = мКлиент.Получить(Адрес, ПЗ, ДП);

 

Консоль

 

Неосновная, но приятная фича Клиента – Консоль. Инструмент интерактивного выполнения запросов с кодогенерацией.

 

           

 

Обработка КлиентHTTP. Интерфейсом ориентировался на Postman. Сложностей по части UX (кроме багов) возникнуть не должно. В Консоли можно импортировать файл Postman или распарсить команду curl. Получается мощная связка:

  1. Импортируем (Postman или curl)
  2. Получаем код 1С
  3. PROFIT!

 

 

 

 

Результат выполнения запроса со статистикой выполнения

 

История выполненных запросов с возможностью экспорта/импорта

 

Окно редактирования Cookie с примером редактирования текста поля

 

Окно сгенерированного Консолью кода

 

Установка

 

Разрабатывается на платформе 8.3.21.1302

Тестировалось на платформе для мобильных устройств 8.3.18.77

 

Ограничения версии 2:

  • Требуемая минимальная версия платформы 8.3.18

 

Ограничения версии 1:

  • Требуемая минимальная версия платформы 8.3.10
  • Используются синхронные вызовы
  • Не для мобильной платформы

 

HTTP-клиент встраивается в целевую конфигурацию сравнением / объединением. Объединять по подсистеме файла "КлиентHTTP".

Для обычных форм:

  • удостоверьтесь, что в свойствах конфигурации активна опция "Использовать управляемые формы в толстом клиенте и обычном режиме"
  • для общих модулей КлиентHTTPКлиентСервер, КлиентHTTPПовтИсп и КлиентHTTPСлужебный в свойствах установите опцию "Клиент (обычное приложение)"

 

PS

 

С интересом приму помощь в развитии Клиента. Клонируйте репозиторий, создавайте issue, пушьте пул-реквесты, пишите комментарии и главное – пользуйтесь.

Бесплатно Клиент скачать можно тут. А если хотите выразить благодарность в виде SM – с радостью буду за них приобретать на Инфостарте разработки коллег.

Скачать файлы

Наименование Файл Версия Размер
HTTP-клиент:

.cf 147,78Kb
30
.cf 2.2.0 147,78Kb 30 Скачать
HTTP-клиент (обновление):

.cfu 105,61Kb
1
.cfu 2.2.0 105,61Kb 1 Скачать
HTTP-клиент (расширение):

.cfe 138,76Kb
10
.cfe 2.2.0 138,76Kb 10 Скачать
v1 HTTP-клиент:

.cf 106,76Kb
1
.cf 1.8.0 106,76Kb 1 Скачать
v1 HTTP-клиент (обновление):

.cfu 91,63Kb
5
.cfu 1.8.0 91,63Kb 5 Скачать
v1 HTTP-клиент (расширение):

.cfe 105,41Kb
1
.cfe 1.8.0 105,41Kb 1 Скачать

Специальные предложения

Отзывы
45. SpaceOfMyHead 112 26.07.22 15:45 Сейчас в теме
Вышли версии 2.2.0 и 1.8.0

Добавлена возможность переиспользовать HTTP-соединение в последовательных запросах.

Исправлено:
- преобразование пустого тела ответа как JSON или XML возвращает Неопределено
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Segate 177 28.07.21 10:03 Сейчас в теме
Вопрос немного не по теме:
Как передать полученные куки в поле html?
2. SpaceOfMyHead 112 28.07.21 10:20 Сейчас в теме
(1) Получить доступ к Cookie можно так.

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

х = ДП.Сессия.Печенье; // тип Соответствие


либо сделать копию и обратиться к копии:

Копия = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
КлиентHTTPКлиентСервер.СкопироватьПеченье(Копия, ДП);
х = Копия.Сессия.Печенье;
15. Serg O. 205 29.07.21 07:58 Сейчас в теме
(2) куки в сессии, а как ту же самую сессию (не новую, а ту, где куки были), получить?
Или Через нлвый... Вовсе не новый, а старый клиент http?
16. SpaceOfMyHead 112 29.07.21 11:13 Сейчас в теме
(15) "Сессия" – внутренний объект дополнительных параметров. Клиент сам позаботится о сборе и использовании Cookie. Использование сессии добавил в примеры кода.

Если вам потребовалась внутрянка, то просто возьмите сессию со всем содержимым из дополнительных параметров. Я не делал геттеров для внутренностей сессии. Если вы лезете внутрь, то делаете это намеренно.

Однако есть служебная процедура копирования Cookie между дополнительными параметрами выполнения запроса:
КлиентHTTPКлиентСервер.СкопироватьПеченье(ПараметрыПриемник, ПараметрыИсточник)

Пример использования в коде формы Консоли (команда "Выполнить").
3. Segate 177 28.07.21 10:23 Сейчас в теме
(2) а теперь мне нужно передать эти куки в поле html, чтобы получить доступ к данным после авторизации.
4. SpaceOfMyHead 112 28.07.21 10:39 Сейчас в теме
(3) Если вы выполняете запросы к внешним сервисам через Клиент, то система сама подставит куки (при наличии) куда надо (заголовок Cookie) и отправит их. С ответом сервиса вы уже работаете самостоятельно.

Большего сказать не могу, не знаю подробностей вашей ситуации.
27. SpaceOfMyHead 112 12.09.21 11:21 Сейчас в теме
(3) Смотрите.

Любой http-клиент передаёт данные авторизации в заголовках очередного запроса (есть нюансы, а в принципе - так). Cookie - это один из заголовков.

Страница, которую мы видим в браузере, приходит в теле ответа (опять же зачастую) - приходит текстом HTML.

ПолеHTML в платформе как раз для того, чтобы, используя движок браузера, отобразить этот HTML в "человеческом" виде.

Так что ПолеHTML и попытка авторизоваться - разные истории.

И сабж берёт всю эту низкоуровневую возьню с авторизацией на себя под капотом.
29. Segate 177 13.09.21 10:35 Сейчас в теме
(27)
ж берёт всю эту низкоуровневую возьню с авторизацией на себя под капотом


Понимаю, но целевой интернет портал - очень плохо работает с авторизацией, а так же с редиректом после авторизации... и хочется фронтовые запросы на авторизацию проводить самостоятельно... а в поле http уже передать готовую куку полученную при авторизации в другом месте.
Второй вариант - в поле html передавать сначала скрипт для авторизации, а потом уже делать редирект
5. rabid_otter 134 28.07.21 10:47 Сейчас в теме
круто. но зачем, если есть Postman / SoapUI?
6. SpaceOfMyHead 112 28.07.21 10:54 Сейчас в теме
(5)Клиент – это не только консоль, но и библиотека методов для кодинга.
8. rabid_otter 134 28.07.21 11:21 Сейчас в теме
(6) да, видел уже какой-то клиент HTTP-запросов здесь. но мне чего-то не зашло. хорошо, что делаете что-то в этом направлении.
10. SpaceOfMyHead 112 28.07.21 11:44 Сейчас в теме
(8)
не зашло


Какие потребности остались не закрыты?
28. SpaceOfMyHead 112 12.09.21 11:30 Сейчас в теме
(5) Теперь можно импортировать запросы из Postman и транслировать их в код 1С в консоли Клиента!
31. SpaceOfMyHead 112 16.12.21 22:08 Сейчас в теме
(5) Теперь можно скормить Консоли команду curl, и Консоль настроит запрос в соответствии с командой!
34. rabid_otter 134 17.12.21 00:24 Сейчас в теме
(31) ура. вы придумали Insomnia :) но все равно огромный лойс за ваш труд.
35. SpaceOfMyHead 112 17.12.21 14:21 Сейчас в теме
(34)
вы придумали Insomnia


И всё же я настаиваю: Клиент прежде всего про набор методов и удобство их использования. Консоль Клиента (а-ля Insomnia, Postman, SoapUI) - просто жирный плюс к библиотеке методов.
7. vano-ekt 122 28.07.21 11:16 Сейчас в теме
(0) Консоль HTTP запросов (ИР)
9. SpaceOfMyHead 112 28.07.21 11:27 Сейчас в теме
(7) А там можно в форме тела POST передавать файлы? А там Set-Cookie от https:// / распарсятся?

а вы попробуйте этот
12. SpaceOfMyHead 112 28.07.21 12:15 Сейчас в теме
(9) отмодерировали адрес, который возвращает в значении Cookie JSON, что ломает парсинг в ИР (и в Коннекторе). Создатели платформы подкинули проблем, соединив заголовки с одинаковым именем в строку через ','
11. SpaceOfMyHead 112 28.07.21 11:51 Сейчас в теме
(7) Там свои плюсы, здесь свои. Консоль в сабже – приятный бонус к библиотеке методов.
13. Tahallus 430 28.07.21 19:48 Сейчас в теме
14. SpaceOfMyHead 112 28.07.21 20:02 Сейчас в теме
(13) Не буду я здесь критиковать работу коллег.

В Клиенте собран мой опыт работы в 1С с внешними сервисами. Здесь есть фичи, которых нет в других работах (или они реализованы по другому). И да, Коннектор имеет фичи, которые отсутствуют в Клиенте.
mvxyz; Evg-Lylyk; mihap; +3 Ответить
17. dctvghbdtn 29.07.21 13:56 Сейчас в теме
18. SpaceOfMyHead 112 29.07.21 14:16 Сейчас в теме
(17) Судя по переписке... Вам сервер вернул 200 и в заголовках нет Location (перепроверьте наличие этого заголовка). Значит для вас как для клиента никаких редиректов нет. И это не ваше дело как клиента, куда там ходит и что делает сервер, чтобы выдать вам ответ, ни технически, ни идеологически. Вы "знаете" только то, что вам вернулось в ответе.
21. dctvghbdtn 29.07.21 14:46 Сейчас в теме
(18) Логика ваша понятна. Интересен концепт в принципе обработки таких запросов.
Эта ситуация адекватно отрабатывается браузером, т.е. я увижу и свой post удаленному серверу и увижу редирект (как отрисованная "новая" страница). Т.е. связь (соединение) между клиентом и сервером сохранилась. Но в моем случае получается контекст соединения теряется в принципе.
22. SpaceOfMyHead 112 29.07.21 14:58 Сейчас в теме
(21) Нужны подробности. Адрес обращения, параметры, заголовки, порт, прокси...
19. malikov_pro 1222 29.07.21 14:29 Сейчас в теме
Чем не устроил?
https://github.com/vbondarevsky/Connector

Статья
https://infostart.ru/public/709325/

С телом запроса иногда траблы (прекос по параметрам), в остальном норм.
33. SpaceOfMyHead 112 16.12.21 22:24 Сейчас в теме
(19) Понять разницу можно попробовав оба: Connector и Клиент. Если проникнитесь симпатией к клиенту буду рад пул-реквестам в проекте гитхаба.
20. malikov_pro 1222 29.07.21 14:31 Сейчас в теме
Если интересна тема унификации HTTP, то посмотрите https://github.com/gothinkster/realworld, будет желание реализовать - пишите, выделю время.
32. SpaceOfMyHead 112 16.12.21 22:14 Сейчас в теме
(20) Проект по ссылке - полигон тестирования коммуникации бек <-> фронт. Клиент о другом. Как его встроить в Conduit?
23. user1346935 29.07.21 15:07 Сейчас в теме
24. SpaceOfMyHead 112 03.08.21 11:08 Сейчас в теме
Вышло исправление. Исправил выполнение POST multipart (в ранних версиях не работает совсем)
25. SpaceOfMyHead 112 13.08.21 11:13 Сейчас в теме
Вышло обновление 1.1.0

Добавил кодогенерацию интерактивно настроенного запроса в Консоли.
Появился доступ к дополнительным настройкам выполнения запроса.
26. SpaceOfMyHead 112 12.09.21 10:24 Сейчас в теме
Вышло обновление 1.2.0

Добавил импорт из Postman (формат файла 2.1).

Смотрите какая штука теперь возможна. Вы (или ваш коллега из web) накидали запрос в Postman; экспортировали его... А теперь импортировали его в консоли Клиента и там же сгенерировать код 1С. PROFIT!

Ещё появилась Bearer-авторизация.
30. SpaceOfMyHead 112 16.12.21 16:41 Сейчас в теме
Вышло обновление 1.3.0

Появились:
- импорт команды curl;
- отправка тела типа application/x-www-form-urlencoded.

Теперь имеем мощную связку действий в Консоли:
- импортируем (Postman или curl)
- получаем код 1С
- PROFIT!

Улучшения:
- оптимизирован вывод текстовых данных большого размера;
- добавлены форматы отображения данных тела ответа: JSON, HTML и картинка;
- в разделе "Ответ" добавлена статистика выполнения запроса (время выполнения и размер данных).

Отрефакторил внутренний код для соответствия стандартам 1С.
36. SpaceOfMyHead 112 20.12.21 18:56 Сейчас в теме
(30) Вышло обновление 1.3.1

Исправлено:
- расчёт размера тела ответа
- отображение тела ответа в форматах JSON и HTML
37. SpaceOfMyHead 112 27.02.22 22:19 Сейчас в теме
Вышла версия 1.4.0

Новое

В качестве идентификатора ресурса можно передавать структуру, полученную конструктором ОбъектИдентификатораРесурса(...)
В Консоли добавлен построитель URL

Появилась возможность задавать формат преобразования тела ответа из двоичных данных (в текст и JSON)

Добавлен метод настройки прокси для выполнения запроса и импорт прокси из curl в Консоли

У подсистемы КлиентHTTP появилась картинка

Исправления:
- значение Content-Disposition заголовка поля формы multipart/form-data
- кодогенерация в Консоли не делает перенос строки для единственного метода текучего интерфейса
- при запуске Консоли по умолчанию выключено использование сессии и сжатого ответа
38. teploukhov 7 08.04.22 13:57 Сейчас в теме
Давно пользуюсь коннектором Бондаревского. Посмотрел Вашу библиотеку. Красиво написано, ничего не скажешь. Придется, наверное, внедрять.
39. SpaceOfMyHead 112 15.04.22 15:24 Сейчас в теме
(38) Спасибо. Проект развивается. Есть идеи, которые будут реализовываться в следующих версиях. За процессом реализации можно следить на странице проектов GitHub (сейчас v 1).

Напоминаю, в развитии проекта можно поучаствовать, отправляя pull-request'ы в github репозиторий Клиента.
40. SpaceOfMyHead 112 26.04.22 15:53 Сейчас в теме
Вышла версия 1.5.0

Новое

Появилась возможность задавать формат преобразования тела ответа из двоичных данных в тип XDTO

Консоль позволяет выполнять запрос в контексте клиента и сервера

Документация

Примеры использования

Доска проекта

Исправления:
- использование настройки защищённого соединения из конфигурации запроса
41. SpaceOfMyHead 112 18.05.22 13:00 Сейчас в теме
Вышло исправление 1.5.2

Исправления:
- получение кодировки из заголовка ответа Content-Type
- сохранение Cookie в конфигурацию запроса

P.S. первые правки по обращениям от пользователя библиотеки!
42. SpaceOfMyHead 112 15.06.22 18:16 Сейчас в теме
Вышла версия 1.6.0

Новое

Добавлена возможность выполнять PATCH-запрос

Появилась история выполненных запросов

Изменён дизайн настроек Консоли

Исправления:
- кодирование содержимого полей HTML-формы в теле запроса
- выполнение HEAD-запроса в Консоли
- минорные исправления

Переключаюсь на разработку 2й версии, где упор будет сделан на асинхронность и мобильное приложение. Буду благодарен помощи как словом, так и делом.
it_depDi; +1 Ответить
43. SpaceOfMyHead 112 18.06.22 23:46 Сейчас в теме
Вышла версия 2.0.0

Отключен режим использования синхронных вызовов

Добавлена возможность вызова экспортных процедур и функций для внешнего соединения

Минимальная требуемая версия платформы: 8.3.18


Для версии 1 сделано обновление (1.7.0):
- добавлена возможность вызова экспортных процедур и функций для внешнего соединения
- исправлено отображение в Консоли картинки при сохранении тела ответа в файл
44. SpaceOfMyHead 112 27.06.22 23:59 Сейчас в теме
Вышла версия 2.1.0

Библиотека доступна для использования в приложении на мобильной платформе:
- мобильный клиент (+автономный)
- мобильное приложение

Добавлен интерфейс Консоли для работы на мобильном устройстве
45. SpaceOfMyHead 112 26.07.22 15:45 Сейчас в теме
Вышли версии 2.2.0 и 1.8.0

Добавлена возможность переиспользовать HTTP-соединение в последовательных запросах.

Исправлено:
- преобразование пустого тела ответа как JSON или XML возвращает Неопределено
46. sojuznik 23 30.09.22 13:08 Сейчас в теме
Спасибо! Как раз задача нарисовалась: нужно было с сайтом поработать, а раньше этим не занимался. С помощью вашего механизма все вопросы решил довольно быстро.
47. vovast 10.02.23 17:28 Сейчас в теме
Добавлена возможность переиспользовать HTTP-соединение в последовательных запросах.


А с обратной задачей не сталкивались? Как прибить соединение, созданное ранее через HTTPСоединение?
48. SpaceOfMyHead 112 11.02.23 17:46 Сейчас в теме
(47) Уточню. По умолчанию переиспользования соединения не происходит - для каждого запроса создаётся новый объект HTTPСоединение.

Другой случай. Сконфигурировали с переиспользованием:

КлиентHTTPКлиентСервер.ПереиспользоватьСоединение(ДП);


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

КлиентHTTPКлиентСервер.ПереиспользоватьСоединение(ДП, Ложь);


Если требуется "сменить" объект HTTPСоединение перед очередной серией запросов (этот кейс описан в статье), перед их выполнением должен быть ещё один вызов конфигурирования:

КлиентHTTPКлиентСервер.ПереиспользоватьСоединение(ДП);
Оставьте свое сообщение

См. также

IDN и Punycode в 1С

Универсальные функции Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка "Punycode конвертер".

1 стартмани

01.05.2022    2680    2    SpaceOfMyHead    2    

7

Функции "слоупока": как заставить открываться "Все функции" в 97 раз быстрее!

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Наверное, каждый программист 1С (да и не только программист), открывая «Функции для технического специалиста» (ранее «Все функции») на массивных конфигурациях вроде ERP 2.4 и т.п., в своей жизни много раз задавался вопросом – почему же они так долго открываются?? Действительно, в зависимости от мощностей сервера «Все функции» могут открываться от 20 секунд до 2 минут! «Ну, слишком много объектов в конфигурации, огромное количество констант, справочников, документов, регистров… – Отвечали себе страдающие пользователи. – Пока программа обойдёт в цикле все метаданные, пока построит дерево… Тут ничего не поделаешь…». И все они были не правы! Я провёл собственное расследование, которое показало, что 97% времени построения дерева метаданных тратится на…

1 стартмани

09.03.2022    19924    75    XilDen    76    

229

Программное формирование существующих печатных форм

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Получение списка печатных форм, формирование выбранной печатной формы и сохранение ее в файл.

1 стартмани

17.12.2021    9870    27    RocKeR_13    5    

38

Универсальный редактор данных (УРД)

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Универсальный редактор данных (УРД) - это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

1 стартмани

27.08.2021    14213    202    Adeptus    57    

91

Подсистема "Показатели объектов"

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Если вашим пользователям нужно вывести в динамический список разные показатели, которые нельзя напрямую получить из таблиц ссылочных объектов, и вы не хотите изменять структуру справочников или документов - тогда эта подсистема для вас. С помощью нее вы сможете в пользовательском режиме создать свой показатель, который будет рассчитываться по формуле или с помощью запроса. Этот показатель вы сможете вывести в динамический список, как любую другую характеристику объекта. Также можно будет настроить отбор или условное оформление с использованием созданного показателя.

2 стартмани

06.03.2021    13283    7    pila86    16    

29

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    17877    30    huxuxuya    11    

36

А1Э - альтернативная стандартная библиотека для 1С

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

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

14.08.2020    20975    0    Enigma    47    

174

Проверка ведения учета (универсальная)

Инструментарий разработчика Анализ учета Платформа 1С v8.3 Запросы Абонемент ($m)

Универсальная проверка ведения учета, построенная на запросах. Выполнена в виде расширения, имеет функции подключения к другим информационным базам по технологии внешних соединений и отладчик, поддерживает конструктор запросов. Предназначена для использования как информационно-техническими специалистами, так и для самостоятельного использования конечными пользователями.

2 стартмани

11.08.2020    10209    58    vozhd    4    

19

Консоль кода для управляемых форм

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Консоль кода для управляемых форм с подсказками и подсветкой синтаксиса.

1 стартмани

17.07.2020    42684    582    salexdv    423    

326

Внешний регламент для 1С

Инструментарий разработчика Платформа 1С v8.3 Россия Абонемент ($m)

Внешний регламент сделан для тех, кто ценит свое время и время заказчика. После одноразового встраивания в конфигурацию, внешний регламент на лету позволяет добавлять, изменять внешние модули, которые могут выполнятся как регламентные задачи с указанным интервалом или запускаться в ручном режиме для отладки. Все модули (внешние обработки) находятся и выполняются на стороне сервера, что позволяет исключить подмену алгоритмов со стороны клиента.

1 стартмани

05.03.2020    15753    14    moolex    12    

15

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

В курсе обобщен опыт работы аналитика на проектах в течение пяти лет, в нескольких фирмах. Подходы к написанию документов унифицированы и по возможности не привязаны к конфигурациям 1С.

3 500 рублей

Консоль запросов 9000

Инструментарий разработчика Платформа 1С v8.3 Запросы Конфигурации 1cv8 Абонемент ($m)

Простая и удобная консоль запросов 1С для управляемых форм 8.3, работает на любой конфигурации без ее модификации. Возможность использования как внешней обработки или в составе расширения. С перехватом любых запросов и поддержкой всех типов данных во временных таблицах. Анализ плана запроса, запроса на уровне СУБД. Обработка результата кодом.

1 стартмани

24.02.2020    41616    663    kuza2000    167    

174

Конвейер проверки качества кода

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    50437    35    Stepa86    46    

220

Модель объекта

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    23283    2    vadim1980    5    

16

CFU & CFE - reader (версия 3.1).

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для анализа файлов обновлений (.cfu) и расширений (.cfe) в режиме предприятия в любой конфигурации для 1С 8.3.+. Основана на разработке https://infostart.ru/public/97194/.

2 стартмани

21.06.2019    15667    43    vandalsvq    12    

27

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    51690    12    ripreal1    92    

182

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

13.05.2019    50195    199    Diversus    44    

278

Блин, мы забыли включить регламентные задания…

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Привет, Инфостарт! Сегодня расскажу, как я решил проблему с выключенными регламентными заданиями в рабочих базах. Желая исключить человеческий фактор и минимизировать количество ошибок, я написал небольшую конфигурацию.  В конфигурации два регламентных задания. Первое периодически подключается к кластеру и сохраняет текущие параметры: имя, Сервер БД, базу СУДБ, блокировки входа и регламентных заданий и т.д. Второе задание периодически проверяет эти параметры на ошибки.

1 стартмани

08.04.2019    33244    22    slozhenikin_com    37    

61

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Бухгалтерский учет Управленческий учет Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    75483    286    informa1555    246    

206

Легкое и гибкое управление списком доступных баз 1С у пользователей

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

7 стартмани

05.12.2018    29016    29    RomikR    11    

17

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    66430    640    Eugen-S    36    

50

Навигатор по конфигурации базы 1С 8.3

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.93 от 12.03.2023

3 стартмани

28.10.2018    57319    518    ROL32    72    

182

Консоль Внедренца v.3.6.2

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Идея данной обработки заключается в создании простого, функционального и универсального инструментария для внедренцев и программистов 1С, который будет работать как в толстом клиенте на обычных и на управляемых формах, так и в тонком клиенте. Интерфейс и логика работы максимально идентичны у обычных форм и управляемых. Инструментарий включает в себя: Консоль кода, Консоль запросов, Консоль отчетов (СКД), Универсальную обработку объектов, Средства для работы с таблицами базы данных 1С, Редактирование регистров сведений базы, Инструмент по работе с табличными документами - загрузка данных из табличного документа.

1 стартмани

27.08.2018    52239    520    evvakra    42    

181

HTTP Сервисы: Путь к своему сервису. Часть 3

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    75734    96    dsdred    17    

180

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

5 стартмани

14.08.2018    154592    3482    Evg-Lylyk    800    

619

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    44836    35    informa1555    30    

77

Консоль HTTP-запросов с генерацией кода

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Консоль HTTP-запросов, которая не только выполняет запросы и получает результат их выполнения, но и генерирует необходимый код. Использую на 8.3.11.2899.

1 стартмани

25.05.2018    42788    397    leongl    20    

198

Регистры правил [Расширение]

Инструментарий разработчика Платформа 1С v8.3 Управление правами 1С:Управление торговлей 11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    30941    33    33lab    5    

18

Заполняем по шаблону (по умолчанию)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Простой в подключении, универсальный и достаточно удобный механизм заполнения реквизитов произвольных документов/справочников значениями по умолчанию. Реализован в расширении, но может быть и непосредственно включен практически в любую конфигурацию на управляемых формах простым копированием одной формы и двух команд. Весь код в статье.

1 стартмани

08.02.2018    42572    25    mvxyz    17    

79

Паузы при исполнении кода (Sleep для 1С)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

28.11.2017    97064    23    swimdog    57    

181

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Программное формирование форматированной строки в стиле html+inline CSS

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    56374    59    bonv    13    

74

Быстрое удаление неиспользуемых версий 1С:Предприятие 8, кэша метаданных и информационных баз

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

При обновлении платформы 1С:Предприятие 8 предыдущие версии не удаляются. Со временем количество неиспользуемых версий платформы растет. Они занимают место на диске. Для решения этой проблемы предназначена программа OneCleaner. Она позволяет быстро удалить неиспользуемые версии платформы, а также почистить кэш метаданных и удалить ненужные информационные базы данных.

1 стартмани

14.11.2017    37470    106    bonv    15    

48

DataReducer — R-консоль для «1С:Предприятия»

Инструментарий разработчика Платформа 1С v8.3 Анализ и прогнозирование Абонемент ($m)

Программа для обработки, анализа и визуализации данных информационных баз «1С:Предприятия» с использованием возможностей языка программирования R.

10 стартмани

10.07.2017    31361    3    DataReducer    13    

47

Трансформатор 1С - SQL

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка для представления SQL запросов в терминах 1С, с возможностью захвата SQL запросов трассировкой.  Поддерживается также форматирование текста запроса через интернет сервис. Работает в управляемых и обычных формах, в том числе на веб-клиенте.

1 стартмани

28.06.2017    52785    442    Synoecium    54    

249

Набор подсистем "Умные таблицы"

Инструментарий разработчика Платформа 1С v8.3 Беларусь Россия Казахстан Абонемент ($m)

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    46941    119    Silenser    34    

75

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Автокликер для 1С

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Внешняя обработка, запускаемая в обычном (неуправляемом) режиме для автоматизации действий пользователя (кликер). ActiveX компонента, используемая в обработке, получает события от клавиатуры и мыши по всей области экрана в любом приложении и транслирует их в 1С, получает информацию о процессах, текущем активном приложении, выбранном языке в текущем приложении, умеет сохранять снимки произвольной области экрана, активных окон, буфера обмена, а также, в режиме воспроизведения умеет активировать описанные выше события. Все методы и свойства компоненты доступны при непосредственной интеграции в 1С. Примеры обращения к компоненте представлены в открытом коде обработки.

1 стартмани

03.04.2017    45246    87    slava_1c    67    

74

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Предлагается к использованию построитель регулярных выражений. Выполненный в виде внешней обработки, он позволит строить сложно-структурированные выражения на основе параметрического описания, тестировать их, и в результате получить программный код 1С.

1 стартмани

13.03.2017    50093    138    romasna    54    

208

Сценарное тестирование в помощь программисту 1С

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Альтернативное решение для организации сценарного тестирования конфигураций, разработанных на управляемых формах

1 стартмани

11.11.2016    38243    62    grumagargler    62    

193

Несколько шаблонов для доработки типовых конфигураций

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Абонемент ($m)

Предлагаю несколько каркасов для создания новых объектов в типовых конфигурациях. Это выжимка из кода нескольких конфигураций, которая позволит быстро и красиво создавать и дорабатывать объекты метаданных с соблюдением идеологии исходной системы

1 стартмани

03.10.2016    50649    107    json    26    

196

Конструктор-тестер http запросов в 1С

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Данная обработка позволяет в несколько кликов конструировать http запросы на языке 1С и просматривать результаты их выполнения.

3 стартмани

19.08.2016    56794    343    hlopik    19    

227