HTTP-сервисы для тех, кто ничего не понимает в WEB

Публикация № 516810

Разработка - Системная интеграция - Интеграция с WEB

http

Если вы ничего не понимаете в WEB технологиях и такие слова, как json, get, post и прочее для вас ничего не значат и вы просто заядлый 1С-ник до мозга костей, но вам кровь из носу надо подружить 1С со сторонними приложениями или сайтом, то эта статья для вас

Начну с того, что когда-то я был вынужден самостоятельно разбираться с Web-сервисами. Тогда как-то потихоньку мне удалось освоить это дело и понять, что и куда надо нажать, чтобы все заработало. Благо конфигурация, с которой пришлось работать, уже была напичкана Web-сервисами и можно было подглядеть и сделать по аналогии, а также в интернете мне удалось найти достаточно статей по этому делу. И так, на примерах (для меня это лучший способ изучения), я освоил это дело, и теперь меня они уже не пугают.

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

ИТАК. Основной задачей любой интеграции, будь то КД, Web-сервисы или HTTP-сервисы, является что-нибудь откуда-нибудь передать, что-нибудь с этим сделать и вернуть ответ. Вот в таком формате мы и рассмотрим новую технологию.

В дереве метаданных HTTP-сервисы располагаются в ветке Общие: 

Добавляется новый HTTP-сервис точно так же, как и любой другой объект метаданных. Имя и синоним как хотите. Тут важен только "Корневой URL" - это, собственно, и есть идентификатор HTTP-сервиса в данной базе, т.е. именно то, что вы напишете в этом свойстве, вы передадите стороннему разработчику (ну или себе) в качестве ссылки на сервис.

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

Дальше переходим на закладку Шаблоны URL и добавляем новый шаблон.

Тут важно само свойство Шаблон:

С помощью шаблона вы впоследствии сможете обратить к тем данным, которые вам передали. ИТАК: все данные, которые вы хотите получить извне, можно разделить на 2 блока - обязательные и не обязательные.

Обязательные данные/параметры запихиваем в шаблон, тем самым если тот, кто обращается к сервису, их не заполнил, то сервис априори выдаст ошибку, а вы при разработке текста модуля обработчика будете уверены, что эти данные есть. Как это делается: в строке Шаблон в фигурных скобках "{}", чередуя с со знаком "/", пишем имена переменных. Например, нам обязательно нужен артикул - тогда пишем /{artikul}. Если нам надо получить артикул, имя и имя пользователя, строка шаблона будет выглядеть так: /{artikul}/{name}/{user} и т.д. Каждый из таких параметров в тексте модуля обработчика можно будет получить так: Запрос.ПараметрыURL["<имя параметра>"]. Если обязательных нет, то шаблон выглядит так: /*.

Не обязательные данные, которые мы хотим получать через сервис, в шаблоне НЕ описываются. При построении ссылки, для обращения к сервису они описываются в конце ссылки после знака "?", разделяются символом амперсанда "&" и имеют структуру <имя параметра>=<значение параметра>. В тексте модуля обработчика к ним можно обратиться конструкцией: Запрос.ПараметрыЗапроса.Получить("<имя параметра>"). НО: важно помнить, раз они не обязательны, то их может и не быть, соответственно значение проверяем на Неопределено.

Далее добавляем новый метод для нашего шаблона. Тут важно свойство HTTP-метод. Их тут огромное количество, НО мы не будем вдаваться во все тонкости. Для реализации любой вашей задачи вам нужны только 2: GET и POST.

Как выбрать: Если того, что мы с вами описали в двух предыдущих абзацах, для работы вам достаточно, т.е. все нужные вам данные вы сможете получить с помощью обязательных и не обязательных параметров самого запроса, то берем GET. В этом случае в любом браузере, если вы правильно введете адресную строку, вы увидите результат действия своего HTTP-сервиса - ПРОФИТ! Если вдруг для работы вашего сервиса нужны данные в более сложном виде (xml например, или еще чего), то, что нельзя запихнуть в простую адресную строку, то берем POST. Из минусов такая легкая проверка через адресную строку браузера, как с GET, не прокатит, но на просторах интернета легко можно найти какие-нибудь сайты, на которых можно проверить сервисы методом POST (например, сайт https://www.hurl.it). В случае, если выбран метод POST, то у запроса помимо URL (адреса) появляется тело, в которое можно запихнуть все, что угодно, а в обработчике метода обратиться к нему через конструкцию Запрос.ПолучитьТелоКакСтроку(). У любого шаблона может быть как GET метод, так и POST. У них будут соответственно разные обработчики, а 1С-ка в зависимости от того, как был отправлен запрос, будет выбирать тот или иной метод.

Обработчик HTTP-сервиса - это функция, которая всегда возвращает значение типа HTTPСервисОтвет, который строится конструктором Новый HTTPСервисОтвет(<КодСостояния>). <КодСостояния> - это число, чтобы не мучаться с выбором что писать, пишем: 200 - если все хорошо и вы возвращаете какое то логичное значение, 400 - если ошибка и вы возврщаете описание ошибки. У данного типа есть различные методы (можно почитать в синтакс помошнике, там все понятно написано). Опять же, всегда можно вернуть все что нужно в виде строки - метод УстановитьТелоИзСтроки(). (одна небольшая хитрость: если вы возвращаете html и хотите чтобы браузер при вводе в адресную строку адреса вашего сервиса на экране красиво отобразил его, в свойстве ответ Заголовки напишите: Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8") - тем самым вы укажите, что это не просто набор символов, а HTML и его надо показать соответствующе)

После того как вы все сделаете, HTTP-сервис надо опубликовать. Делается это на компьютере с установленным веб-сервером (про настройки писать не буду, есть полно статей) через меню:

Администрирование - Публикация на веб сервере.

Там закладка HTTP-сервисы. Ставим галки и нажимаем "Опубликовать"

Итак, мы получили готовый HTTP-сервис. КАК к нему обратиться? Если у нас используется метод GET то в адресной строке браузера пишем: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2>?<имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2>=<значение не обязательного параметра 2>.

Ну и, наконец, еще раз в картинках))):

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. TitanLuchs 243 21.04.16 19:57 Сейчас в теме
"404 - если ошибка и вы возврщаете описание ошибки."
404 - "это страница не найдена". Если http-сервис возвращает ответ, то страница по указанному URL уже однозначно найдена, запрос по этому URL обработан, но в процессе обработки алгоритм пришел к выводу, что параметры в URL указаны неверно (а иначе не было бы ошибки). Так что тут логичнее отправлять 400 или 500. Так отправитель запроса хотя бы поймет, что он указал правильный базовый URL.
https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D­0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%­D0%B8%D1%8F_HTTP
POWone; jobkostya1c8; YAGolova; +3 Ответить
6. YAGolova 478 22.04.16 15:45 Сейчас в теме
(1) TitanLuchs, Спасибо за уточнение и ссылочку, поправлю)
2. sasha777666 299 22.04.16 02:31 Сейчас в теме
Отличная статья, была бы она год назад.....
3. Makushimo 155 22.04.16 06:06 Сейчас в теме
Лучше поздно, чем никогда.
Все понятно.
Спасибо!
4. SGordon1 22.04.16 14:52 Сейчас в теме
По аутентификации подскажите, под каким пользователем это должно работать, концепция так сказать какая должна быть?
5. YAGolova 478 22.04.16 15:44 Сейчас в теме
(4) SGordon1, Служба сервера Предприятия 1с запускается от имени какого-то пользователя Windows, в базе 1С заводим пользователя и устанавливаем у него аутентификацию операционной системы и связываем с тем пользователем, от имени которого запускается сервер предприятия
Taxes; SGordon1; +2 Ответить
17. SGordon1 04.05.16 16:36 Сейчас в теме
(5) Про аутентификацию - еще варианты имеются, а то у нас Служба сервера Предприятия 1с запускается с системной учетной записью на соседнем сервере и как бы трогать ее не хочется... А нельзя заставить пул приложений IIS аутентифицироваться?
21. CodeNull 01.06.16 10:38 Сейчас в теме
(5) что это даст? http-сервис станет доступен без авторизации и методы всегда будут выполняться под одним пользователем 1С?

Добавлю, что по-умолчанию 1С запрашивает стандартную Basic авторизацию в форму которой вводим логин и пароль пользователя 1С. В браузере FireFox есть проблема с авторизацией, если логин или пароль имеют русские буквы.
50. androgin 27.03.18 19:58 Сейчас в теме
(5) Пример: 4 роли в базе подключаются через http-сервис.
Если все они будут подключаться через системного пользователя - будет бардак (всем будут доступны одни и те же данные)!
Подключаться нужно под учетками пользователей 1С с учетом их ролей.
7. skif47 323 22.04.16 16:11 Сейчас в теме
Спасибо, ты помог мне сэкономить кучу времени!
8. Steelvan 23.04.16 10:18 Сейчас в теме
Чем табличку генерировали для примера ?
9. Xershi 958 23.04.16 10:27 Сейчас в теме
Если я умею пользоваться веб сервисом, то для чего мне нужен ашттп?
11. TitanLuchs 243 23.04.16 14:49 Сейчас в теме
(9) Xershi, http-сервисы быстрее
10. starik-2005 2154 23.04.16 10:40 Сейчас в теме
Хорошая статья. Дергать HTTP-сервисы можно с помощью простого расширения к гугл-хрому "Бумеранг" - и не надо никаких сторонних сайтов. Единственное, чего мне лично не хватает в статье - это содержимого файла default.vrd. Можете опубликовать, а то в Linux-системах 1С по-умолчанию публикует только саму базу без сервисов (из командной строки если это делать).
12. TitanLuchs 243 23.04.16 14:50 Сейчас в теме
(10) starik-2005, http можно и просто из строки адреса браузера дергать посредством get-запросов.
13. starik-2005 2154 23.04.16 17:23 Сейчас в теме
(12) TitanLuchs, GET - да, а POST - нет.
14. TitanLuchs 243 23.04.16 21:24 Сейчас в теме
(13) starik-2005, в общем-то так я и написал. Но в 99.9% случаев достаточно get и строки адреса браузера.
15. starik-2005 2154 23.04.16 22:29 Сейчас в теме
(14) TitanLuchs, у разных людей разные случаи. Я вот, например, при интеграции маленькими пакетами не обмениваюсь - стараюсь сначала все подготовить, потом одним пакетом данные передать. А тут уже, сами понимаете, никаких GET. Да и вообще о запросах в цикле давно сказано, что глупости это ))
16. CSiER 29 25.04.16 06:24 Сейчас в теме
(10) starik-2005, мне вот это расширение очень понравилось - https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo. Также Fiddler классная вещь - умеет и httpS проксировать через подмену сертификата, бесплатен, много статистики по запросам, можно формировать post и т.д.
18. Makushimo 155 27.05.16 10:16 Сейчас в теме
А расходует ли http-сервис лицензионный ключ 1С?
и каким образом?
19. Evil Beaver 6705 27.05.16 10:28 Сейчас в теме
(18) Makushimo, расходует. Один вызов = один сеанс, со всеми вытекающими.
20. starik-2005 2154 27.05.16 21:00 Сейчас в теме
(19) Evil Beaver, в веб-сервисах (SOAP) тоже сеанс стартует, но лицензию не жрет.
23. bonv 1048 03.06.16 12:06 Сейчас в теме
(19) Evil Beaver, для сервисов (HTTP, SOAP) это правило не работает. Технически клиентские лицензии не требуются. Юридически - нужно столько клиентских лицензии сколько одновременно запущенно сеансов.
30. Makushimo 155 22.03.17 05:26 Сейчас в теме
(19) я поэкспериментировал с лицензиями, оказалось одно соединение = 1 лицензия.
со страницы html за разными ресурсами было сделано примерно 15 запросов. Это я считал, сколько раз в обработчике метода НТТР-сервиса сработает точка останова. Но при этом набрав 5 соединений, дальнейший рост их прекратился.
Это я к тому что не 15 лицензий сожрало, а всего 5.
Лицензии съедает веб сервер, который принимает запросы. Он открывает соединение и через него уже открывает сеансы для обращения к базе.

Или я чего-то не того нагородил?
31. CSiER 29 22.03.17 10:33 Сейчас в теме
(30), возможно, что использовались уже существующие соединения из пула ( https://its.1c.ru/db/v8doc#content:26:1:issogl2_3.12.2.элементpool ) - то есть 5 существующих соединений обработали 15 запросов (поэтому и лицензий ушло 5).
22. sudmorsh 55 01.06.16 16:50 Сейчас в теме
Спасибо, ты помог мне сэкономить кучу времени и сил
24. serko8547 98 26.08.16 17:13 Сейчас в теме
Ув. Автор, прошу Вас поделиться опытом:
Я начал использовать http-сервисами недавно, и напоролся на такую проблему: Если в 1с завести пользователя - то мне ответ на любой Get или post запрос приходит Ошибка 401 (не авторизован). Как быть?
Был бы Вам очень благодарен, если Вы подскажете, как решить сию проблему )

авторизация в смысле запросом логина-пароли - программно, т.е. я не ручками ввожу логин-пароль, а как мне авторизоваться программно.
25. megaster 49 14.11.16 10:51 Сейчас в теме
Спасибо автору! Прочитав статью - все стало предельно ясно и сразу запустил http сервис... до этого ерунда какая-то получалась
26. Prisian 31.01.17 09:48 Сейчас в теме
Спасибо за статью! В ней более понятно описано как использовать параметры. Еще бы хотелось увидеть как программно, без запроса у пользователя, авторизоваться в 1С. Чтобы сайт сам, автоматически, подключался к 1С под определенным пользователем, без запроса данных.
27. Rudakov_D 21.03.17 11:50 Сейчас в теме
Спасибо автору, только вот вопрос как через HTTP-сервисы отправлять и получать картинки ?
28. starik-2005 2154 21.03.17 12:36 Сейчас в теме
(27)
отправлять и получать картинки
Берете картинку и кодируете ее в base64, помещаете в тело (или в XML, который помещаете в тело) и отправляете. Ну и обратно - из тела берете base64 (или из XML), после чего декодируете и используете по назначению (или даже не по назначению).
29. Cyberhawk 118 21.03.17 21:15 Сейчас в теме
Благодарю, упоминание в статье указания в заголовке контент-типа "text/html" помогло возвращать картинки из базы 1С в виде готовой картинки в браузере
32. V.Stavinsky 226 22.03.17 12:02 Сейчас в теме
Спасибо, хорошая статья :)
33. Afanasyev.sv@mail.ru 26.04.17 16:34 Сейчас в теме
Спасибо за статью.

Понравились фразы вида:
"(для простого тупого 1С-ника)"
"чтобы вас в прогрессивном мире не засмеяли"
34. system-3000 20.05.17 15:34 Сейчас в теме
35. Yashazz 3202 28.05.17 11:57 Сейчас в теме
Хорошая статья. Всё понятно с первого раза. Ничего лишнего, всё по делу, внятно, лаконично, без популизма и "воды". Спасибо!
36. dimasts 22 08.07.17 11:32 Сейчас в теме
Как всё-таки без запроса авторизации заставить его работать? Чтобы можно было по ссылке обращаться и получать ответ.
37. CSiER 29 09.07.17 13:13 Сейчас в теме
(36)
Как всё-таки без запроса авторизации заставить его работать? Чтобы можно было по ссылке обращаться и получать отве

на время тестирования можно добавить реквизиты прямо в URL (для примера из статьи):
http://LOGIN:PASSWORD@localhost/GolovaNews/hs/СтатусыЗаказов/hrc225
другой вариант - настройка web-сервера.
38. dimasts 22 09.07.17 15:25 Сейчас в теме
(37)Причина в типе метода который я выбрал. Там по умолчанию GET стоял, а надо ставить POST, а ещё лучше любой, чтобы понять, какие запросы вообще приходят.
39. dimasts 22 09.07.17 15:27 Сейчас в теме
(37)За строку авторизации спасибо, долго искал этот шаблон – не знал как сформулировать поисковику мою потребность.
45. grin_64 36 07.12.17 08:20 Сейчас в теме
47. CSiER 29 07.12.17 13:47 Сейчас в теме
(45), просьба раскрыть комментарий подробнее (я про Excel вообще ничего не писал).
48. grin_64 36 07.12.17 17:33 Сейчас в теме
(47)Создал http-сервис. Из Excel отправляется GET запрос в 1С, возвращается JSON-ответ, парсится и т.д.
Если Excel 2010, то все в порядке, но начиная с 2013 на строке ".Open "GET", sURL, False" Excel останавливается по ошибке
Если убрать LOGIN:PASSWORD@, то открывается окно авторизации с логином и паролем 1С, что не очень гуд. Может, есть еще варианты?
Public Function GetHTTPResponse(ByVal sURL As String) As String
Dim oXMLHTTP
On Error Resume Next
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
.Open "GET", sURL, False
.setRequestHeader "Cache-Control", "no-store, no-cache"
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.41 Safari/537.36 OPR/35.0.2066.10 (Edition beta)"
.setRequestHeader "Accept-Encoding", "deflate"
.setRequestHeader "Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4"
.send
GetHTTPResponse = .ResponseText
End With
Set oXMLHTTP = Nothing
End Function
49. CSiER 29 12.12.17 15:58 Сейчас в теме
(48), как вариант - попробуйте установить fiddler, выполнить сценарий в обеих версиях Excel и сравнить результаты запросов в fiddler. Про формат URL можно посмотреть на вики.
53. ZloyProger 7 19.06.19 17:04 Сейчас в теме
(37) Доброго времени суток, Коллега. Извиняюсь за некропостинг, но по поводу авторизации уточнить хотел - имеем дефолтно (в принципе особо ничего не химичил с настройками, поставил и всё, виндовс-аутентификацию и прочее не трогал) настроенный IIS, создал в конфигурации http-сервис Test, у него задал шаблон url для описания своих обязательных параметров и добавил метод Get (обработчик метода созданный конструктором не менял, т.е. там просто возврат 200 кода по умолчанию, чтобы я ни передал), опубликовал всё, пытаюсь в строке браузера писать http://www:123@localhost/demo_buh/hs/Test/пар1/пар2/пар3/пар4 (www - пользователь базы с адм. правами, 123 - соответственно пароль) и получаю 404 ошибку что ничего не найдено... Просто http://localhost/demo_buh работает, открывает аутентификацию пользователя и после ввода пароля открывает базу. Собственно ЧЯДНТ? Должно ли в каталоге веб-публикации на диске появится что-либо после публикации? (сейчас только default.vrd и web.config)
54. CSiER 29 19.06.19 17:35 Сейчас в теме
(53) Здравствуйте. В .vrd файле должны появиться настройки работы с базой (строка подключения к базе, опубликованные сервисы, параметры пула соединений и т.п.). 404 ошибка в данном случае выглядит странно - будет ли запрос аутентификации при попытке открыть URL http://localhost/demo_buh/hs/Test/пар1/пар2/пар3/пар4 ?
56. ZloyProger 7 20.06.19 11:18 Сейчас в теме
(54) Добрый день, спасибо за отклик, Коллега. Всё оказалось в разы проще, чем думал, знаете как самый страшный сон программиста - он написал код, но что-то не работает и он уже часа 3 сидит, скурил 2 пачки, выпил 2 литра кофе - ничего.. зовет коллег на помощь и тут он видит самую наитупейшую семантическую ошибку и с ужасом ждёт, когда же её увидят коллеги :-) Ссылка РЕГИСТРОЧУВСТВИТЕЛЬНА блин!! Ну и неплохо после публикации перезапускать IIS тоже говорят помогает)
40. sergei198821 27 24.07.17 15:54 Сейчас в теме
Спасибо, хорошо описано
41. KazanKokos 7 24.07.17 15:58 Сейчас в теме
спасибо. а по вебсервису есть такая статья? я с ним уже работал но хотелось бы также по полочкам разложить
42. starik-2005 2154 24.07.17 22:50 Сейчас в теме
(41) http://infostart.ru/public/440532/ - вот тут с примером на PHP, например.
43. Anton64 265 02.11.17 11:26 Сейчас в теме
(42)
(14)
Коллеги, подскажите, как определить адрес веб-сервера, на котором опубликованы http сервисы клиента? Это можно посмотреть в самой 1С или надо лезть в настройки веб-сервера? Спасибо.
44. CodeNull 02.11.17 14:45 Сейчас в теме
(43) "http сервисы клиента"? Сервисы предоставляет сервер, клиент только обращается к ним. Если у вас есть доступ к клиенту, то адрес сервиса может быть у него либо в настройках, либо в коде. Всё зависит от реализации.
46. vpaoli 29 07.12.17 10:05 Сейчас в теме
Все хорошо, описаны детали - что и как делать. Но к сожалению нет нормального описания самой задачи, которая данным методом решается. Вижу в методе http-сервиса создает отчет. Ну создали, и что дальше ...? Какова конечная цель и как она достигается ?
Описание любой новой технологии всегда полезно сопровождать конкретными примерами.
gnrx69; Daynestro07; user756416; Gendelf; +4 Ответить
52. gosizo 33 14.06.19 12:08 Сейчас в теме
57. vkozak 26.09.19 10:38 Сейчас в теме
Спасибо за грамотную и лаконичную статью. Помогла быстро разобраться.
58. kostik_love 290 30.01.20 11:26 Сейчас в теме
Спасибо за статью.
но не нашел как можно вернуть http сервисом файл- что бы он в браузере сразу начал скачиваться
например есть вот такое обращение:
https://currencyrates.1c.ru/exchangerate/v1/840.tsv

здесь сразу указывается что будем получать tsv файл
как в 1с подготовить такой файл и настроить сервис?
59. Akuji 14 04.02.20 11:07 Сейчас в теме
http сервис не видит общие модули?
Вроде с разными галками пробовал сервер/внеш соединение/вызов - ошибка инициализации модуля.
60. CodeNull 05.02.20 02:36 Сейчас в теме
(59) В модулях http сервисов доступен весь серверный контекст, проблем с этим нет.
61. Akuji 14 05.02.20 11:08 Сейчас в теме
(60)хм, может платформа мала...
делаю для ут10 на платформе 8.3.11.3034.
А в каком релизе поддержка модулей появилась или сразу с http сервисами?
62. CodeNull 05.02.20 14:35 Сейчас в теме
(61) http сервис обрабатывается на сервере и серверный контекст (модули менеджеров, объектов, общие модули и т.д.) был доступен всегда. Проверьте параметры модуля (галочки компиляции и доступности), убедитесь, что функции модуля объявлены как экспортные и т.д..
63. user1181356 16.04.20 07:35 Сейчас в теме
Доброго времени! Спасибо за статью, разобрался!
Подскажите, а как обратиться к сервису если использовался метод POST?
64. CodeNull 16.04.20 10:48 Сейчас в теме
65. user1181356 17.04.20 13:15 Сейчас в теме
(64) Спасибо. Но я уже разобрался в другом дополнении - "Postman". Очень удобно, правда с настройками там есть экивоки (вкладка Setting), вчера пол дня разбирался🙂
https://app.getpostman.com/app/download/win64
Оставьте свое сообщение

См. также

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    53708    0    Serginio    33    

История создания успешной системы чат-ботов на 1С

WEB v8 Бесплатно (free)

Использование чат-ботов в мессенджерах позволяет автоматизировать многие сложные бизнес-процессы путем диалога с системой через виртуального собеседника. О том, как создать универсальную систему ботов с бэкендом на 1С, работающую в Telegram, Viber и Facebook Messenger одновременно, на конференции Infostart Event 2019 Inception рассказал программист-фрилансер Константин Гейнрих.

21.05.2020    4522    0    CyberCerber    10    

Парсинг html страниц с выводом информации через JavaScript с использованием Selenium

WEB v8 1cv8.cf Бесплатно (free)

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

20.05.2020    1627    0    platonov.e    16    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг третий, WooCommerce, публикация категорий товаров

WEB v8 1cv8.cf Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции публикации категорий товаров в магазин WooCommerce, с комментариями внутри.

13.05.2020    1374    0    osivv    3    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    24199    0    ruha    14    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг второй, публикация картинок

WEB v8 Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции передачи фото из 1С, с комментариями внутри.

13.05.2020    1024    0    osivv    0    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    984    0    zhichkin    5    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

WEB v8 Россия Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

28.04.2020    2526    0    osivv    23    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    39683    0    YPermitin    33    

Выразительный Web API

WEB v8 Бесплатно (free)

Теория разработки Web API с ожидаемым поведением, за который не будет стыдно за пределами мира 1С.

27.04.2020    3913    0    fr13    19    

Хранение статистики публикаций автора сообщества Инфостарт ® (мобильное приложение И ++)

Мобильная разработка WEB v8 1cv8.cf Бесплатно (free)

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

24.04.2020    1304    0    capitan    13    

Интеграция УАТ с топливными сервисами

WEB v8 1cv8.cf Автомобили, автосервисы Бесплатно (free)

Интеграция конфигурации Управление автотранспортом с топливными веб-сервисами.

21.04.2020    6103    0    RPGrigorev    2    

Помощник работы с VirtueMart Промо

WEB Розничная торговля Розничная торговля v8 УТ10 УПП1 Россия Бесплатно (free)

Обработка для обмена данными с интернет-магазином на базе VirtueMart. Позволяет выгружать товары с изображениями и загружать заказы покупателей. Управлять интернет-магазином теперь стало просто!

19.04.2012    23256    1    salexdv    13    

Интеграция 1С с веб-сервисами Лукойл ЛИКАРД

WEB v8 1cv8.cf Россия Бесплатно (free)

Описание интерфейса взаимодействия сервиса Лукойл- ЛИКАРД с информационной системой 1С.

20.04.2020    2690    0    RPGrigorev    0    

Ошибка инициализации модуля: HTTPСервис

WEB v8 1cv8.cf Узбекистан Бесплатно (free)

Решение проблемы "Ошибка при работе с HTTP сервисом 500. Ошибка инициализации модуля".

13.04.2020    1498    0    VipDim    10    

COVID-19. Динамика эпидемии

WEB v8 v8::СКД 1cv8.cf Бесплатно (free)

Весной 2020 практически все ждут, «когда же это закончится», когда эпидемия пойдет на спад. Специалисты призывают «сгладить кривую». Как понять, в какой точке мы сейчас? Данные университета Джонса Хопкинса в любой 1С.

01.04.2020    2508    0    Alejandro_V    6    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    29235    0    anig99    6    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    9635    0    informa1555    21    

Коронавирус COVID-19. Статистика по странам

WEB v8 Бесплатно (free)

В связи с COVID-19 люди поделились на две категории: те, кто осознал, и те кто ЕЩЕ не осознал. Единственное наше преимущество перед Коронавирусом заключается в том, что информация распространяется быстрее, чем расползается "невидимка".

25.03.2020    5033    2    Evgen.Ponomarenko    60    

Получение html-кода страницы. JS из 1С

Практика программирования WEB v8 Бесплатно (free)

Получение исходника страницы, выполнение произвольного js-кода. Теперь с WebKit от 1С.

18.02.2020    4303    0    Yashazz    1    

Отладка конфигурации в режиме веб-клиента

WEB v8 Бесплатно (free)

После очередного обновления платформы при попытке запуска отладки в веб-клиенте стало появляться сообщение. Собственно, до этого момента никогда веб-клиентом особо не пользовался и необходимости в отладке как-то не возникало. Данное сообщение заставило задуматься, что не так с отладкой в веб-клиенте и как ее собственно включить? Тот самый неловкий момент, когда программа просит обратиться к администратору, а администратор - это вы.

12.02.2020    3382    0    gamletspb    2    

Анализ работы внешней обработки сервиса МодульКасса применительно к задаче фискализации чеков при доставке

Кассовые операции WEB v8 УТ11 Россия Бесплатно (free)

В статье разберу работу внешней обработки для работы с МодульКасса, опишу недочеты и применимость для организации доставки, предложу собственный вариант реализации.

11.02.2020    1952    0    malikov_pro    0    

Вариант реализации REST API для 1С-Битрикс Управление сайтом

WEB v8 Россия Бесплатно (free)

В статье опишу вариант обмена 1С УТ 11.4 и 1С-Битрикс УС 18.5 с иcпользованием компонентов Symfony, в качестве примера обмен данными по складам.

28.01.2020    3102    0    malikov_pro    2    

Вариант реализации работы с сервисом Dadata применительно к конфигурации УТ 11.4 и подобным

WEB v8 УТ11 Россия Бесплатно (free)

В статье описывается реализация получения данных с сервиса DaData при работе с формами справочников в конфигурации УТ 11 для дополнения информации по ФИО, ИНН, Адресу.

22.01.2020    2312    0    malikov_pro    5    

Двусторонний обмен с поставщиком через интернет-магазин для реализации товаров с ответственного хранения (с 01.02.2020 "Партии" не используются)

Файловые протоколы обмена, FTP WEB v8 УНФ Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

Рассмотрены реализация двустороннего обмена данными с использованием API-сервиса сайта поставщика при продаже товаров со склада ответственного хранения, алгоритм движения товаров и обмена документами на примере конфигурации 1С: УНФ у партнера, который взаимодействует с поставщиком "ООО Пауэр-Интернэшнл-шины" - одним из крупнейших в России поставщиков автомобильных шин и дисков.

16.01.2020    3464    0    chkurs    0    

Получение номера ВСД по идентификатору 1С: Меркурий

Производство готовой продукции (работ, услуг) WEB v8 УТ11 Пищевая промышленность Россия Бесплатно (free)

Код парсинга веб страницы для получения номера ВСД в системе Меркурий.

24.11.2019    3534    0    ohyen    0    

Немного о интеграции с CRM AMO

WEB v8 1cv8.cf Бесплатно (free)

Немного информации о том, как настроить интеграцию с CRM AMO. Пример функций для подключения к АМО и обновления заказа. Пример на основе API авторизации.

15.11.2019    3424    0    xxxAndricxxx    6    

Ещё немного о ИНН и сервисе DaData

WEB v8 1cv8.cf Бесплатно (free)

Об использовании сервиса dadata и немного информации о возможностях получать данные по ИНН. Возможно, кому-то будет полезным.

14.11.2019    6106    0    xxxAndricxxx    21    

Вариант реализации клиента SOAP на примере получения остатков из MERLION

WEB v8 1cv8.cf Россия Бесплатно (free)

В статье приведу пример клиента к сервису SOAP, функции которого принимают несколько значений типа строка или массив строк.

14.11.2019    2838    0    malikov_pro    0    

Разбор любого JSON-объекта в соответствующую структуру

Инструментарий разработчика WEB v8 1cv8.cf Бесплатно (free)

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

13.11.2019    6369    0    user665435_al.windstorm    14    

Проверка reCAPTCHA от Google на стороне HTTP-Сервиса

WEB v8 Россия Бесплатно (free)

Код проверяет переданный токен reCAPTCHA от Google при вызове HTTP-Сервиса. Таким образом проверяем, отправил ли данные на наш HTTP-Сервис робот или реальный пользователь.

06.11.2019    5198    0    AVR    0    

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.)

WEB Облачные сервисы, хостинг v8 1cv8.cf Бесплатно (free)

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

14.10.2019    9590    0    uno-c    25    

Самый примитивный HTTP-сервис в мире

WEB v8 Бесплатно (free)

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

12.09.2019    18249    0    YPermitin    26    

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию

WEB Администрирование данных 1С v8 Бесплатно (free)

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    9506    0    Fragster    9    

Вывод отчетов из Штрих-М Торговое предприятие 5 на кассовое ПО Кассир 5 через веб-сервис

Розничная торговля WEB Розничная торговля v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Бесплатно (free)

Универсальный механизм вывода отчетов товароучетной системы Штрих-М Торговое предприятие в кассовое ПО Кассир 5 посредством веб-сервиса.

14.08.2019    5284    0    Van2507    1    

Совсем простой обмен HTTP, 2 функции

WEB v8 Бесплатно (free)

Функция для вызова рест-сервиса и функция для разбора результата. Быстро, просто, универсально.

12.08.2019    7731    0    Yashazz    15    

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery. Продолжение

WEB v8 1cv8.cf Бесплатно (free)

Получение изображений из информационной базы и отправка файлов через "фронт" на HTML/CSS/JS.

08.08.2019    7288    0    Sedaiko    1    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    18429    0    Evil Beaver    33    

Неверные остатки на сайте битрикс

WEB v8 УТ11 Бесплатно (free)

Исправление процедуры выгрузки остатков на сайт битрикс из УТ 11

25.04.2019    5204    0    distorshion    4    

Отправка файлов через SOAP. SOAP with attachments, MTOM

WEB v8 1cv8.cf Россия Бесплатно (free)

В продолжение «своеобразной» поддержки 1С протокола SOAP, описанной в https://infostart.ru/public/965259/, опишу еще одну особенность. 1С не поддерживает возможность отправки файлов-вложений. Для решения этой проблемы пришлось самостоятельно писать формирование пакетов SOAP и разбор ответов сервера.

18.04.2019    7362    0    mysm    2    

HTML-клиент у конфигурации 1С

WEB v8 Бесплатно (free)

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    16145    0    Smaylukk    119    

Парсинг сайтов из 1С на примере ломбарды.рф с помощью XPATH для ДокументDOM

WEB v8 Бесплатно (free)

На всякую хитрую гайку всегда найдется болт с резьбой (с)

01.04.2019    14014    0    starik-2005    33    

Логируй больше! 1С + UPD + GELF + Graylog

Практика программирования Администрирование данных 1С WEB Разработка v8 Бесплатно (free)

Наличие производительной платформы управления логами - это жизненно важный элемент в ландшафте систем с высокой активностью. Рассмотрим один из подходов логирования активности систем на платформе 1С в Graylog.

26.02.2019    10527    0    Lars Ulrich    16    

Устранение некоторых ошибок, обнаруженных в модуле Обмена с ВЕТИС (ФГИС Меркурий)

WEB Адаптация типовых решений v8 БП3.0 Сельское хозяйство и рыболовство Оптовая торговля, дистрибуция, логистика Пищевая промышленность Россия Бесплатно (free)

Устранение ошибок, обнаруженных в модуле Обмена с ВЕТИС (ФГИС Меркурий) в конфигурации Бухгалтерия предприятия, редакция 3.0 (3.0.67.67).

08.02.2019    7401    0    aks    3    

Реализация простого http-сервиса "Просмотр карточки номенклатуры(товара) в браузере"

Практика программирования v8 1cv8.cf Абонемент ($m)

Практический пример реализации простого http-сервиса средствами 1С Предприятие 8.3. Обеспечивает просмотр списка товаров и просмотр данных товара в браузере.

1 стартмани

07.12.2018    19909    15    dmitry1975    32