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

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

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

парсинг сайтов XPath XML JSON

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

ПАРСИНГ САЙТОВ НА 1С

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

ВВЕДЕНИЕ

Обычно для парсинга сайта нужно просто взять страницу и найти на ней определенные теги. Совсем юные дарования просто читают строки одну за другой и проверяют их на наличие какой-то комбинации символов, после которой они ожидают увидеть те или иные полезные данные. Более взрослые товарищи используют для этого XPath.

Мне пришлось использовать следующие объекты: ЧтениеJSON, ЧтениеXML, HTTPСоединение и HTTPЗапрос ну и ПостроительDOM, с помощью которого мы будем парсить через XPath.

Но давайте по-порядку.

С ЧЕГО НАЧАТЬ?

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

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

Итак, загрузив сайт ломбарды.рф мы видим следующую картину:

Здесь мы видим, что нам доступна только маленькая часть списка. За остальными нужно лезть через "Еще результаты".

Если мы посмотрим код, то по этой кнопке дергается сервис (data-url="/lombards/load_more.php?category=&sort=&minloan=&maxloan=&region="). Если мы откроем в браузере эту ссылку, то увидим вот такую интересную штуку:

Как подсказывает нам ({"content":" \n) в начале строки - это JSON. 1С умеет его читать, поэтому давайте начнем с простого - создадим HTTP-запрос и обработаем ответ.

СОЗДАНИЕ HTTP-СОЕДИНЕНИЯ, ВЫЗОВ ЗАПРОСА И ОБРАБОТКА ОТВЕТА

Для создания HTTP-соединения и запроса в 1С есть простые объекты, которые прямо так и называются:

  С = Новый HTTPСоединение(Адрес);
  З = Новый HTTPЗапрос(Урл);

После того, как мы прочитали JSON и распарсили его, получили такой вот объект:

В объекте есть два поля: content и remaining, в первом находится HTML страницы, а во втором - количество оставшихся элементов.

Давайте попробуем засунуть значение в ДокументDOM, чтобы можно было написать к нему XPath:

	П = Новый ПостроительDOM;
	Х = Новый ЧтениеXML;
	Х.УстановитьСтроку(СС["content"]);
	ДОМ = П.Прочитать(Х);
	Р = Новый РазыменовательПространствИменDOM(ДОМ);
	Результат = ДОМ.ВычислитьВыражениеXPath(".", ДОМ, Р, ТипРезультатаDOMXPath.Любой);

Итак, что тут происходит? Я прочитал JSON в соответствие СС, после чего создал построитель ДОМ, которым прочитал XML из СС["content"]. Но у меня вывалилась первая ошибка:

{ВнешняяОбработка.ЧтениеЛомбардов.Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Прочитать)
    ДОМ = П.Прочитать(Х);
по причине:
Ошибка разбора XML:  - [8,41]
Фатальная ошибка:
Opening and ending tag mismatch: img line 7 and a

Что там у нас в 7-й строке? Тег img, который не закрывается!

<img src="http://xn--80abkzflr3g.xn--p1ai/upload/iblock/74a/74a8c12d4c7acf804a0812b501bd0d5a.jpg" alt="">

Да, мы можем прочитать данные в ДокументHTML вместо DOM, но тогда нам не будет доступен XPath. Также мы не можем просто так взять и поправить все ">" на "/>" - есть такие теги, которые содержат внутренние элементы. Надеюсь Вы теперь понимаете, почему почтенные веб-разработчики просят соблюдать стандарт и не писать "<br>" вместо "<br />" (кстати, не стоит путать стандарт XML и нечто от 1С об именовании переменных).

Благо, что у нас в img всегда есть alt, по которому мы сможем узнать, что тег надо закрыть. Итак, давайте исправим это:

	Ст = СтрЗаменить(СС["content"], "alt="""">", "alt="""" />");

Но ничего не вышло:

Ошибка разбора XML:  - [39,1]
Фатальная ошибка:
Extra content at the end of the document

Что на этот раз? Тут все просто - 1С не может прочитать неполный документ, т.е. все теги документа должны быть в одном корневом контейнере. Исправить это нетрудно:

	Ст = "<main>" + СтрЗаменить(СС["content"], "alt="""">", "alt="""" />") + "</main>";

В итоге при чтении XML в DOM у нас пока больше нет ошибок. На том же PHP у меня нет ошибок сразу - я могу любую ересь в него прочитать и применить к прочитанному XPath. Но это так - лирическое отступление.

XPATH-ВЫРАЖЕНИЯ В 1С

Для того, чтобы применить ограниченный функционал XPath в 1С прежде всего нам нужен ДокументDOM и РазименовывательПространствИменDOM. Если со смыслом первого объекта как-то можно смириться, то вникнуть в смысл второго у меня пока не получается - я просто инициализирую его через документ - и все:

	Р = Новый РазыменовательПространствИменDOM(ДОМ);
	Результат = ДОМ.ВычислитьВыражениеXPath("//div[@class='item-info']", ДОМ, Р);

В результате мы получим объект с типом "РезультатXPath". Для получения элемента нам нужно просто вызвать его функцию "ПолучитьСледующий()":

	Пока Истина Цикл 
		Узел = Результат.ПолучитьСледующий();
		Если Узел = Неопределено Тогда Прервать;
		КонецЕсли;

		// какой-то полезный код
	КонецЦикла;

У нас на странице будет 5 элементов, которые мы получили с помощью запроса "//div[@class='item-info']". Мы выбрали все элементы "div" у которых атрибут "class" равен "item-info".

Итак, мы получили элементы XML, в которых содержатся имена и адреса ломбардов. Можно лазить за ними через всю эту иерархию ДОМ'а, а можно просто применить XPath к указанным узлам. Если посмотреть внимательно на файл, то можно увидеть, что имя ломбарда содержится в div'е с классом "item-info__title", там же и ссылка на страницу с телефоном (в действительности - на ее редирект). А адрес находится в теге "<address>". Давайте напишем для них XPath-выражения:

	Результат1 = ДОМ.ВычислитьВыражениеXPath("//div[@class='item-info']", ДОМ, Р);

	Пока Истина Цикл 
		Узел = Результат1.ПолучитьСледующий();
		Если Узел = Неопределено Тогда Прервать;
		КонецЕсли;
		Результат2 = ДОМ.ВычислитьВыражениеXPath("./div[@class='item-info__title']/h4/a/text()", Узел, Р, ТипРезультатаDOMXPath.Строка);
		Результат3 = ДОМ.ВычислитьВыражениеXPath("./div[@class='item-info__title']/h4/a/@href", Узел, Р, ТипРезультатаDOMXPath.Строка);
		
		Результат = Результат + "
		|ИМЯ: " + Результат2.СтроковоеЗначение + "
		|Урл: " + Результат3.СтроковоеЗначение;
	КонецЦикла;

В результате мы получим что-то такое:

ИМЯ:
                        VIPLOMBARD                    
Урл: /lombards/yuvelirnye/10370
ИМЯ:
                        Chronoland                    
Урл: /lombards/yuvelirnye/10374
ИМЯ:
                        AUTO-PERSPECTIVA                    
Урл: /lombards/avtomobiley/10442
ИМЯ:
                        Кредиты Населению Автоломбард                    
Урл: /lombards/avtomobiley/10443
ИМЯ:
                        Гольфстрим (Профсоюзная, 127Б)                    
Урл: /lombards/avtomobiley/10504

Дальше нам придется прочитать данные по ссылке и получить уже из обычного HTML информацию об адресах, телефонах и прочем.

ИТОГ

В ходе парсинга я столкнулся со следующими проблемами:

  1. Редирект. По указанной в Урл странице находится страница с перманентным редиректом. Взять из нее адрес не составит никакого труда. а определить ее можно по 301-й ошибке в ответе веб-сервера.
  2. Наличие в комментарии двух минусов подряд ("--"). Такой комментарий ДОМ 1С не читает и вы получите эксепшн. Как бороться? СтрЗаменить - наше все.
  3. Закрывающийся тег </b> без открывающегося. Просто удалял все <b> и </b>.
  4. Тег <br> - менял на <br />, но можно просто удалить.
  5. "&" в текстовых полях - надо менять на "&amp;", иначе 1С такой XML не прочитает.
  6. Ну и не надо читать весь HTML - начните с <body> и им же заканчивайте (для этого сайта лучше начать и закончить тегом <main> - он там как раз есть).
  7. Вишенка на торте - скрытый параметр, подставляемый в урл JSON-а, получаемого PHP-скриптом. Найдите его сами - в качестве домашнего задания. Подскажу - можно воспользоваться консолью хрома и запустить сбор данных о производительности - там будут все запросы, а в них, в свою очередь, будут все параметры.
  8. Удачи!
67

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

Комментарии
Избранное Подписка Сортировка: Древо
1. bonv 917 01.04.19 15:53 Сейчас в теме
(0)
1. Редирект. По указанной в Урл странице находится страница с перманентным редиректом. Взять из нее адрес не составит никакого труда. а определить ее можно по 301-й ошибке в ответе веб-сервера.

Используйте
https://infostart.ru/public/709325/
и не будет проблем с редиректами
starik-2005; +1 1 Ответить
2. webester 29 02.04.19 12:33 Сейчас в теме
(1)Мне нравится простой пример с ИТС https://its.1c.ru/db/metod8dev#content:5574:hdoc обрабатывает перенаправления указывает на типы ошибок
3. bonv 917 02.04.19 12:43 Сейчас в теме
(2) все хорошо, пока не захочется парсить сайты, требующие предварительной авторизации
4. webester 29 02.04.19 12:52 Сейчас в теме
(3)Это на тему перенаправления. Использовать только ради него Коннектор, как из пушки по воробьям. Библиотека сама по себе отличная.
6. Поручик 4334 02.04.19 21:19 Сейчас в теме
7. starik-2005 1972 02.04.19 22:49 Сейчас в теме
Редирект на столько прост, что я о нем даже говорить не стал - скучно! Особенно когда редирект внутри одного домена

О = С.Ролучить(З);
Если О.КодОтвета МЕЖДУ 300 и 399 Тогда
  З = Новый HTTPЗапрос(ПолучитьУрл(О));
  О = С.Получить(З);
КонецЕсли;
8. s_vidyakin 03.04.19 02:28 Сейчас в теме
лучше поднапрячься и изучить как это делается в цивилизованном мире - nodejs + axios + cheerio https://nuancesprog.ru/p/3102/ делов на полчаса ))
XPath это непонятная хрень, иногда работает иногда нет, на определенных тегах/классах/фазах Луны
testnv0; starik-2005; +2 1 Ответить
9. starik-2005 1972 03.04.19 07:20 Сейчас в теме
(8) ну это как с регулярками - у меня работает, а у пользователей компьютера не всегда, хотя у нас даже аналитики уже регулярки освоили и дату в локальном формате могут заменять на xml- дату, и всегда работает)))
for_sale; +1 Ответить
13. s_vidyakin 03.04.19 11:14 Сейчас в теме
(9) пробовал получать вложенные теги в определенном теге, указываю типа ".class1 > .class2" - НОЛЬ элементов. В консоли браузера все выбирается. Пришлось выбирать глобальным поиском по class2, но они там и в других местах были, логика усложнилась проверками. Больше с XPath не связываюсь
Возможно было бы более интересно если бы написали библиотеку на OScript типа cheerio и сделали обзор )
14. starik-2005 1972 03.04.19 11:22 Сейчас в теме
(13)
пробовал получать вложенные теги в определенном теге, указываю типа ".class1 > .class2" - НОЛЬ элементов
Если речь об 1С, то я даже уточнил в статье, что XPath в ней ограничен. Хотя //div[@class='c1']/div[class='c2']/text() - вполне рабочая конструкция даже для 1С.
10. starik-2005 1972 03.04.19 08:55 Сейчас в теме
(8) кстати, вывод автора неутешительный: "мы можем извлекать данные только из статических сайтов". Я же привел пример извлечения из динамического сайта как раз - основная хитрость тут - это разобраться с источниками данных.

Также если посмотреть на статью внимательно, то понятно становится, что ничего нового - тот же запрос к HTML-ДОМ'у, преобразованному в виртуальный ДОМ с помощью компонента node.
11. s_vidyakin 03.04.19 11:07 Сейчас в теме
(10) там есть вторая часть, для динамических сайтов - https://nuancesprog.ru/p/3125/.
Конечно тот же DOM, но удобнее, у XPath язык отличается от стандартных CSS селекторов
Да и скорость еще под вопросом у XPath, думаю он ляжет на больших объемах
testnv0; starik-2005; +2 Ответить
12. starik-2005 1972 03.04.19 11:11 Сейчас в теме
(11) так я и не спорю, что 1С для парсинга сайтов подходит весьма условно. Во второй статье очень хороший и интересный подход через кликер для динамики - реально вещь! )))
15. fr13 635 04.04.19 10:46 Сейчас в теме
Материал полезен для новичков в этой теме, но зачем же так называть переменные?
16. starik-2005 1972 04.04.19 13:32 Сейчас в теме
(15)
но зачем же так называть переменные?
Переменные названы просто отлично. Так, как в примерах для других языков программирования.
ЗЫ: Я, кстати, тоже с Вологды.
Прикрепленные файлы:
17. TODD22 18 04.04.19 13:33 Сейчас в теме
(16)Вы все переменные называете как "счётчик цикла" ?
18. starik-2005 1972 04.04.19 13:35 Сейчас в теме
(17)
Вы все переменные называете как "счётчик цикла" ?
Мы все переменные называем ровно так, чтобы было понятно, что они есть.
19. TODD22 18 04.04.19 14:11 Сейчас в теме
(18)
Да я заметил "О", "С", "З"... очень содержательные имена.
20. starik-2005 1972 04.04.19 14:18 Сейчас в теме
(19) для понимания достаточно?
21. premierex 05.04.19 16:54 Сейчас в теме
(20) Вот имя переменной ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений вполне себе содержательное. Для понимания достаточно, даже если с места её объявления прокрутить несколько сотен строк, смысл всё равно будет понятен.
А вот смысловую нагрузку "О", "С", "З" можно понять, если текст, где происходит объявление этой переменной и где время её жизни заканчивается, находятся на одной экранной страннице. Не экономьте время на читабельности кода! Через некоторое время самому сложно будет этот код править.
22. starik-2005 1972 05.04.19 21:20 Сейчас в теме
(21) кто не умеет - тому пропроцессор компоновки как ни назови - все бессмысленно. А кто умеет - тому хоть горшком (наролная мудрость, кстати, а вряд ли мы умнее народа по-одному)
24. fr13 635 06.04.19 11:28 Сейчас в теме
(16) мы пересекались в Вологде года 4 назад. Магазин автозапчастей. Я тогда работал в своем первом франче, а Вы были как приглашенный московский спец ))
25. starik-2005 1972 06.04.19 17:19 Сейчас в теме
(24) я кстати к ним на днях заеду - чисто поглядеть. А по поводу приглашенного - это мои клиенты с 2004-го года.
26. starik-2005 1972 25.04.19 15:21 Сейчас в теме
(24) кстати, переработал и дополнил их программно-аппаратную часть - вот что получилось: https://infostart.ru/public/1051601/
27. fr13 635 26.04.19 08:47 Сейчас в теме
(26) Да, я прочитал этот материал ) сразу понял про кого речь ))
23. premierex 06.04.19 10:27 Сейчас в теме
(0) Информация по теме: в версии платформы 8.3.13 у объекта ДокументHTML появилась функция НайтиПоФильтру(Фильтр). С её помощью можно получить требуемые узлы, выполнив следующий код:
	ЧтениеHTML = Новый ЧтениеHTML;
	ЧтениеHTML.УстановитьСтроку(ТекстHTML);
	Построитель = Новый ПостроительDOM;
	ДокументHTML = Построитель.Прочитать(ЧтениеHTML);
	ЧтениеHTML.Закрыть();
	ДокументHTML.НормализоватьДокумент();
	Фильтр = "{
			|	""type"": ""intersection"", 
			|	""value"": 
			|	[
			|		{ 
			|			""type"": ""elementname"", 
			|			""value"": 
			|			{ 
			|				""value"": ""div"",
			|				""operation"": ""equals""
			|			}, 
			|		}
			|		,
			|		{ 
			|			""type"": ""hasattribute"", 
			|			""value"": 
			|			{ 
			|				""value"": ""class"",
			|				""operation"": ""nameequals""
			|			}	 
			|		}
			|		,
			|		{ 
			|			""type"": ""hasattribute"", 
			|			""value"": 
			|			{ 
			|				""value"": ""item-info"",
			|				""operation"": ""valueequals""
			|			}	 
			|		}
			|	]
			|}";
	МассивУзлов = ДокументHTML.НайтиПоФильтру(Фильтр);
Показать


Ну а затем уже анализировать дочерние элементы. Можно с помощью XPath, а можно и без.
AlX0id; coollerinc; starik-2005; +3 Ответить
28. ture 558 17.05.19 15:15 Сейчас в теме
Jsoup, и не забивай голову ерундой
29. starik-2005 1972 17.05.19 15:36 Сейчас в теме
(28)
Jsoup
А что там у него с динамическим контентом?
30. ture 558 17.05.19 15:42 Сейчас в теме
31. starik-2005 1972 17.05.19 17:30 Сейчас в теме
32. amd1986 25.07.19 11:38 Сейчас в теме
Брр. Кто мешает использовать 1C 8.3.14 и javascript?
33. starik-2005 1972 25.07.19 12:29 Сейчас в теме
(32)
Кто мешает использовать 1C 8.3.14 и javascript?
А как JS заставить работать в регламентном задании? Мне вот реально надо (бывал как-то в Кадникове ВО в детском доме - давно это было).
34. amd1986 25.07.19 13:00 Сейчас в теме
(33) В фоновом наверно не получится(не проверял). Страница должна прогрузиться на форме, чтобы с ней можно было работать через ноды.
Оставьте свое сообщение

См. также

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

Статья Программист Нет файла v8 Россия Бесплатно (free) WEB

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

06.11.2019    644    AVR    0       

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

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB Облачные сервисы, хостинг

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

14.10.2019    3653    uno-c    25       

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

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

12.09.2019    7594    YPermitin    26       

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

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB Администрирование данных 1С

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

20.08.2019    3561    Fragster    7       

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

Статья Системный администратор Программист Нет файла v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Windows Розничная торговля Бесплатно (free) WEB

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

14.08.2019    1281    Van2507    1       

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

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

12.08.2019    4027    Yashazz    15       

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

Статья Программист Расширение (cfe) v8 1cv8.cf Бесплатно (free) WEB

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

08.08.2019    3675    Sedaiko    1       

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

Статья Программист Нет файла v8 Бесплатно (free) WEB OneScript

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

20.05.2019    12435    Evil Beaver    32       

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

Статья Программист Нет файла v8 УТ11 Бесплатно (free) WEB

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

25.04.2019    2096    distorshion    4       

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

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB

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

18.04.2019    3177    mysm    2       

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

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

17.04.2019    11603    Smaylukk    119       

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

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

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

26.02.2019    5659    Lars Ulrich    15       

Создание телеграм бота с гугл авторизацией, обратными вызовами и уведомлениями об обновлении через сервер-маршрутизатор 158

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

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

07.11.2018    18322    🅵🅾️🆇    40       

Мой опыт небольшого проекта с веб-сервисами (Часть 2) 20

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

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

05.10.2018    4565    alex_bitti    0       

Как запустить работу Google Maps в поле HTML формы 1С? 25

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

Как справиться с передачей события в поле HTML, если надо передать данные. Переход на новую версию Google Maps.

26.09.2018    6680    Green2    10       

Мой опыт небольшого проекта с веб-сервисами (Часть 1) 23

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Хочу поделиться своим опытом использования веб-сервисов на небольшом проекте, который в принципе расширяем до чего-нибудь более существенного.

08.08.2018    6746    alex_bitti    33       

Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя" 55

Статья Программист Нет файла v8 Энергетика и ЖКХ УУ Управление взаимоотношениями с клиентами (СRM) Дебиторская и кредиторская задолженность Бесплатно (free) WEB

Гончаров Максим делится опытом создания «Личного кабинета потребителя» на сайте водоканала. Он описывает архитектуру системы и объясняет, какую роль в ней играют технологии: «Битрикс», OData, веб-сервисы, «1С:БСП». Также в статье раскрываются возможности использования подсистемы «Анкетирование» в «1С:БСП» как конструктора документов.

25.06.2018    11027    maxx    31       

На что действительно способны HTTP-сервисы 176

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

14.06.2018    24547    dalgaso2010    45       

Подготовка тестового контура с помощью gitlab-ci и Яндекс.Диска 19

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB

В статье описан пример использования gitlab-ci для копирования продуктовой базы в Яндекс.Диск и разворачивания на другом контуре.

04.05.2018    7471    pallid    0       

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера 87

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С WEB docker Apache

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе. Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии. Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

04.04.2018    18689    petr.myazin    35       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) ч.6 2

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу. PHP-Скрипт публикации выборки данных сайта работающего на WordPress.

19.03.2018    6202    osivv    0       

Интеграция 1С УТ 11.2 и Битрикс. Настройка выгрузки старой цены для интернет-магазина 8

Статья Программист Нет файла v8 УТ11 Россия УУ Розничная торговля Бесплатно (free) WEB

Настройки позволят вытащить информацию о старой цене из 1С и передать её в CMS Битрикс.

24.01.2018    8209    Consultant_1C    2       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) ч.3 3

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы УУ Windows Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу. PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

09.01.2018    7026    osivv    2       

Готовим Soap для Web-сервисов. Рецепты 133

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) WEB

В статье описаны различные варианты обмена данными с web-сервисами по протоколу Soap, основанные на личном опыте.

28.12.2017    29521    987ww765    27       

УкрПочта - групповая проверка трек-номеров 9

Статья Программист Нет файла v8 Украина Бесплатно (free) WEB

Необходимо в течение относительно небольшого промежутка времени получить актуальное состояние по трек номеру в системе УкрПочта большого количества сообщений? Тогда во второй раз воспользуемся неофициальным парсингом страницы сервиса УкрПочты.

23.10.2017    6400    abavas    2       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) 5

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы Windows Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.

16.10.2017    8959    osivv    3       

1С, oauth2, Google API и Google Merchant. Сбор данных и парсинг 18

Статья Программист Нет файла v8 УТ10 Россия Бесплатно (free) Практика программирования WEB

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

14.09.2017    13470    Mi11er    8       

Отслеживание почтовых сообщений парсингом страницы (УкрПочта) 5

Статья Программист Нет файла v8 Украина Бесплатно (free) WEB

Когда официальное API есть, но по факту не работает. Возвращаемся к старому способу - парсинг страниц.

17.07.2017    8063    abavas    2       

XPath и пространства имен на примере разбора файла ответа сервиса геокодирования Яндекс 34

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

Есть некоторые нюансы разбора с помощью Xpath xml-файла, в котором используются несколько пространств имен. Приведен разбор такого файла на примере файла ответа сервиса геокодирования Яндекс.

14.04.2017    10042    brr    6       

PHP OData драйвер 18

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Удобный доступ к OData данным через SQL синтаксис

03.04.2017    8484    virtex3    4       

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

Статья Системный администратор Программист Нет файла v8 ЗУП3.x Россия Управление персоналом (HRM) Бесплатно (free) WEB

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

10.03.2017    19481    ruha    14       

Веб-сервисы и 1С: «Здравствуй, Name», время-деньги и «Жизнь» 78

Статья Программист Нет файла v8 Бесплатно (free) WEB

Несколько статей о создании веб-сервисов на платформе 1С

09.03.2017    21680    hayroff    11       

Интерактивный ввод капчи 26

Статья Программист Нет файла v8 Бесплатно (free) WEB

Краткое описание того, что делать, если нужно получить некоторые данные с определенного сайта, требующего от пользователя ввода текстовой капчи.

17.02.2017    8756    gaabora    3       

Отправка PUT запроса средствами 1С 8.3 66

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

HTTP запрос с использованием метода PUT средствами 1С 8.3 на практике - проблема и решение

16.02.2017    20832    hspeed79    16       

Нагрузочное тестирование сервера 1С при использовании WEB сервисов 51

Статья Системный администратор Программист Нет файла v8 ИТ-компания Бесплатно (free) Производительность и оптимизация (HighLoad) Внешние источники данных WEB

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

01.02.2017    23388    BraunAlex    34       

Еще немного об обмене на web-сервисах 18

Статья Программист Нет файла v8 Россия Бесплатно (free) WEB Перенос данных из 1C8 в 1C8

Расскажу о собственном опыте по передаче данных через web-сервисы

26.08.2016    10849    savostin.alex    8       

HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие 124

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB Практика программирования Универсальные функции

Статья о том, как можно быстро создать HTTP-сервис в 1С:Предприятие и как выполнять его отладку.

25.07.2016    40414    serg_infostart    19       

SOAP-сервисы с предварительной Cookie-аутентификацией 16

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

05.06.2016    9320    blackschool    1       

Google Analytics API, Oauth2.0 и 1c8 51

Статья Системный администратор Нет файла v8 1С:Франчайзи, автоматизация бизнеса Windows Бесплатно (free) Практика программирования WEB

Обращение к Google Analytics API, Протокол Oauth 2.0 и запросы от 1С:8 без авторизации пользователя

02.05.2016    22102    Ольга_tmp    18       

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

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

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

21.04.2016    103497    YAGolova    55       

Дай дернуть-2! Обращение к веб-сервисам с помощью подручных средств 97

Статья Программист Нет файла v8 Бесплатно (free) WEB

Как показала практика, о веб-сервисах знает почти каждый программист, но о том, как их готовить, - весьма ограниченный круг. Давайте интереса ради замутим сервис и дернем его с помощью простого подручного средства - "Бумеранг"!

21.04.2016    30626    starik-2005    32       

Отладка обмена с web-сайтом на Битрикс 71

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB

Часто возникает необходимость отладки обмена между 1С и web-сайтом на Битрикс. Разберемся, какие инструменты есть для этого...

04.04.2016    15216    vital1c    6       

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

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

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

10.03.2016    48921    Serginio    33       

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    25858    Serginio    22       

Управление магазином ECWID из 1С 11

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Вероятно многие (в том числе и я) используют для поддержки интернет-магазина стороннего поставщика, выплачивая ему энную сумму денег в месяц. Я выбрал ECWID. Не реклама, но не жалуюсь. Услуги вполне качественные. В этой статье пойдет речь об инструментах, с помощью которых можно из 1С через API Эквида общаться с их движком.

01.02.2016    9845    Sardukar    3