Самый простой парсинг и обработка веб-страниц в 1С

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

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

парсинг web html клиент поле документа

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

Простой, примитивный

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

Тема не новая и каких только материалов нет на просторах сети. Кто-то парсит через DOM, кто-то регулярками и еще длинный список способов. Мы же пойдем самым простым способом - через поле HTML-документа. Тем более с появлением поддержки WebKit возможностей для его использования прибавилось.

Рассмотрим пару простых примеров и немного коснемся ограничений.

Большие ограничения

Данный материал не подойдет, если Вы решаете следующие задачи:

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

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

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

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

В чем плюсы

Все очень просто:

  • Использование поля HTML-документа выполняется полностью на клиенте и не требует серверных мощностей.
  • Выполняется полноценная работа с веб-страницей. Например, если выполнять получение данных веб-страницы с помощью HTTP-запросов, то не всегда можно получить привычную, готовую страницу, т.к. ее содержимое может зависеть от выполняемых JavaScript-скриптов и дополнительных действий.
  • Из второго плюса также можно выделить более простую работу с веб-приложением. Например, для прохождения формы аутентификации не обязательно изучать какие запросы выполняются на сервер и как выполнять обработку ответа. Вместо этого в самом браузере мы вставим значения логина и пароля в форму и просто программно нажмем кнопку "Вход".

Но эти плюсы в каком-то плане создают и ограничения использования таких подходов работы с веб-содержимым.

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

Добрались до примера

Два небольших примера. От простейшего к сложному (ну, почти).

Просто получаем данные

А начнем мы с простого примера по парсингу площадки Яндекс.Маркет. Да, конечно, можно было сделать пример намного проще, но тут мы сразу рассмотрим основные способы работы с HTML-документов. Давным-давно, много лет назад, что-то подобное я выкладывал в разработке "Парсер товаров Яндекс.Маркет", но обработка сейчас уже не актуальна и больше служит примером работы с HTML-документов. Код там не лучшего качества :)

Когда мы закончим реализацию примера, то получим следующее.

По команде "Начать парсинг" мы будем "грабить" страницы на имена товаров и ссылки на них. Да, можно получать и другие поля, но в нашем случае этого достаточно. На анимации выше видно, как увеличивается количество строк с данными в таблице формы.

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

 
 Настраиваем форму

Теперь настало время кода! При создании формы установим URL по умолчанию.

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ВебСтраница = "https://market.yandex.ru";
	
КонецПроцедуры

#КонецОбласти

Это позволит при открытии сразу же открывать нужный ресурс. Далее реализуем обработчики команд "Начать парсинг" и "Остановить парсинг".

#Область ОбработчикиКоманд

&НаКлиенте
Процедура НачатьПарсинг(Команда = Неопределено)
	
	ТекущаяОперация = "ПарсингТоваров";
	
	ИнформацияОТоварах.Очистить();
	НомерТекущейСтраницы = ИзвлечьНомерСтраницы();
	
	ПолученыДанные = ВыполнитьПарсингДанных();
	Если ПолученыДанные Тогда
		ВебСтраница = СформироватьАдресСледующейСтраницы();		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОстановитьПарсинг(Команда = Неопределено)
	
	ТекущаяОперация = "НеАктивно"
	
КонецПроцедуры

#КонецОбласти

С командой "ОстановитьПарсинг" все понятно: мы просто устанавливаем имя текущей операции на "НеАктивно", чтобы парсинг не продолжался автоматически. Команда "НачатьПарсинг" устанавливаем имя текущей операции на "ПарсингТоваров" и начинает заново заполнять таблицу с данными (наименование и ссылка на товар). При этом из текущего адреса получаем номер страницы с товарами, который сохраняется в клиентской переменной модуля формы.

#Область ОписаниеПеременных

&НаКлиенте
Перем НомерТекущейСтраницы;

#КонецОбласти

Номер страницы нужен для автоматического переключения на следующие вовремя парсинга. Сам номер страницы хранится в адресной строке в виде параметра "page". Если не указан, то это первая страница.

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

#Область ОбработчикиСобытийЭлементовФормы

&НаКлиенте
Процедура ВебСтраницаДокументСформирован(Элемент)
	
	Если ТекущаяОперация = "ПарсингТоваров" Тогда
		
		ПолученыДанные = ВыполнитьПарсингДанных();
		
		Если ПолученыДанные Тогда
			НомерТекущейСтраницы = ИзвлечьНомерСтраницы();
			ВебСтраница = СформироватьАдресСледующейСтраницы();
		Иначе
			ОстановитьПарсинг();	
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

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

Далее рассмотрим служебные процедуры работы с адресом и парсингом.

 
 Извлечение номера страницы из адреса
 
 Формируем адрес следующей страницы

А теперь перейдем к более сложной части - извлечению данных со страницы.

 
 Парсинг данных

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

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

Проходим авторизацию

Пример парсинга мы рассмотрели, но бывают ситуации сложнее. Например, перед парсингом может понадобиться пройти аутентификацию на сайте. Например, на сайте releases.1C.ru для просмотра списка релизов, даже те, которые недоступны, необходимо пройти аутентификацию. Конечно, можно использовать HTTP-запросы, проанализировать как именно нужно эти запросы сделать и все это поведение эмулировать. А можно пройти аутентификации с помощью поля HTML-документа, не погружаясь на низкий уровень запросов.

Например, для прохождения аутентификации на том же сайте с релизами достаточно использовать такой код:

&НаКлиенте
Процедура ВходНаСайтРелизов(Команда)
	
	Логин = "<Ваш логин>";
	Пароль = "<Ваш пароль>";
	
	// Внешний объект документа из поля HTML-документа
	document = Элементы.ВебСтраница.Документ;
	
	// Устанавливаем логин и пароль в поля ввода
	document.querySelector("#username").value = Логин;
	document.querySelector("#password").value = Пароль;
	
	// Нажимакм на кнопку "Войти"
	document.querySelector("#loginButton").click();
	
КонецПроцедуры

В режиме 1С:Предприятие выглядит это вот так.

Все просто как никогда и никаких HTTP-Запросов. Все что нужно - это получить CSS-селекторы, получить доступ к соответствующим элементам на странице, а дальше заполнить поля и нажать на кнопку "Войти". Далее можно парсить, но все на Вашей ответственности! :)

Парсинг это плохо

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

Все примеры здесь даны лишь в демонстрационных целях. Любое использование информации только на Вашу ответственность.

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

Удачи в делах и отличного настроения!

Другие ссылки

Авторские разработки

 
 Другие разработки (8 штук, бесплатные и за $m)

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Lansi 07.08.20 09:13 Сейчас в теме
Юрий отличная статья, как всегда написано в простой и понятной форме, однозначный плюс.
Было бы интересно еще узнать какие есть ограничения в работе у HTML-документа по сравнению с обычной работой в браузере, надеюсь увидеть в ваших будущих статьях.
botokash; YPermitin; +2 Ответить
2. YPermitin 10710 07.08.20 09:35 Сейчас в теме
(1) спасибо!

Подумаю над этим. Но информацию подобную можно найти в публикациях, список которых в конце статьи.
12. Yashazz 3757 07.08.20 20:01 Сейчас в теме
(1) Ну, "работа HTML-документа" это слишком обще сказано. Есть ограничения по части деклараций и вообще допустимости некоторых блоков в head, есть ограничения на пространства имён, есть иногда проблемы с хаотично раскиданными кусками скриптов по коду (как это любит делать битрикс) и кстати с DHTML-ными фишками. Джумловое что-то, например, плоховато обрабатывается. Есть несколько ограничений на значения, возвращаемые функциями скриптов или получаемые в свойствах методов (1С их приводит к строке, иногда уродует). Есть ограничения с кодировкой, но это решается через 2 функции перекодирования (а не как мучились 10 лет назад). Есть в скриптах некоторые трудности (и в объектной модели, и в обещаниях, и в случае js-функций как переменных). Глобальные переменные js не работают и вообще глобальный контекст теряется. Ну и традиционно стык между 1С и хтмл для всего, кроме потоков, требует внимания. Всё, пожалуй.

А вот с DOM-моделью, и с трансляцией обычной разметки в подходящие объекты 1С (хмл или хтмл) проблем не замечено.
3. Ibrogim 1187 07.08.20 12:09 Сейчас в теме
получается практически Selenium и vebdriver
YPermitin; +1 Ответить
5. YPermitin 10710 07.08.20 12:26 Сейчас в теме
(3) что-то вроде этого.

Я нашел еще способ использовать веб-клиент, хоть и не 1Сный, на стороне сервера.
Там не все просто, но можно теоретически и об этом написать или примеры дать.
Не знаю на сколько это нужно вообще коллегам.
7. Fox-trot 127 07.08.20 15:28 Сейчас в теме
слишком узковато для практического применения, так что вряд ли оно кому-то надо
YPermitin; +1 Ответить
4. bulpi 184 07.08.20 12:12 Сейчас в теме
Очень интересно . Вот бы еще дать примеры по таким методам :
"Можно явно указывать путь через элементы DOM, можно пытаться парсить страницу с помощью объекта ДокументDOM"
Я , увы, не знаю, как это сделать. И думаю, я не один такой.
YPermitin; +1 Ответить
6. YPermitin 10710 07.08.20 12:26 Сейчас в теме
(4) А примеры все в конце публикации, набор ссылок "Другие ссылки".
По DOM вот коллега хорошо описал https://infostart.ru/public/314045/
8. Yashazz 3757 07.08.20 17:18 Сейчас в теме
(4) Советую глянуть https://infostart.ru/public/328533/ как одно из решений, и https://infostart.ru/public/280340/ как способ быстро и удобно искать информацию в DOM.
Rustig; YPermitin; +2 Ответить
9. Yashazz 3757 07.08.20 17:23 Сейчас в теме
А если честно, в этот раз не айс. Потому что получилось ни то, ни сё - ни обзор вариантов, как заявлено, ни пошаговое обучение подробно одному из вариантов, ни готовая разработка.

Описывать же надо совершенно разные вещи: статические или динамические сайты, получение контента, и отдельно просто разбор структурированной информации. А тут всё, особенно для новичка, кучно. Между скачиванием исходника страницы и парсингом есть разница.

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

Советую прочитать https://infostart.ru/1c/articles/1196479/ - как раз по теме получения "сырья" для парсинга, коротко и понятно обо всех вариантах.
YPermitin; +1 Ответить
10. YPermitin 10710 07.08.20 17:29 Сейчас в теме
(9) спасибо, яркий человек :)
11. Yashazz 3757 07.08.20 18:33 Сейчас в теме
(10) На самом деле тебе спасибо за статьи - иногда наводит на мысль чего-то самому раскопать, ранее некопанное.
YPermitin; +1 Ответить
13. Cyberhawk 127 14.08.20 08:36 Сейчас в теме
14. smirnovserg.s@gmail.com 14.08.20 08:58 Сейчас в теме
Самое большое зло из-за отсутствия АПИ - это получение релизов с сайта releases.1c.ru
Парсинг/авторизация по токенам и прочая головная боль
starik-2005; YPermitin; +2 Ответить
15. YPermitin 10710 14.08.20 09:20 Сейчас в теме
16. DrAku1a 1418 15.08.20 16:00 Сейчас в теме
Прочитать со страницы сайта одно какое-то значение:
ТекстHTML = ПолучитьИсходныйТекстСтраницы();
НужнымМнеТекст = ТекстМежду(ТекстHTML, ТекстСлеваОтНужного, ТекстСправаОтНужного);

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

Примерно так:
ТекстHTML = ПолучитьИсходныйТекстСтраницы("https://yandex.ru/search/?text=current+time");
ТекстСлева = "yandex.ru/time"" data-counter=""[&quot;b&quot;]"">";
ТекстСправа ="</a>";
ТекВремя = ТекстМежду(ТекстHTML, ТекстСлева, ТекстСправа);
YPermitin; +1 Ответить
17. CyclesOfID 34 20.08.20 16:18 Сейчас в теме
"Парсинг сайтов - это плохо!!"


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

Парсинг сайта без использования встроенного браузера для начинающих

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

Парсинг (сканирование) сайта из 1С на примере сайта по криптовалюте....
YPermitin; +1 Ответить
18. YPermitin 10710 20.08.20 16:20 Сейчас в теме
19. piton66 2 04.03.21 13:46 Сейчас в теме
А как парсить например такое? На странице кнопка показать телефон. По кнопке открывается окно с телефоном.
20. starik-2005 2305 17.03.21 14:19 Сейчас в теме
(19)
По кнопке открывается окно с телефоном.
Ну так кнопка или дергает запрос, или просто hide=false для элемента делает, в который телефон мутится. Так что или где-то на странице этот телефон есть, или нужно дернуть запрос (авиты и всякие такие сайты). Но спамерам помогать - себя не уважать.
21. piton66 2 18.03.21 09:23 Сейчас в теме
Сам уже разобрался. Запрос отдельный.
Зачем обзываешься урюк.. я не спамер.
22. Boudybuilder 66 26.04.21 23:01 Сейчас в теме
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    79640    Serginio    113    

Правила обмена больше не нужны

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    7000    Nikola23    35    

Последний раз про срез последних (на каждую дату в запросе)

Инструментарий разработчика Практика программирования Консоль запросов Универсальные функции v8 v8::Запросы Бесплатно (free)

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

15.02.2021    5220    randomus    47    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

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

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    11264    jenyavp    43    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    5453    comol    31    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

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

28.12.2020    2309    SizovE    23    

Ускоряем медленный/долгий и тормозной стандартный поиск по динамическому списку, настраиваем его под себя

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

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

14.12.2020    10917    SizovE    2    

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

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

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

30.11.2020    3518    SizovE    3    

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

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

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

10.03.2016    57084    Serginio    33    

Сохранение настроек

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

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

22.11.2020    3102    the1    8    

Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)

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

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

19.11.2020    4834    markbraer    11    

Сохранение настроенного запроса набора данных СКД

Универсальные функции v8 v8::СКД 1cv8.cf Бесплатно (free)

Как сохранить запрос набора данных СКД в том виде, каким он будет выполнен системой для открытия в консоли запросов с диска ИТС.

09.11.2020    1495    Serge R    0    

Универсальные функции с примерами использования Промо

Универсальные функции v8 Бесплатно (free)

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

26.02.2016    42388    unichkin    47    

Отладка модуля ДиадокПро

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

В обработке ДиадокПро все дополнительные модули встроены во внешние обработки, которые хранятся в макетах. Это усложняет процесс самостоятельной интеграции, так как теряется возможность попасть в них в режиме отладки. Но не всё так страшно, поэтому ниже инструкция)

30.10.2020    2336    Максим-777    14    

Обмен с сайтом посредством Post-запроса, json

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

Задача - передавать на сайт объекты с наименованием и уникальным идентификатором (УИ), которые изменяются в 1С. Также нужно сохранять историю отправленных пакетов.

29.10.2020    4507    John_d    26    

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

Универсальные функции v8 Бесплатно (free)

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

07.10.2020    3127    ellavs    2    

Минимализмы 3 Промо

Практика программирования Универсальные функции v8 Бесплатно (free)

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    48652    ildarovich    46    

Организация HTTP публикации каталога товаров используя PostgREST

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

В статье опишу порядок установки настройки и использования PostgREST на примере организации каталога товаров.

05.10.2020    1182    malikov_pro    2    

Интеграционная прослойка(middleware) на Golang. Часть 5 - Обмен с 1С через HTTP-сервисы платформы

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

В этой статье научим прослойку отправлять данные в 1С, для этого используем HTTP-сервисы платформы. Обменяемся данными с новым справочником Клиенты. Но главное создадим HTTP-сервис для получения сообщений из очереди RabbitMQ.

28.09.2020    1912    dmitry-irk38    4    

Отладка http сервиса

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

При разработке http сервиса возникает ситуация, а как протестировать http сервис? Создали мы сервис, настроили шаблоны, передали, если нужно параметры, открываем браузер заполняем строку подключения и БАХ, ошибка. Что делать?

23.09.2020    3158    hpi    10    

Выполнение произвольного кода в фоновых заданиях Промо

Универсальные функции v8 Бесплатно (free)

Если надо быстро провести 100`000 документов...

13.01.2016    24968    unichkin    13    

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

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

Пошаговое руководство по созданию http-сервиса (часть вторая). Передача параметра в http сервис.

22.09.2020    6307    hpi    7    

Формирование списка документов и скачивание печатной формы документа через веб-сайт с использованием HTTP-сервиса, плюс особенности авторизации

Практика программирования Обмен данными 1С WEB v8 1cv8.cf Бесплатно (free)

В статье показан пример, как реализовать формирование списка документов клиента/пользователя по коду, а затем скачать его (документа) печатную форму по ссылке

18.09.2020    1205    R_o_n_n_y    3    

Формирование HTTP запроса формата multipart/form-data с двоичными данными, используя ПотокВПамяти

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

В статье опишу вариант формирования запроса

11.09.2020    3735    malikov_pro    11    

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

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

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

10.03.2017    26640    ruha    21    

Использование шаблонного процессора для формирования HTML страниц

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

В статье опишу использование шаблонного процессора Handlebars запущенного на Node.js

24.08.2020    1764    malikov_pro    26    

Загрузка или обновление файла на яндекс диске через rest-api

Практика программирования Файловые протоколы обмена, FTP WEB v8 Бесплатно (free)

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

12.08.2020    3054    pavelpribytkin96    10    

Загрузка или обновление файла на гугл диске

Практика программирования Файловые протоколы обмена, FTP WEB v8 1cv8.cf Бесплатно (free)

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

06.08.2020    2140    pavelpribytkin96    6    

Распределение оплаты по товарам Промо

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

Учебная задача. Оплата приходит по заказу. Требуется запросом распределить её по товарам. Практическая задача была сложнее. Упростил специально для иллюстрации. Сначала собираем в одну таблицу заказы и товары. Затем ОБЪЕДИНТЬ ВСЕ с оплатами. Потом намазываем оплату на товар.

04.08.2014    19368    Трактор    5    

Выполнение внешней обработки по расписанию для управляемого и обычного приложения

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

Использование БСП для выполнения внешних обработок в управляемом и обычном приложении

06.08.2020    6194    RPGrigorev    0    

Пользовательское поле СКД одной процедурой

Практика программирования Универсальные функции v8 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    1982    Yashazz    0    

Диагностика контекста выполнения (внешняя компонента)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

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

1 стартмани

24.07.2020    6769    2    YPermitin    14    

Просмотр и анализ журнала регистрации (отчет на СКД) Промо

Журнал регистрации v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

5 стартмани

25.07.2013    70855    1051    YPermitin    56    

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

Универсальные функции v8 БП3.0 УТ11 Россия Бесплатно (free)

В данном обзоре приведу примеры встроенных используемых функций для работы с печатными формами на примерах конфигураций Управление торговлей 11.4 и Бухгалтерия 3.0.

10.07.2020    5281    quazare    5    

Вывод дерева в табличный документ СКД

Практика программирования Универсальные функции v8 v8::СКД Бесплатно (free)

Вывод содержимого элемента формы "ДанныеФормыДерево" в табличный документ средствами СКД.

09.07.2020    3554    Yashazz    7    

Использование Yandex Translate (Яндекс.Переводчик)

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

В статье опишу вариант подключения и использования Yandex Translate.

08.07.2020    5160    malikov_pro    8    

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

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

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

11.04.2013    42388    YPermitin    41    

Ограничение доступа к HTTP публикациям 1С сервера используя NGINX

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

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

02.07.2020    7901    malikov_pro    7    

Работа с AliExpress через API

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

В публикации опишу подход работы с API AliExpress и примеры кода.

23.06.2020    6973    malikov_pro    24    

Экспорт журнала регистрации. Набор инструментов (приложения + исходный код)

Прочие инструменты разработчика Журнал регистрации v8 Абонемент ($m)

Набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux (SQL Server, PostgreSQL, MySQL). Готовые приложения и исходный код.

10 стартмани

26.05.2020    8003    52    YPermitin    0    

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

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

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

03.06.2013    30933    anig99    6    

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

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

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

21.05.2020    8754    CyberCerber    15    

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

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

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

20.05.2020    6785    platonov.e    25    

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

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

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

13.05.2020    3970    osivv    3    

Парсер товаров Яндекс.Маркет (открытый код) Промо

Обработка справочников WEB Учет ТМЦ Учет ТМЦ v8 КА1 УТ10 УПП1 Россия УУ Абонемент ($m)

Версия обработки: 1.0 Описание: Программа производит парсинг веб-страницы Яндекс.Маркет и загружает выбранные/найденные позиции товаров в информационную базу. БЕСПЛАТНАЯ!!!

1 стартмани

15.01.2012    41356    616    YPermitin    52    

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

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

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

12.05.2020    5088    zhichkin    30    

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

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

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

28.04.2020    6051    osivv    23    

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

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

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

27.04.2020    8403    nbeliaev    22    

Сканируем без сканера или MXL to JPG Промо

Внешние источники данных Универсальные функции Печатные формы документов v8 1cv8.cf Бесплатно (free)

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

24.05.2012    34516    shakmaev    47    

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

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

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

21.04.2020    7919    RPGrigorev    2    

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

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

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

20.04.2020    5929    RPGrigorev    0    

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

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

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

31.03.2020    14898    informa1555    35