Пример работы с заголовками HTTP-запросов: загрузка версий программ с users.v8.1c.ru

Публикация № 255881 05.02.14

Интеграция - WEB-интеграция

HTTP-запросы заголовки users.v8.1c.ru релизы версии rest

Узнайте больше о HTTP-запросах и о программной работе с сайтами, требующими авторизацию

На написание этой статьи сподвигли два фактора:

1. Весной 2013 в версии платформы 8.2.18 появились новые возможности языка:

Реализована возможность работы с заголовками HTTP-запросов, обработки кодов возврата, получения и установки тела запроса в виде строки или двоичных данных. Реализованы объекты HTTPЗапрос, HTTPОтвет.
В объекте HTTPСоединение реализованы следующие изменения:
Методы Записать(), ОтправитьДляОбработки(), Получить(), Удалить() возвращают значение типа HTTPОтвет;
Для методов Записать(), ОтправитьДляОбработки(), Получить(), Удалить() реализован синтаксис, позволяющий использовать программно сформированный HTTP-запрос.

2. В декабре 2013 из 1С-зазеркалья вышли две новости:

Автоматический REST интерфейс прикладных решений http://v8.1c.ru/o7/201312rest/index.htm и HTTP-сервисы в прикладном решении http://v8.1c.ru/o7/201312http/index.htm

Т.е. скоро мы получим инструмент с возможностями COM-соединения и WEB-сервисов одновременно. Задачи интеграции станут интереснее, появятся новые возможности, а это не может не радовать true-программиста! Поскольку для  работы со сторонними REST сервисами можно использовать имеющиеся в платформе средства работы с HTTP: объекты HTTPСоединениеHTTPЗапрос и HTTPОтвет, предлагаю рассмотреть эти методы чуть подробней, а в конце решить прикладную задачку: программно авторизоваться на страничке https://users.v8.1c.ru/distribution/total, распарсить ее и заполнить справочники Программы и Версии. Результат прикреплен к этой статье в виде конфигурации. Запускать ее можно на платформе не ниже 8.2.18.

Что такое HTTP - запросы? Мы с ними сталкиваемся каждый день.

Для начала предлагаю открыть Инструменты разработчика в браузере Yandex - кнопками Ctrl-Shift-I и перейти на закладку Network - именно здесь можно увидеть содержимое HTTP-запросов

Например, когда в браузере вводим адрес сайта https://login.1c.ru/loginна сервер уходит HTTP-запрос типа GET:

Request URLhttps://login.1c.ru/login
Request Method: GET

Request Headers:
Host: login.1c.ru
Connection: keep-alive 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.12785 YaBrowser/13.12.1599.12785 Safari/537.36 
Accept-Encoding: gzip,deflate,sdch Accept-Language: ru,en;q=0.8

В 1С у HTTP-запроса типа GET есть вполне конкретный аналог: метод объекта HTTPСоединение.Получить(<HTTPЗапрос>)
А у объекта HTTPЗапрос есть свойства:
АдресРесурса типа Строка (он же 
Request URL)
и Заголовки типа Соответствие (он же 
Request Headers)

В ответ на этот запрос сервер возвращает браузеру HTTP-ответ:

Status Code: 200
Responce Headers:
Server: nginx

Date: Tue, 04 Feb 2014 07:36:25 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Cache-Control: no-store
Set-Cookie: JSESSIONID=AAEB3E82351662F43E37CE3F64B7795E.login1c8010; Path=/; Secure; HttpOnly
Content-Language: ru
Content-Encoding: gzip

И тело ответа, в котором содержится код запрошенной страницы на HTML (см закладку Response в Инструментах разработчика Yandex браузера)

В 1С метод HTTPСоединение.Получить(<HTTPЗапрос>) возвращает объект типа HTTPОтвет, у которого соответственно есть свойства:
КодСостяния (он же Status Code)
Заголовки (он же Responce Headers)
и метод ПолучитьТелоКакСтроку() (он же тело ответа - Response)

Когда на страничке https://login.1c.ru/login вводим логин/пароль и нажимаем кнопку Войти, то на сервер уходит HTTP-запрос типа POST:

Request URL: https://login.1c.ru/login;jsessionid=AAEB3E82351662F43E37CE3F64B7795E.login1c8010
Request Method: POST
Request Headers:
POST /login;jsessionid=AAEB3E82351662F43E37CE3F64B7795E.login1c8010 HTTP/1.1

Host: login.1c.ru
Connection: keep-alive
Content-Length: 122
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://login.1c.ru
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.12785 YaBrowser/13.12.1599.12785 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://login.1c.ru/login
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru,en;q=0.8
Cookie: JSESSIONID=AAEB3E82351662F43E37CE3F64B7795E.login1c8010
Form Data или Request Body или Тело запроса:
inviteCode=&lt=LT-43557-KdRxeZdJGp2n25STSoj6meIPL09eYv&execution=e1s1&_eventId=submit&username=Barelpro&password=123

В 1С у HTTP-запроса типа POST есть вполне конкретный аналог: метод объекта HTTPСоединение.ОтправитьДляОбработки(<HTTPЗапрос>)
А у объекта HTTPЗапрос, кроме свойств АдресРесурса и Заголовки можно задать тело запроса (Request Body) с помощью метода УстановитьТелоИзСтроки()

 
Во всех этих нагромождениях полей заголовков нас интересуют только некоторые поля в контексте нашей задачки. 
 
Что происходит при первом входе на страничку https://login.1c.ru/login
сервер открывает Java-сессию и присваивает ей идентификатор JSESSIONID, значение которого передает через поле Set-Cookie в заголовке ответа. 
 
Что происходит при заполнении полей Логин и Пароль и нажатии на кнопку Войти:
Браузер передает серверу идентификатор сессии JSESSIONID через параметр Cookie, а логин и пароль через параметр inviteCode
 
Если авторизация сессии прошла удачно, то во всех следующих запросах достаточно использовать только идентификатор JSESSIONID. А если таймаут между запросами будет больше установленного на сервере, то время сессии истечет и придется повторять авторизацию заново.
 
Конечно при практической реализации нашей задачки пришлось встретиться с небольшими сложностями, которые в итоге удалось преодолеть:
 
Так, чтобы пройти от страницы авторизации  https://login.1c.ru/login до целевой страницы https://users.v8.1c.ru/distribution/total пришлось выполнить целых 8 HTTP-запросов (см процедуру НайтиJSESSIONID()). Но эту задачу сильно упростила еще одна особенность: в заголовке ответа сервер присылает поле Location, в котором содержится адрес следующего необходимого запроса, своего рода редирект на следующую страницу, в некоторых случаях с дополнительными параметрами, например:
 
В итоге надо выполнять запросы по адресу, указанному в Location до тех пор, пока не придет ответ без Location. В данном случае такова особенность реализации защиты сайта 1С: пройти 8 запросов и в трех местах создать три различные Java-Сессии.
 
Еще одна особенность: в теле HTML-кода на страничке https://login.1c.ru/login заключены скрытые параметры, которые надо распарсить и включить в тело POST-запроса при передаче логина/пароля в inviteCode=&lt=LT-43557-KdRxeZdJGp2n25STSoj6meIPL09eYv&execution=e1s1&_eventId=submit&username=Barelpro&password=123 (см процедуры РаспарситьinviteCode() и РекурсивныйПарсингСтраницыЛогина())

Дальнейший парсинг странички https://users.v8.1c.ru/distribution/total я делал через объект ПостроительDOM в рекурсивной процедуре РекурсивныйПарсингСпискаКонфигураций(), а парсинг страниц с версиями делал в рекурсивной процедуре РекурсивныйПарсингСпискаВерсий().

Для запуска обработки ЗагрузкаПрограммИВерсий используйте кнопку "Загрузить" в командной панели справочника Программы. В обработке заполните поля логин/пароль для доступа к сайту 1С и нажмите по очереди кнопки "Загрузить программы" и "Загрузить версии".

В общем, как видите, в доступе к запароленным сайтам нет ничего сложного, пользуйтесь на здоровье, удачи!

 
DISCLAIMER:
 
1. Не пытайтесь для доступа к сайту 1С использовать логин Barelpro и пароль 123. Я его привел для примера. У вас должен быть свой доступ:
- или у вас есть официальный 1С-продукт и доступ к обновлениям 1С через регистрационный номер и пароль
- или вы сотрудник компании-партнера 1С, у вас есть хотя бы один сертификат типа Спец и вам руководство открыло доступ почти ко всем к обновлениям (кроме некоторых специфических, типа "Корпоративный инструментальный пакет 8")
 
2. Конечно, существует механизм получения обновлений, встроенный во все современные типовые конфигурации 1С. Например, для "1С:Конвертация данных" скачиваем архив http://downloads.1c.ru/ipp/ITSREPV/V8Update/Configs/Conversion/21/82/v8upd11.zip, в нем лежит файлик v8cscdsc.xml, в котором указаны названия и пути скачивания всех обновлений данного продукта. Но, во-первых, не для всех программ выложены такие файлики. А во-вторых, надо еще где-то узнать адреса к v8upd11.zip для всех 466 конфигураций!
 
3. Зачем это может быть нужно? Ну, например, в моей компании есть служба Регулярного сопровождения (в просторечье ИТС). Сервис-инженеры при установке обновлений типовых конфигураций у клиентов должны в обязательном порядке указывать в своей учетной базе релиз конфигурации до и после обновления. Для этого можно использовать справочник Версии из моей конфигурации. А обновлять этот справочник можно ежедневно через регламентные задачи, исключив таким образом человеческий фактор.


PS от 01.09.2014. Выпущена версия 2. 1С слегка изменила алгоритм авторизации, пришлось слегка переписать код, попутно удалось уменьшить количество запросов с 8 до 4.

PS от 27.08.2015. Выпущена версия 3. 1С изменила дизайн и адреса.

PS от 02.09.2015. Выпущена версия 4. 1С изменила авторизацию.

PS от 08.09.2015. Выпущена версия 5. Оптимизирован код. Заменены методы рекурсивных парсингов на конструкции ПолучитьЭлементПоИдентификатору и ПолучитьЭлементыПоИмени. Старые функции остались закоментированными.

PS от 12.02.2018. Выпущена версия 6. 1С изменила авторизацию.

PS от 27.12.2019. Выпущена версия 8. 1С изменила авторизацию.

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

Наименование Файл Версия Размер
загрузка версий программ с users.v8.1c.ru v8.cf

.cf 24,15Kb
669
.cf 8 24,15Kb 669 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. artspeed 179 05.02.14 05:26 Сейчас в теме
Скачал, развернул конфу, открыл, ввел логин и пароль. Загрузка версий - кнопочка просто не работает. Загрузка - программ - долго думает и заканчивает свое действие без результата((

В общем не работоспособная конфа((
Очень жаль

Испытывал на 8.2.19.80
2. barelpro 1268 05.02.14 08:36 Сейчас в теме
(1) artspeed,

Что-то с вашим логином и паролем не так. В браузере со страницы login.1c.ru куда он приводит? Отладчиком на какой строке зависает? Дайте больше информации!
6. barelpro 1268 05.02.14 11:14 Сейчас в теме
(1) artspeed, (3) arteast,

Проблема решена, выложено обновление от 05.02.2014 11:54
Повторная закачка не списывает стартмани :)
73. info@itshkola.com 21.03.16 21:37 Сейчас в теме
3. arteast 99 05.02.14 09:53 Сейчас в теме
Не работает.
В режиме Предприятия вообще никаких действий не производит.
Пробовал на платформе 1С:Предприятие 8.3 (8.3.4.389).

В отладке:
Соединение проходит удачно, авторизация тоже...а вот дальше
http://joxi.ru/xNHxUv3JTJBmeSOOWH4
5. barelpro 1268 05.02.14 10:20 Сейчас в теме
(3) arteast,

мне чтобы понять, что не так, нужен ваш логин-пароль. Пришлите в личку, потом поменяете.
4. StaticUnsafe 05.02.14 10:19 Сейчас в теме
7. pahich 681 05.02.14 16:30 Сейчас в теме
Спасибо, забрал в личную коллекцию )
8. barelpro 1268 05.02.14 16:32 Сейчас в теме
Люди, скачали уже 23 человека, скажите хоть работает? успокойте меня! )))))
9. John_d 4392 05.02.14 16:49 Сейчас в теме
Спасибо за статью. Все работает.
Круто можно методом пост отправлять данные из 1с на сайт без посредников)
Alexoniq; barelpro; +2 Ответить
10. John_d 4392 05.02.14 17:48 Сейчас в теме
Можете подсказать как правильно указать параметры post? чтобы они в глобальный массив post пришли на сайте
так:
HTTPЗапрос1.Заголовки.Вставить("name=" + name + "&col=" + kol);
11. barelpro 1268 05.02.14 18:29 Сейчас в теме
(10)
Если запрос Post, то обязательно должно быть заполнено тело запроса через УстановитьТелоИзСтроки. Например, так:

HTTPЗапрос2 = Новый HTTPЗапрос;
HTTPЗапрос2.Заголовки.Вставить("Connection", "keep-alive");
HTTPЗапрос2.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPЗапрос2.Заголовки.Вставить("Cookie", JSESSIONID1);
HTTPЗапрос2.УстановитьТелоИзСтроки("name=" + name + "&col=" + kol);
HTTPЗапрос2.АдресРесурса = "/login";

Соединение1 = Новый HTTPСоединение("login.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
ОтветHTTP = Соединение1.ОтправитьДляОбработки(HTTPЗапрос2);
15. John_d 4392 06.02.14 11:49 Сейчас в теме
12. almas 202 05.02.14 21:31 Сейчас в теме
Спасибо. Очень актуальная тема.
13. Aleksey.Bochkov 3607 05.02.14 23:36 Сейчас в теме
По поводу списка файлов обновлений - конфигуратор умеет искать нужные обновления на серверах 1С, т.е. общий список есть.
Вот он (конфигуратор к нему обращается) - http://downloads.v8.1c.ru/tmplts/v8cscdsc.lst
Раньше точно работало, сейчас пишет что файла нет. Или я не те логин-пароль использую, или ошибка у 1С из-за перестройки ресурсов.
Прикрепленные файлы:
14. barelpro 1268 06.02.14 00:24 Сейчас в теме
(13) Aleksey.Bochkov,

если найдете путь к файлу с общим списком обновлений - получите огромный респект от всего сообщества 1С :)
72. biformatus 20.02.16 21:50 Сейчас в теме
(14) Чтобы качнуть этот файл нужна в качестве UserAgent указать 1с:Предприятие.
16. artspeed 179 06.02.14 15:08 Сейчас в теме
Отлично. Действительно после обновления загрузка стала работать.
За это вам жирный "+"
По мне так: Что бы развивать программу можно сделать так:

Вместо одного логина/пасса от личного кабинет users.v8.1c.ru - сделать несколько учетных данных.
Т.е. я подписан, например на бюджет, хозрасчет, УТ под разными личными кабинетами.
Ваша программа последовательно открывает все учетки, скачивает заголовки, затем в таблице значений сворачивает по точным наименованиям. Ну как то так.
Таким образом мы получим более точный список ВСЕХ (тех, на которые есть подписка в одном/нескольких личных кабинетах) конфигураций

НУ и наверное последнее: Осталось включить возможность скачивать конфигурации, или на крайний случай получать "КОНЕЧНУЮ ПРЯМУЮ ССЫЛКУ НА ОБНОВЛЕНИЕ", а не рыскать каждый раз по сайту.
т.е. отметили галочками, какие конфигурации необходимо скачать и пошли чай пить. В программе предварительно в настройках в справочнике задаем конечные пути скачки.
По нажатию "скачать" скачиваем обновления, которые уже рассованы по нужным папкам, и спокойно едем обновляться.

Извиняюсь за извращения, люблю это дело))
17. barelpro 1268 06.02.14 19:16 Сейчас в теме
(16) artspeed,

Алексей, не вижу никаких извращений, вполне дельные требования к разработке. Надо только правильно спозиционироваться на целевой аудитории - кому такая разработка будет интересна - и вперед!
Что касается меня - я писал статью из просветительских побуждений. Если найдется смельчак доработать мою конфу - с удовольствием передам ему неисключительные права на нее (достаточно просто сослаться на меня) :)
18. artspeed 179 07.02.14 04:20 Сейчас в теме
(17) проанализировал вашу конфу и запрос HTML. 1С-ники очень хитро генерируют ссылку на скачивание. Предполагаю java скриптом... С разных сторон подходил, но так конечную ссылку не получилось выудить...
19. slavik27 14 08.02.14 15:21 Сейчас в теме
(16) artspeed, есть такой функционал http://infostart.ru/public/197576/
сейчас дорабатываем на переделанный сайт 1с, немного изменили пути
35. buganov 193 29.05.14 19:56 Сейчас в теме
(19) slavik27, за две тысячи? Есть бесплатные аналоги не хуже )
20. opx 752 09.02.14 12:21 Сейчас в теме
А может знает кто как реализовать автоматический редирект. Например при Oauth авторизации осуществляется редирект, а HTTPОтвет возвращает код 302. Было бы неплохо реализовать редирект автоматически. Как это сделать вручную я не сообразил.
21. barelpro 1268 09.02.14 12:46 Сейчас в теме
(20) opx,

В моем примере как раз редирект отрабатывается. На скриншоте посмотрите, код ответа 302, сервер возвращает в шапке ответа поле Location, в котором указан адрес редиректа
87. пользователь 17.04.19 17:48
Сообщение было скрыто модератором.
...
22. fuxic 296 10.02.14 12:30 Сейчас в теме
Тема отличная, только начал веб-программированием увлекаться. Спасибо
23. iov 407 10.02.14 14:55 Сейчас в теме
Спасибо. очень доходчиво.
24. DrAku1a 1580 11.02.14 10:18 Сейчас в теме
Все работает. Спасибо!
Осталось сделать загрузчик новых вышедших обновлений и информер =)
26. barelpro 1268 13.02.14 12:30 Сейчас в теме
(24) DrAku1a,
не хочу ломать бизнес тем, кто берет за информер деньги :)
27. DrAku1a 1580 13.02.14 18:40 Сейчас в теме
(26) за информер - да, а за загрузчик?
кстати, можно сделать иерархический список (как на картинке)

1. Справочник "Программы" делаем иерархическим (нужен один уровень иерархии).

2. Немного корректируем процедуру в форме обработки "ЗагрузкаПрограммИВерсий":
Процедура РекурсивныйПарсингСпискаКонфигураций(ДокументHTML)
	
	ТекИмяГруппы = "";
	ТекГруппа = Справочники.Программы.ПустаяСсылка();
	Для Каждого ЭлДок Из ДокументHTML.ДочерниеУзлы Цикл
		
		Если СокрЛП(ЭлДок.ТекстовоеСодержимое) = "Название" Тогда
			
			//количество строк в таблице дистрибутивов
			СписокУзловHTML = ЭлДок.РодительскийУзел.РодительскийУзел.РодительскийУзел.ДочерниеУзлы[1].ДочерниеУзлы;
			КолЭлементов = СписокУзловHTML.Количество();
			
			Для А=0 По КолЭлементов-1 Цикл
				
				Если СписокУзловHTML[А].ДочерниеУзлы.Количество()=1 Тогда
					ТекИмяГруппы = СокрЛП(СписокУзловHTML[А].ДочерниеУзлы[0].ДочерниеУзлы[0].ТекстовоеСодержимое);
				КонецЕсли;
				
				ТекЯчейка = СписокУзловHTML[А].ДочерниеУзлы[0].ДочерниеУзлы[0];
				Если ТипЗнч(ТекЯчейка) = Тип("ЭлементЯкорьHTML") Тогда
					
					Если ТекИмяГруппы<>"" Тогда
						Если СокрЛП(ТекГруппа.Наименование)<>ТекИмяГруппы Тогда
							Запрос = Новый Запрос;
							Запрос.УстановитьПараметр("Название", ТекИмяГруппы);
							Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
							               |	Программы.Ссылка
							               |ИЗ
							               |	Справочник.Программы КАК Программы
							               |ГДЕ
							               |	Программы.НазваниеПолное ПОДОБНО &Название
							               |	И Программы.ЭтоГруппа";
							Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
							Если Выборка.Следующий() Тогда
								ТекГруппа = Выборка.Ссылка;
							Иначе
								НовГруппа = Справочники.Программы.СоздатьГруппу();
								НовГруппа.Наименование = ТекИмяГруппы;
								НовГруппа.Записать();
								ТекГруппа = НовГруппа.Ссылка;
							КонецЕсли;
						КонецЕсли;
					КонецЕсли;
					
					Название = СокрЛП(ТекЯчейка.ТекстовоеСодержимое);
					ГиперСсылка = ТекЯчейка.ГиперСсылка;
					
					Запрос = Новый Запрос;
					Запрос.УстановитьПараметр("Название", Название);
					Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
					               |	Программы.Ссылка,
					               |	Программы.Родитель
					               |ИЗ
					               |	Справочник.Программы КАК Программы
					               |ГДЕ
					               |	Программы.НазваниеПолное ПОДОБНО &Название
					               |	И НЕ Программы.ЭтоГруппа";
					Выборка = Запрос.Выполнить().Выбрать();
					Если Выборка.Количество() = 0 Тогда
						
						НовыйСправочник = Справочники.Программы.СоздатьЭлемент();
						НовыйСправочник.Наименование = Название;
						НовыйСправочник.НазваниеПолное = Название;
						НовыйСправочник.ГиперСсылка = ГиперСсылка;
						НовыйСправочник.Родитель = ТекГруппа;
						НовыйСправочник.Записать();
						
						Загружено = Загружено + 1;
					Иначе
						
						Выборка.Выбрать();
						Пока Выборка.Следующий() Цикл
							Если Выборка.Родитель<>ТекГруппа Тогда
								НовыйСправочник = Выборка.Ссылка.ПолучитьОбъект();
								НовыйСправочник.Родитель = ТекГруппа;
								НовыйСправочник.Записать();
							КонецЕсли;
						КонецЦикла;

					КонецЕсли;
					
				КонецЕсли;
			КонецЦикла;
			Возврат;
		КонецЕсли;
			
		Если ЭлДок.ЕстьДочерниеУзлы() Тогда
			
			РекурсивныйПарсингСпискаКонфигураций(ЭлДок);
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать


3. В самой форме перенастроить список - режим вывода: дерево, разворачивать все уровни.
Прикрепленные файлы:
BigB; laeg; +2 Ответить
25. soap 65 13.02.14 12:22 Сейчас в теме
Спасибо ОЧЕНЬ информативно. Будем использовать!
28. DrAku1a 1580 13.02.14 18:58 Сейчас в теме
(0) Да, и ещё вопрос автору: Чем пользовались для составления процедур парсинга?
Т.е. вижу по коду, что с помощью ЧтениеHTML и ПостроительDOM создавали объектную модель HTML-документа и дальше с ней работали...
Вопрос в том - с помощью какого вьювера просматривали DOM?
29. barelpro 1268 13.02.14 22:34 Сейчас в теме
(28) DrAku1a, хороший вопрос!

был бы вьюер, сэкономил бы 15 минут жизни :)
А так все по наитию
30. seermak 665 05.03.14 08:22 Сейчас в теме
31. x_under 13 26.03.14 17:04 Сейчас в теме
Супер! Встраиваем в свою конфигурацию для ИТСников.
32. laeg 13 18.04.14 20:53 Сейчас в теме
Огромное спасибо за вашу работу. Взял за основу вашу разработку, переделал конечно структуру, версии перенес в РС, переделал справочник Программ, сделал функцию обновления, подцепил к регламенту - в итоге свои идеи воплотил в вашу разработку :)

Прикрепленные файлы:
33. lnnd 15 08.05.14 13:50 Сейчас в теме
Можно еще больше оптимизировать, в место рекурсии обработать ДокументHTML одним циклом c получением всех данных
В цикле заполняется: Название, гиперссылка, номер версии, дата выхода, планируемый номер версии, планируемая дата выхода, планируемая дата обновления данных, ознакомительный номер версии, дата выхода ознакомительной версии

В место процедуры РекурсивныйПарсингСпискаКонфигураций(ДокументHTML)

Процедура ЗаполнитьДанные(ДокументHTML, ТаблицаДанных)
	
	ТекГруппа = "";
	
	ЭлементыDOM = ДокументHTML.ПолучитьЭлементыПоИмени("td");
		
	Для Каждого Элемент Из ЭлементыDOM Цикл
				
		Если Элемент.ИмяКласса = "groupColumn" Тогда
						
			ИндексКолонки = 1;
			ТекГруппа = СокрЛП(Элемент.ТекстовоеСодержимое);
			
			Продолжить;
			
		КонецЕсли;
		
		Если Элемент.ИмяКласса = "nameColumn" Тогда
			
			НоваяСтрока = ТаблицаДанных.Добавить();
			
			НоваяСтрока.Группа = ТекГруппа;
			НоваяСтрока.Название = СокрЛП(Элемент.ТекстовоеСодержимое);
			
			Если ТипЗнч(Элемент.ДочерниеУзлы[0]) = Тип("ЭлементЯкорьHTML") Тогда
			    НоваяСтрока.Гиперcсылка = СокрЛП(Элемент.ДочерниеУзлы[0].Гиперссылка);
			КонецЕсли;	
										
			ИндексКолонки = 3;
			
			Продолжить;
			
		КонецЕсли;	
		
		ИндексКолонки = ИндексКолонки + 1;
		НоваяСтрока[ТаблицаДанных.Колонки[ИндексКолонки].Имя] = СокрЛП(Элемент.ТекстовоеСодержимое);
		
	КонецЦикла;	
		
КонецПроцедуры
Показать
34. x_under 13 19.05.14 09:27 Сейчас в теме
Добрый день.
Внедрили вашу систему в рабочую базу, все отлично. Потом решили перевести в регламентное задание и тут начались сложности: база в клиент серверном варианте. Регламентное задание запускается. Система получает JSESSIONID, но при получении страницы со списком конфигурации система ничего уже не возвращает. Подскажите куда смотреть
36. ssokolov1 10.06.14 13:13 Сейчас в теме
Не работает.
Не грузит список программ.
До какого то момента работало, потом перестало. Выдавало ошибку, после скачал исправленную.
Ошибка исчезла, но программы не грузит
37. barelpro 1268 01.09.14 18:08 Сейчас в теме
(36) Спасибо за замечание!
Выпущена версия 2. 1С слегка изменила алгоритм авторизации, пришлось слегка переписать код, попутно удалось уменьшить количество запросов с 8 до 4.
maXon777; laeg; +2 Ответить
38. Патриот 426 05.09.14 21:42 Сейчас в теме
(0) +
Статья супер, хороший толчок для новичка, чтобы освоить новую для себя технологию 1С. Вы когда писали конфу, то пользовались только платформой 1С и инструментами разработчика браузера, чтобы распутать эту хитрую регистрацию на сайте 1С?
40. barelpro 1268 05.09.14 23:27 Сейчас в теме
(38) Спасибо за оценку! Я пользовался советами своего брата, работающего в Яндексе, поэтому использовал инструменты Яндекс-браузера. А вообще, как мне подсказали здесь, есть инструменты не хуже, например, Firebug для Firefox.
39. Патриот 426 05.09.14 21:44 Сейчас в теме
(0), Сам вашу конфу не использовал, т.к. не зареган на сайте 1С, но использовал её, как пример
41. deevil 153 06.09.14 03:46 Сейчас в теме
Статья зачетная для изучения механизмов 1с для веб
42. RustamTurn 09.09.14 23:54 Сейчас в теме
Спасибо за статью. У меня возник вопрос, а как выполнить метод PATCH в объекте Httpсоединение, есть методы PUT,POST,DELETE,GET, а метод PATCH я не обнаружил и не смог воспроизвести его, хоть 1с пишет что к REST можно обращаться с помощью метода PATCH.
43. barelpro 1268 11.09.14 16:27 Сейчас в теме
(42) Да, так и есть, метод PATCH не наблюдается. А зачем он вам?
44. RustamTurn 11.09.14 22:18 Сейчас в теме
(43) ОН используется для замены только указанных свойств, при этом остальные свойства остаются не тронутыми, его можно заменить методом PUT , но он очищает все незаполненные поля.
Плюс еще в объекте HTTPсервисы, появилась куча методов,которыми из 1с никак не обратиться.

● GET;

● POST;

● PUT;

● DELETE;

● PATCH;

● MERGE;

● CONNECT;

● OPTIONS;

● TRACE;

● PROPFIND;

● PROPPATCH;

● MKCOL;

● COPY;

● MOVE;

● LOCK;

● UNLOCK.
47. stegantsov 07.11.14 10:27 Сейчас в теме
(43)
Расскажите поподробнее как изменился порядок авторизации в новых релизах
scandal2; +1 Ответить
45. husky 6 23.10.14 23:12 Сейчас в теме
А как для обычных форм переделать пожалуйста, нужно под УПП 1.3. Заранее спасибо.
46. husky 6 29.10.14 00:02 Сейчас в теме
Как определить какие строки для запроса на сервер включать в заголовки, а какие нет, а также как определить возможно какие-то еще параметры нужно задать?
48. Insanity 69 26.01.15 11:32 Сейчас в теме
Спасибо за статью. Обработка работает. Но не это главное, мне очень пригодился сам метод работы с сайтами, требующими аутентификации. Я оказывается всё делал не совсем правильно. Сэкономили мне массу времени. Ещё раз спасибо.
49. xsazar 5 08.08.15 18:55 Сейчас в теме
Как теперь получить страницу, после обновления сайта???
50. xsazar 5 09.08.15 00:11 Сейчас в теме
Разобрался! Теперь так!

&НаСервере
Функция НайтиJSESSIONID()
	
	Попытка
		
		//для GET-запросов
		HTTPЗапрос1 = Новый HTTPЗапрос;
		HTTPЗапрос1.Заголовки.Вставить("Connection", "keep-alive");
		
		//для POST-запросов
		HTTPЗапрос2 = Новый HTTPЗапрос;
		HTTPЗапрос2.Заголовки.Вставить("Connection", "keep-alive");
		HTTPЗапрос2.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
		
		Соединение1 = Новый HTTPСоединение("login.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
		//Соединение2 = Новый HTTPСоединение("users.v8.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
		  //portal.1c.ru
		Соединение2 = Новый HTTPСоединение("releases.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
		
		//Запрос 1
		HTTPЗапрос1.АдресРесурса = "/releases.1c.ru/total";
		ОтветHTTP1 = Соединение2.Получить(HTTPЗапрос1);
		результат = ОтветHTTP1.КодСостояния;
		JSESSIONID = ОтветHTTP1.Заголовки.Получить("Set-Cookie");
		JSESSIONID = Лев(JSESSIONID, Найти(JSESSIONID, ";") - 1);
		Объект.JSESSIONID = JSESSIONID;
		LOCATION1 = СтрЗаменить(ОтветHTTP1.Заголовки.Получить("Location"), "https://login.1c.ru", "");
		
		//Запрос 2
		HTTPЗапрос1.АдресРесурса = LOCATION1;
		ОтветHTTP2 = Соединение1.Получить(HTTPЗапрос1);
		JSESSIONID1 = ОтветHTTP2.Заголовки.Получить("Set-Cookie");
		JSESSIONID1 = Лев(JSESSIONID1, Найти(JSESSIONID1, ";") - 1);
		inviteCode = РаспарситьinviteCode(ОтветHTTP2.ПолучитьТелоКакСтроку());
		
		//Запрос 3
		HTTPЗапрос2.АдресРесурса = "/login;" 
		+ СтрЗаменить(JSESSIONID1, "JSESSIONID=", "jsessionid=") 
		+ "?service=https%3A%2F%2Fusers.v8.1c.ru%2Fdistribution%2Fpublic%2Fsecurity_check%3Bjsessionid%3D"­ 
		+ СтрЗаменить(JSESSIONID, "JSESSIONID=", "");
		HTTPЗапрос2.Заголовки.Вставить("Cookie", JSESSIONID1);
		HTTPЗапрос2.УстановитьТелоИзСтроки(inviteCode);
		ОтветHTTP3 = Соединение1.ОтправитьДляОбработки(HTTPЗапрос2);
		LOCATION3 = СтрЗаменить(ОтветHTTP3.Заголовки.Получить("Location"), "https://releases.1c.ru", "");
		
		//Запрос 4
		HTTPЗапрос1.АдресРесурса = LOCATION3;
		HTTPЗапрос1.Заголовки.Вставить("Cookie", JSESSIONID);
		ОтветHTTP4 = Соединение2.Получить(HTTPЗапрос1);
		
		
	Исключение    
		Возврат Ложь;
	КонецПопытки;	
		
	Возврат Истина;
	
КонецФункции

&НаСервере
Функция ЗагрузитьПрограммыНаСервере()
	
	Попытка
		
		Загружено = 0;
		Запрос = Новый HTTPЗапрос;
		Запрос.Заголовки.Вставить("Connection", "keep-alive");
		Запрос.Заголовки.Вставить("Cookie", JSESSIONID);
		Запрос.АдресРесурса = "/total";
		Соединение2 = Новый HTTPСоединение("releases.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
		ОтветHTTP = Соединение2.Получить(Запрос);
		
		ЧтениеHTML = Новый ЧтениеHTML;
		ЧтениеHTML.УстановитьСтроку(ОтветHTTP.ПолучитьТелоКакСтроку());
		
		Построитель = Новый ПостроительDOM;
		ДокументHTML = Построитель.Прочитать(ЧтениеHTML);
		
		РекурсивныйПарсингСпискаКонфигураций(ДокументHTML);
		
	Исключение
		
		Возврат Ложь;
		
	КонецПопытки;
	
	Возврат Истина;
	
КонецФункции
Показать
51. markovki 19 17.08.15 16:02 Сейчас в теме
(50) xsazar, объясните чайнику пожалуйста, как подобным методом программно авторизоваться на login.1c.ru, затем с той же авторизацией попасть на страницу https://releases.1c.ru/total
Далее таким же методом хочу добраться до страницы (там 4 перехода):
https://releases.1c.ru/version_file?nick=Accounting30&ver=3.0.34.10&path=Accounting\3_0_34_10\updsetup.exe
К сожалению, не могу понять, тема для меня новая, а ваш пример не работает, возможно, что-то не так сделал, после нажатия немного думает и ничего не происходит.
52. xsazar 5 19.08.15 00:05 Сейчас в теме
(51) markovki, по вашим словам, можно понять, что вы ни чего не меняли в процедуре, где идет парсинг страницы релиза, а она обновилась, там то же нужно менять, поэтому и ни чего не происходит, у меня пока только есть регламентное задание, могу показать как идет парсинг страницы, но он для обработки не подойдет.
53. markovki 19 21.08.15 08:21 Сейчас в теме
(52) xsazar, вы правы, не менял.
Просто пытаюсь более детально разобраться как происходит переход на releases.1c.ru после авторизации.
Мне казалось, что для этого необходимы только логин/пароль и кукисы c login.1c.ru.
Зачем например, парсить страницу и собственно сама переменная inviteCode...
54. NcSteel 21.08.15 13:55 Сейчас в теме
1С изменила сайт и естественно данная конфигурация перестала работать. Будет ли доработана ?
55. barelpro 1268 27.08.15 22:04 Сейчас в теме
Внимание! Выпущена версия 3. Учтен новый дизайн сайта 1С.
56. hibico 266 01.09.15 11:17 Сейчас в теме
Здорово!
Прошу разрешение на использование Вашего кода для авторизации в моей разработке для скачивания файлов обновлений "updsetup.exe". Ссылки в коде и публикации гарантирую.
59. barelpro 1268 02.09.15 22:43 Сейчас в теме
(56) Не возражаю. Но если 1С так часто будет менять сайт и авторизацию, то это нифига не enterprise solution! Замучаетесь выпускать заплатки... Я уже замучался...
57. Avrobus 02.09.15 14:34 Сейчас в теме
На 1С слегка изменилась авторизация. Помогли такие костыли:
В функции НайтиJSESSIONID()
1. Запрос 2
Перед JSESSIONID1 = Лев(JSESSIONID1, Найти(JSESSIONID1, ";") - 1); вставить
JSESSIONID1 = Прав(JSESSIONID1, СтрДлина(JSESSIONID1) - Найти(JSESSIONID1, "SESSION") + 1);

2. Запрос 3
HTTPЗапрос2.АдресРесурса заменить на
HTTPЗапрос2.АдресРесурса = "/login?service=https%3A%2F%2Freleases.1c.ru";
barelpro; hibico; +2 Ответить
58. barelpro 1268 02.09.15 22:40 Сейчас в теме
(57) Да, что-то они зачастили... Сейчас поправлю и выложу v4
60. mcfearson 07.09.15 23:57 Сейчас в теме
Подскажите, пожалуйста. У нас здесь есть домены releases.1c.ru и login.1c.ru. Мы авторизуемся на login.1c.ru, шлем туда имя пользователя и пароль, а затем получаем страницу с releases.1c.ru. Куки разные. Как нас идентифицируют как одного и того же пользователя и дают доступ к releases.1c.ru?
61. barelpro 1268 08.09.15 18:17 Сейчас в теме
(60)
Смотрим функцию НайтиJSESSIONID()
В первом запросе к releases.1c.ru нам присваивается JSESSIONID
Во втором запросе к login.1c.ru нам присваиваются параметры inviteCode
В третьем запросе мы отправляем inviteCode с логином-паролем и получаем ticket
В четвертом запросе мы связываем JSESSIONID и ticket
63. mcfearson 09.09.15 15:55 Сейчас в теме
62. barelpro 1268 08.09.15 18:38 Сейчас в теме
Внимание! Выпущена версия 5. Оптимизирован код. Заменены методы рекурсивных парсингов на конструкции ПолучитьЭлементПоИдентификатору и ПолучитьЭлементыПоИмени. Старые функции остались закоментированными.
Спасибо коллеге Avrobus за идею! :)
64. azazana 70 21.09.15 18:30 Сейчас в теме
А подскажите, каким образом можно посмотреть какой именно post запрос формируется при когда на сайте вводишь логин и пароль?
65. azazana 70 22.09.15 10:31 Сейчас в теме
Если смотреть в Хроме, то там формируется куча различных запросов. Как отобрать нужный?
67. pihy 49 03.10.15 13:32 Сейчас в теме
(65) azazana, я искал по статусу "302". POST запрос. Внизу раздел "Form data" переключить на "View source". Эту строку и добавляю в тело запроса.
66. pihy 49 03.10.15 13:06 Сейчас в теме
Знающие люди, подскажите, пожалуйста.

Пытаюсь авторизироваться на сайте средствами 1с:

Соединение = Новый HTTPСоединение("toysland.crimea.ua");			
Заголовки = Новый Соответствие;
Заголовки.Вставить("host", "toysland.crimea.ua");
Заголовки.Вставить("Connection", "keep-alive");
Заголовки.Вставить("Accept","text/html");
Заголовки.Вставить("Accept-Language", "ru");
	
Заголовки.Вставить("Content-Length",СтрДлина(СтрЗаменить(СтрЗаменить(action=secure-login&login="$ЛОГИН$"&passwd="$ПАРОЛЬ$","$ЛОГИН$",Объект.Пользователь),"$ПАРОЛЬ$",Объект.Пароль)));
Запрос = Новый HTTPЗапрос(ТекАдрес, Заголовки);
Запрос.УстановитьТелоИзСтроки(СтрЗаменить(СтрЗаменить(Объект.ШаблонПОСТ,"$ЛОГИН$",Объект.Пользователь),"$ПАРОЛЬ$",Объект.Пароль));
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Показать


Строку action=secure-login&login="$ЛОГИН$"&passwd="$ПАРОЛЬ$" подсмотрел снифером во время отправки данных на сервер браузером.
В
Ответ.ПолучитьТелоКакСтроку();

попадает заблокированная страница. Т.е. авторизацию не проходит...
68. Arxxximed 28 30.10.15 14:43 Сейчас в теме
Подскажите, пожалуйста , как все таки получать текст страницы полученной в сжатом виде gzip. Устанавливаю Заголовок "Accept-Encoding : gzip"
По итогу HTTPОтвет.ПолучитьТелоКакСтроку() Возвращает сжатые данные

Поднял вопрос в теме http://forum.infostart.ru/forum26/topic140086/
69. tormozit 6792 23.01.16 21:20 Сейчас в теме
У меня ОтветHTTP3.КодСостояния = 200, а нужен 302. Почему такое может быть?
Ответ: в моем случае был неверный логин или пароль
70. Denois1333 17.02.16 08:11 Сейчас в теме
Здравствуйте, подскажите пожалуйста, не получается авторизоваться на сайте интернет банка. Там то тоже используется HTTPS, но если при авторизации на users.v8.1c.ru в теле POST запроса отправляются незашифрованные логин/пароль, то в интернет банк отправляется шифрованный пароль, причем всегда разный. Как сформировать POST запрос на авторизацию?
71. Denois1333 19.02.16 11:15 Сейчас в теме
Разобрался со своей проблемой, там действительно при каждой авторизации происходит шифрование пароля. Я разобрал алгоритм шифрования и на авторизацию отправляю шифрованный пароль. HTTPS соединение и сертификаты здесь не причем. Кодирование идет встроенными процедурами сайта.
74. info@itshkola.com 21.03.16 21:39 Сейчас в теме
Валерий, здравствуйте!
Можно Вас попросить эту обработку скинуть на business.kavun@gmail.com
Уж очень нужна, а нет возможности скачать.
Спасибо большое за статью - очень грамотно написана
75. biformatus 25.10.16 18:45 Сейчас в теме
Сломалось что-то.
Функция РаспарситьinviteCode(Текст)
	
	ЧтениеHTML = Новый ЧтениеHTML;
	ЧтениеHTML.УстановитьСтроку(Текст);
	
	Построитель = Новый ПостроительDOM;
	ДокументHTML = Построитель.Прочитать(ЧтениеHTML);
	
	loginForm = ДокументHTML.ПолучитьЭлементПоИдентификатору("loginForm");
	
	inviteCode = "inviteCode=<=" + loginForm.Элементы[1].Значение 
				+ "&execution=" + loginForm.Элементы[2].Значение 
				+ "&_eventId=" + loginForm.Элементы[3].Значение
	 			+ "&username=" + КонстантыНабор.username 
				+ "&password=" + КонстантыНабор.password;
				
	//РекурсивныйПарсингСтраницыЛогина(ДокументHTML, inviteCode);
	//inviteCode = inviteCode + "&username=" + КонстантыНабор.username + "&password=" + КонстантыНабор.password;
	
	Возврат inviteCode;
	
КонецФункции
Показать


Здесь ошибка - не получает элемент по идентификатору loginForm. Логин и пароль рабочие.
77. barelpro 1268 24.05.17 22:32 Сейчас в теме
(75) Проверил только что, был удивлен, что до сих пор работает! )))
76. Yashazz 4472 24.05.17 16:27 Сейчас в теме
Как разработка - возможно, неплохо. Как статья - хуже некуда. Собственно, статьи нет, есть пара цитат из СП и нихрена не понятно, как этим пользоваться. Разочарован.
baracuda; +1 Ответить
78. barelpro 1268 24.05.17 22:34 Сейчас в теме
(76) Если что-то не понятно, это еще не повод разочаровываться! ;)
79. baracuda 2 21.08.17 15:00 Сейчас в теме
1С наверное никогда не додумается дать доступ к обновлениям через человеческий API, потому и возникают такие костыли как данная разработка.
murat_; u_n_k_n_o_w_n; Nicholas; Sergafan10; VitaliyCeban; markovki; barelpro; +7 Ответить
80. Nicholas 872 13.11.17 15:49 Сейчас в теме
На третьем шаге, при выполнении ОтправитьДляОбработки() стало возвращать код 500. Что это может означать?
83. DimaShapovaloff 22.03.19 18:48 Сейчас в теме
(80) Исправьте ошибочку в РаспарситьinviteCode(). &execution индекс 4, а не 3
81. realchel 23.10.18 12:14 Сейчас в теме
Код закрытый или открытый?
Мы тогда купили.
82. DimaShapovaloff 22.03.19 18:25 Сейчас в теме
Исправьте ошибочку в парсилке. &execution индекс 4, а не 3

&НаСервере
Функция РаспарситьinviteCode(Текст)
	
	ЧтениеHTML = Новый ЧтениеHTML;
	ЧтениеHTML.УстановитьСтроку(Текст);
	
	Построитель = Новый ПостроительDOM;
	ДокументHTML = Построитель.Прочитать(ЧтениеHTML);
	
	loginForm = ДокументHTML.ПолучитьЭлементПоИдентификатору("loginForm");
	
	inviteCode = "inviteCode=&username=" + КонстантыНабор.username 
				+ "&password=" + КонстантыНабор.password
				+ "&execution=" + loginForm.Элементы[4].Значение
				+ "&_eventId=submit"
				+ "&geolocation="
				+ "&submit=Войти"
				+ "&rememberMe=on"
				;
				
	//РекурсивныйПарсингСтраницыЛогина(ДокументHTML, inviteCode);
	//inviteCode = inviteCode + "&username=" + КонстантыНабор.username + "&password=" + КонстантыНабор.password;
	
	Возврат inviteCode;
	
КонецФункции
Показать
84. barelpro 1268 22.03.19 19:49 Сейчас в теме
(82) Что-то поменялось на сайте 1С?
85. barelpro 1268 22.03.19 20:00 Сейчас в теме
(84) Да действительно поменялось, поправил, спасибо!
86. DimaShapovaloff 23.03.19 01:03 Сейчас в теме
(85) Не за что. Спасибо за публикацию
89. Gamm 13 17.06.19 14:46 Сейчас в теме
(85)
Опять поменялось) Теперь &execution индекс 6
(84)
suepifanov; warrior1985; DimaShapovaloff; +3 Ответить
90. warrior1985 67 17.07.19 12:44 Сейчас в теме
91. RocKeR_13 1199 14.01.20 16:09 Сейчас в теме
(85) чтобы отвязаться от индексов можно сделать перебор элементов:
	loginForm = ДокументHTML.ПолучитьЭлементПоИдентификатору("loginForm");
	Элементы 	= loginForm .Элементы;
	Для Каждого Элемент Из Элементы Цикл
		Если Элемент.Имя = "inviteCode" Тогда
			inviteCode = Элемент.Значение;
		ИначеЕсли Элемент.Имя = "execution" Тогда 
	    	execution = Элемент.Значение;
		ИначеЕсли Элемент.Имя = "_eventId" Тогда 
	    	eventId = Элемент.Значение;
		КонецЕсли;
	КонецЦикла;
Показать
92. barelpro 1268 14.01.20 19:25 Сейчас в теме
(91)

ага, в последней версии так и сделано:

	loginForm = ДокументHTML.ПолучитьЭлементПоИдентификатору("loginForm");
	execution = "";
	Для Каждого Итератор Из loginForm.Элементы Цикл
		Если Итератор.Имя = "execution" Тогда
	    	execution = Итератор.Значение;
			Прервать;
		КонецЕсли;
	КонецЦикла;
Показать
RocKeR_13; +1 Ответить
88. alf2006x 25 07.05.19 11:29 Сейчас в теме
Статья отличная!
Особенно порадовало то, что пример загрузки в базе был рабочий. ИТС легко открылся.
Очень долго не мог понять как работает вся эта пост- и гет- шняга в 1С83.
Посмотрел пример ИТС и нарисовал подобное для своей задачи.
Теперь спокойно захожу и скачиваю всё что необходимо на нужный мне сайт (https).
Гораздо быстрее и надежнее, чем собирался сделать при помощи InternetExplorer.Application.
По тому пути я дошел почти до конца, упёрся в сохранение файла, понял что окошко в IE11, предлагающее "Вы
хотите сохранить..." красивыми методами непобедимо, плюнул и пошёл разбираться с интернет запросами.
Попалась эта статья, один вечер и готово.
Единственное, маловато написано про то, как в яндекс.браузере правильно читать заголовки: откуда что брать
и куда что ложить в новом запросе. Думаю для тех кто впервые сталкивается с задачей подобного рода это лишним не было бы.
sergo5; Romario_; +2 Ответить
93. clev 6 03.03.20 12:45 Сейчас в теме
Спасибо за разработку, помогла разобраться, как сделать получение релизов на питоне.
Вот функции для получения html-страницы с релизами:

import requests
from bs4 import BeautifulSoup

def getParamExecution(html_text):
    soup = BeautifulSoup(html_text, 'lxml')
    inputItem = soup.find('input',{'name':'execution'})
    if (inputItem!=None) and ('value' in inputItem.attrs):
        res = inputItem.attrs['value']
    else:
        res = None
    return res

def getHtmlTable():
    login = 'login'
    passw = 'passw'

    # Первый запрос для получения временных параметров.
    # 1.cookie SESSION сохраняется в сессии newSession
    # 2.парамер execution нужен для отправки во втором запросе
    adrLogin = 'https://releases.1c.ru/total'
    headersLogin = {'Connection': 'keep-alive'}
    newSession = requests.Session()
    r = newSession.get(adrLogin, headers = headersLogin)
    #session_id = r.cookies['SESSION']
    paramExecution = getParamExecution(r.text)
    if paramExecution == None:
        return ''

    # Второй запрос, происходит авторизация через форму на сайте.
    # Затем выполняется редирект на страницу с релизами
    # возвращает текст страницы с релизами в r.text
    adrPost = 'https://login.1c.ru/login'
    formData = {'inviteCode':'', 
            'inviteType':'',
            'username': login,
            'password': passw,
            'rememberMe': 'on',
            'execution': paramExecution,
            '_eventId': 'submit',
            'geolocation': '',
            'submit': 'Войти'}
    r = newSession.post(adrPost, data=formData)
    return r.text
Показать
94. Ibrogim 1282 12.05.20 20:47 Сейчас в теме
(93)
inputItem!=Non

На питоне мне кажется проще каким нибудь Selenium воспользоваться для авторизации.
95. clev 6 13.05.20 10:14 Сейчас в теме
В питоне я новичок, только начал осваивать.
(94)
Selenium

Спасибо за совет, посмотрю, что это.
96. Ibrogim 1282 13.05.20 10:34 Сейчас в теме
(95)
В питоне я новичок

Я тоже там не далеко от "hello world" ушел )

Будет идея для совместной поделки для самообразования, пишите !
97. delta 576 23.08.20 08:04 Сейчас в теме
Доброго дня!
Никто не сталкивался с проблемой, что в в последние несколько дней информация по обновлениям версий конфигураций 1С не загружается?
Логин и пароль на портал releases.1c.ru внесены верно (на самом портале обновления есть), а вот в функции ЗагрузитьВерсииНаСервере
переменная versionsTable = ДокументHTML.ПолучитьЭлементПоИдентификатору("versionsTable") сейчас всегда принимает значение Неопределено.
98. petya73 25.08.20 10:29 Сейчас в теме
(97) со стороны сайта изменились заголовки, в 2-х местах изменили заглавные буквы на строчные
Надо изменять НайтиJSESSIONID()


&НаСервере
Функция НайтиJSESSIONID()
		
	Попытка
			
		//для GET-запросов
		HTTPЗапрос1 = Новый HTTPЗапрос;
		HTTPЗапрос1.Заголовки.Вставить("Connection", "keep-alive");
		
		//для POST-запросов
		HTTPЗапрос2 = Новый HTTPЗапрос;
		HTTPЗапрос2.Заголовки.Вставить("Connection", "keep-alive");
		HTTPЗапрос2.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
		
		Соединение1 = Новый HTTPСоединение("login.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
		Соединение2 = Новый HTTPСоединение("releases.1c.ru",,,,Новый ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
		
		//Запрос 1
		HTTPЗапрос1.АдресРесурса = "/total";
		ОтветHTTP1 = Соединение2.Получить(HTTPЗапрос1);
		JSESSIONID = ОтветHTTP1.Заголовки.Получить("Set-Cookie");
		JSESSIONID = Лев(JSESSIONID, Найти(JSESSIONID, ";") - 1);
		LOCATION1 = СтрЗаменить(ОтветHTTP1.Заголовки.Получить("Location"), "https://login.1c.ru", "");
		
		//Запрос 2
		HTTPЗапрос1.АдресРесурса = LOCATION1;
		ОтветHTTP2 = Соединение1.Получить(HTTPЗапрос1);
		JSESSIONID1 = ОтветHTTP2.Заголовки.Получить("set-cookie");
		JSESSIONID1 = Прав(JSESSIONID1, СтрДлина(JSESSIONID1) - Найти(JSESSIONID1, "SESSION") + 1); 
		JSESSIONID1 = Лев(JSESSIONID1, Найти(JSESSIONID1, ";") - 1);
		inviteCode = РаспарситьinviteCode(ОтветHTTP2.ПолучитьТелоКакСтроку());

		//Запрос 3
		//HTTPЗапрос2.АдресРесурса = "/login;" 
		HTTPЗапрос2.АдресРесурса = "/login?service=https%3A%2F%2Freleases.1c.ru";
		//+ СтрЗаменить(JSESSIONID1, "JSESSIONID=", "jsessionid=") 
		//+ "?service=https%3A%2F%2Freleases.1c.ru%2Fdistribution%2Fpublic%2Fsecurity_check%3Bjsessionid%3D"­ 
		//+ СтрЗаменить(JSESSIONID, "JSESSIONID=", "");
		HTTPЗапрос2.Заголовки.Вставить("Cookie", JSESSIONID1);
		HTTPЗапрос2.УстановитьТелоИзСтроки(inviteCode);
		ОтветHTTP3 = Соединение1.ОтправитьДляОбработки(HTTPЗапрос2);
		LOCATION3 = СтрЗаменить(ОтветHTTP3.Заголовки.Получить("location"), "https://releases.1c.ru", "");
		
		//Запрос 4
		HTTPЗапрос1.АдресРесурса = LOCATION3;
		HTTPЗапрос1.Заголовки.Вставить("Cookie", JSESSIONID);
		ОтветHTTP4 = Соединение2.Получить(HTTPЗапрос1);
		
	Исключение
		
		Возврат Ложь;
		
	КонецПопытки;
	
	Возврат Истина;
	
КонецФункции
Показать
AnufrievYakov; tormozit; +2 Ответить
99. delta 576 25.08.20 13:22 Сейчас в теме
(98) Огромное спасибо! Проблема действительно заключалась в этом.
Lord_Kingovich; +1 Ответить
Оставьте свое сообщение

См. также

Получение/отправка сообщений RabbitMQ через REST API

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Простой пример получения и отправки сообщений в брокер сообщений RabbitMQ через REST API из 1С без сторонних компонент и middleware.

1 стартмани

23.09.2022    5938    17    NikeeNik    16    

44

#KafkaЭтоПросто: Kafka Adapter 1С (Confluent) - отправляем сообщения

Инструментарий разработчика Внешние источники данных WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Сегодня поднимем в docker kafka с confluent'om, а в 1С, в EDT загрузим проект из репозитория, создадим обработку, в которой несколькими строчками отправим сообщение в kafka через rest proxy и в confluent control center посмотрим на него. Если коротко, то: как отправить сообщение в Kafka несколькими строчками кода без компонент, регистраций и смс.

5 стартмани

24.07.2022    7716    21    huxuxuya    29    

75

Распознавание текста из изображений и PDF с помощью нейросетей Yandex Vision и 1С

Обработка документов WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

5 стартмани

13.07.2022    7481    9    kiv1c    5    

35

Api идеи для начинающих

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

Данная обработка подойдет тем, кто только начинает знакомиться с механизмами api в 1С. В обработке представлены взаимодействия с 12 простыми сайтами на примерах. Решения не затрагивают полной документации, а носят лишь ознакомительный характер. Делал на платформе 8.3.20.

1 стартмани

16.06.2022    8488    23    user676027_svikator    5    

70

Заполнение контрагентов по ИНН для УТ 10.3

Обработка справочников WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 10 Россия Абонемент ($m)

Заполнение контрагентов по ИНН (1С: Управление торговлей 10.3).

6 стартмани

17.05.2022    5644    35    kostyan7    20    

1

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

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

Делаем табло в обозревателе из 1Ски с нуля за полчаса. Без бутстрапов, реактов и ангуляров. Жизнетрюки от kuzkov.info

Разработка внешних компонент WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

02.05.2022    7947    124    Steelvan    0    

66

Обмен данными с Web-сервисами

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

Обработка предназначена для быстрой настройки обмена данными с Web-сервисами из пользовательского интерфейса.

10 стартмани

29.04.2022    5794    31    ns_bulatov    4    

36

Сервис push-уведомлений для 1С (Push Notification Service For 1C - PNS4OneS)

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

02.02.2022    11970    36    ltfriend    9    

87

Создание интерактивных обучающих курсов с помощью Vanessa Interactive

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

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

1 стартмани

02.02.2022    6428    1    Viktor_Ermakov    2    

34

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

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

Создание простых сайтов на основе http сервисов - tips and tricks

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Универсальный метод, html шаблоны, страницы с авторизацией и без, многоязычность, страница авторизации, etc.

1 стартмани

22.01.2022    8392    11    vl-sher1    29    

38

1Scan. Интеграция веб-клиента 1С с устройством Android (смартфон, планшет, ТСД)

Мобильная разработка WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Получение из Android устройства данных сканера штрихода, камеры, GPS, широковещательных сообщений и передача в код модуля формы 1С для дальнейшей обработки.

1 стартмани

15.11.2021    9089    37    kild    33    

29

Расширение конфигурации для Web-доступа к 1С (1С в роли back-end)

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

Для реализации того, чтобы 1С формировала и отдавала страницу, которую можно было бы открыть через браузер было написано расширение, которое позволяет публиковать из 1С произвольные ресурсы, будь то API, сайт или изображения / прочие файлы.

1 стартмани

01.04.2021    17513    20    SaschaG    4    

64

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

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

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021    23203    69    Parsec1C    20    

80

Отправка Push-уведомлений через сервис Firebase Cloud Messaging по протоколу FCM HTTP v1 API

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

При разработке нативного приложения Android для ТСД, в котором присутствует функционал отображения задач кладовщикам, созданных в 1С, возникла необходимость отправлять push-уведомления о появлении новых задач. Для отправки таких уведомлений было решено использовать сервис Firebase Cloud Messaging (FCM). Так как для 1С, в отличии от других языков программирования, не существует готовых библиотек, что вполне логично, то очевидным способом отправки является использование протокола HTTP. Однако, существующая информация в интернете в части 1С содержит только сведений об отправке push-уведомлений через этот сервис с использованием устаревшего протокола HTTP Firebase Cloud Messaging. Сам Google не рекомендует использовать данный протокол и настоятельно склоняет к переходу на новый протокол FCM HTTP v1 API. Что ж, пришлось разбираться самостоятельно.

1 стартмани

24.03.2021    17635    27    ltfriend    16    

34

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

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

3 500 рублей

BIM: взаимодействие с платформой Autodesk Forge

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

Предлагаемый пример демонстрирует широкие возможности для взаимодействия «1С:Предприятие» с платформой Autodesk Forge и позволяет вам получить базовые представления о применения технологий информационного моделирования в строительстве. Поддерживаются все версии платформы от 8.3.12 и выше до 8.3.18.

1 стартмани

25.11.2020    77706    16    kandr    3    

6

Генератор маршрута по "документам отгрузки" в Google.Maps

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

Данная обработка будет полезна для построения маршрута по документам реализаций за выбранный период.

7 стартмани

08.11.2020    18012    18    quazare    22    

41

1С + react native

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример реализации клиента для 1С на react native.

1 стартмани

09.10.2020    16973    12    van_za    9    

34

Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

02.10.2020    33038    9    hpi    18    

73

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 1 - RabbitMQ

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Часто 1С не может взаимодействовать со сторонними продуктами, например для шины предприятия RabbitMQ создают внешние компоненты. В статье предлагается новомодный подход REST API реализованный на приложении прокладке Middleware, язык тоже трендовый Golang. В статье немного познакомлю Вас с языком Golang, опишу интеграцию на стороне 1С (8.3.16.1502). Если статья зайдет, напишу как выгружать журнал регистрации по этой схеме в ElasticSearch

1 стартмани

31.08.2020    19529    19    dmitry-irk38    15    

38

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

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

Конвертация любых адресов, написанных в свободной форме, к ФИАС

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

Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал "ДА!", выкладываю данную обработку.

2 стартмани

30.06.2020    17414    139    XilDen    19    

28

HTTP сервисы по OpenAPI спецификациям

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Начинаем путь разработки HTTP сервисов с создания спецификаций OpenAPI. Автодокументация сервисов формата Swagger UI без зависимостей. Настройка сервисов в режиме предприятия.

1 стартмани

29.06.2020    25166    28    shmalevoz    22    

89

Конструктор HTTP-соединений в 1С (обычные и управляемые формы)

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

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

1 стартмани

02.06.2020    13974    40    Denr83    0    

36

Модуль обмена с QIWI

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

Компании, которые используют систему моментальных платежей QIWI, ценят ее за удобство по скорости выплат и для платежей по запросу. Но такие переводы сложны для учета, а при большом объеме проводимых операций отнимают много времени и превращаются в дополнительную головную боль. Мы сотрудничали с компаниями, которые отправляют большое количество платеже на QIWI, и часто слышали боль бухгалтеров о том, как им сложно работать с такими переводами. Поэтому мы автоматизировали выплаты через QIWI в 1С и создали модуль интеграции 1С c API QIWI Wallet и QIWI TopUp.

5 стартмани

25.05.2020    15459    2    Neti    10    

16

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

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

oData – HTTP-сервис для ленивых.

WEB-интеграция Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

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

1 стартмани

10.05.2020    20273    37    Forest83    2    

58

DaJet QL - расширяемый язык запросов

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

DaJet QL поддерживает практический полный синтаксис SQL Server 2005-2016. Кроме этого это расширяемый язык запросов. Обращение к объектам СУБД выполняется в терминах метаданных 1С. Доступ к возможностям этого языка запросов реализован в виде web api сервиса. Результаты запросов возвращаются в виде JSON.

1 стартмани

20.04.2020    19609    12    zhichkin    19    

42

Пример работы с Trello из 1С

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

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

1 стартмани

15.02.2020    25670    62    terrorion    18    

59

"Учет штрафов ГИБДД" с возможной загрузкой из открытых источников в интернет Расширение конфигурации 1С: Предприятие 8.3

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

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

4 стартмани

30.12.2019    30261    43    capitan    30    

1

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Односторонний файловый обмен с сайтом по ftp (1C 2 Web)

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 1С:Розница 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

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

3 стартмани

09.12.2019    21357    25    LamerSoft    0    

19

Google drive - менеджер файлов

WEB-интеграция Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    32970    49    zykov_vitaliy    28    

45

Автозаполнение адреса по КЛАДР в УПП при выгрузке контрагента с портала компании (API dadata)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Заведение, согласование контрагентов организовано на портале компании. Далее по web-сервису контрагенты выгружаются в УПП (юр.адрес и факт.адрес выгружаются строкой). Задача автоматизировать заполнение адреса в УПП по КЛАДР.

1 стартмани

03.12.2019    15876    3    John_d    10    

27

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Яндекс сервисы [Расширение]

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

Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)

1 стартмани

24.10.2019    21897    13    noprogrammer    12    

42

Выгрузка номенклатуры в социальную сеть Вконтакте

WEB-интеграция Оптовая торговля Розничная торговля Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для быстрой и легкой выгрузки товаров Вконтакт. Так просто еще не было)))

2 стартмани

14.08.2019    32700    73    kaliuzhnyi    48    

44

Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

12.08.2019    43318    92    MaxPowerr    7    

38

Конфигурация для обмена данными (интеграционная шина)

Внешние источники данных WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

4 стартмани

08.07.2019    29442    46    miha-28    17    

41