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

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

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

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

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

ПАРСИНГ САЙТОВ НА 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. Удачи!

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

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

Используйте
https://infostart.ru/public/709325/
и не будет проблем с редиректами
starik-2005; +1 1 Ответить
2. webester 30 02.04.19 12:33 Сейчас в теме
(1)Мне нравится простой пример с ИТС https://its.1c.ru/db/metod8dev#content:5574:hdoc обрабатывает перенаправления указывает на типы ошибок
3. bonv 963 02.04.19 12:43 Сейчас в теме
(2) все хорошо, пока не захочется парсить сайты, требующие предварительной авторизации
4. webester 30 02.04.19 12:52 Сейчас в теме
(3)Это на тему перенаправления. Использовать только ради него Коннектор, как из пушки по воробьям. Библиотека сама по себе отличная.
6. Поручик 4347 02.04.19 21:19 Сейчас в теме
7. starik-2005 2000 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 2000 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 2000 03.04.19 11:22 Сейчас в теме
(13)
пробовал получать вложенные теги в определенном теге, указываю типа ".class1 > .class2" - НОЛЬ элементов
Если речь об 1С, то я даже уточнил в статье, что XPath в ней ограничен. Хотя //div[@class='c1']/div[class='c2']/text() - вполне рабочая конструкция даже для 1С.
10. starik-2005 2000 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 2000 03.04.19 11:11 Сейчас в теме
(11) так я и не спорю, что 1С для парсинга сайтов подходит весьма условно. Во второй статье очень хороший и интересный подход через кликер для динамики - реально вещь! )))
15. fr13 643 04.04.19 10:46 Сейчас в теме
Материал полезен для новичков в этой теме, но зачем же так называть переменные?
16. starik-2005 2000 04.04.19 13:32 Сейчас в теме
(15)
но зачем же так называть переменные?
Переменные названы просто отлично. Так, как в примерах для других языков программирования.
ЗЫ: Я, кстати, тоже с Вологды.
Прикрепленные файлы:
17. TODD22 18 04.04.19 13:33 Сейчас в теме
(16)Вы все переменные называете как "счётчик цикла" ?
18. starik-2005 2000 04.04.19 13:35 Сейчас в теме
(17)
Вы все переменные называете как "счётчик цикла" ?
Мы все переменные называем ровно так, чтобы было понятно, что они есть.
19. TODD22 18 04.04.19 14:11 Сейчас в теме
(18)
Да я заметил "О", "С", "З"... очень содержательные имена.
20. starik-2005 2000 04.04.19 14:18 Сейчас в теме
(19) для понимания достаточно?
21. premierex 05.04.19 16:54 Сейчас в теме
(20) Вот имя переменной ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений вполне себе содержательное. Для понимания достаточно, даже если с места её объявления прокрутить несколько сотен строк, смысл всё равно будет понятен.
А вот смысловую нагрузку "О", "С", "З" можно понять, если текст, где происходит объявление этой переменной и где время её жизни заканчивается, находятся на одной экранной страннице. Не экономьте время на читабельности кода! Через некоторое время самому сложно будет этот код править.
22. starik-2005 2000 05.04.19 21:20 Сейчас в теме
(21) кто не умеет - тому пропроцессор компоновки как ни назови - все бессмысленно. А кто умеет - тому хоть горшком (наролная мудрость, кстати, а вряд ли мы умнее народа по-одному)
24. fr13 643 06.04.19 11:28 Сейчас в теме
(16) мы пересекались в Вологде года 4 назад. Магазин автозапчастей. Я тогда работал в своем первом франче, а Вы были как приглашенный московский спец ))
25. starik-2005 2000 06.04.19 17:19 Сейчас в теме
(24) я кстати к ним на днях заеду - чисто поглядеть. А по поводу приглашенного - это мои клиенты с 2004-го года.
26. starik-2005 2000 25.04.19 15:21 Сейчас в теме
(24) кстати, переработал и дополнил их программно-аппаратную часть - вот что получилось: https://infostart.ru/public/1051601/
27. fr13 643 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 561 17.05.19 15:15 Сейчас в теме
Jsoup, и не забивай голову ерундой
29. starik-2005 2000 17.05.19 15:36 Сейчас в теме
(28)
Jsoup
А что там у него с динамическим контентом?
30. ture 561 17.05.19 15:42 Сейчас в теме
31. starik-2005 2000 17.05.19 17:30 Сейчас в теме
32. amd1986 25.07.19 11:38 Сейчас в теме
Брр. Кто мешает использовать 1C 8.3.14 и javascript?
33. starik-2005 2000 25.07.19 12:29 Сейчас в теме
(32)
Кто мешает использовать 1C 8.3.14 и javascript?
А как JS заставить работать в регламентном задании? Мне вот реально надо (бывал как-то в Кадникове ВО в детском доме - давно это было).
34. amd1986 25.07.19 13:00 Сейчас в теме
(33) В фоновом наверно не получится(не проверял). Страница должна прогрузиться на форме, чтобы с ней можно было работать через ноды.
Оставьте свое сообщение

См. также

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

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

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

22.01.2020    357    malikov_pro    0       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

Двусторонний обмен с поставщиком товаров через интернет-магазин для реализации товаров с ответственного хранения

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

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

16.01.2020    571    chkurs    0       

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.130.х! Промо

Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.

24700 руб.

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

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

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

15.11.2019    1414    xxxAndricxxx    6       

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

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

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

14.11.2019    3362    xxxAndricxxx    21       

Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо

Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.

7500 рублей

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

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

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

14.11.2019    1300    malikov_pro    0       

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

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

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

13.11.2019    2785    user665435_al.windstorm    14       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

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

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

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

06.11.2019    2264    AVR    0       

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

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

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

14.10.2019    5873    uno-c    25       

INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо

Краснодар станет первым в 2020 году местом, где пройдет региональная встреча IT-специалистов сообщества Инфостарт. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Стоимость участия - 5000 рублей. Цена действительна до 26.12.2019.

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

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

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

12.09.2019    11044    YPermitin    26       

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

Статья Системный администратор Программист Нет файла 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    4872    Fragster    7       

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

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

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

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

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

14.08.2019    2680    Van2507    1       

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

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

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

12.08.2019    5541    Yashazz    15       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

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

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

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

08.08.2019    4918    Sedaiko    1       

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

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

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

20.05.2019    14756    Evil Beaver    32       

Сдача регламентированной отчетности из программ 1С Промо

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

от 1500 руб.

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

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

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

25.04.2019    3201    distorshion    4       

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

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

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

18.04.2019    4749    mysm    2       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 17 февраля по 13 марта 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

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

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

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

17.04.2019    13136    Smaylukk    119       

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

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

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

26.02.2019    7547    Lars Ulrich    15       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

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

16450 рублей

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

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

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

07.11.2018    21499    🅵🅾️🆇    44       

Открыто голосование за доклады на INFOSTART MEETUP Krasnodar Промо

Выбирайте и голосуйте за самые интересные доклады, лучшие из них попадут в окончательную программу митапа. Голосование продлится до 30 января 2020 года.

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

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

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

05.10.2018    5471    alex_bitti    0       

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

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

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

26.09.2018    7774    Green2    10       

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

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

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

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

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

08.08.2018    7844    alex_bitti    33