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

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

Интеграция с оборудованием и сервисами - 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 11207 07.08.20 09:35 Сейчас в теме
(1) спасибо!

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

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

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

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

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

Советую прочитать https://infostart.ru/1c/articles/1196479/ - как раз по теме получения "сырья" для парсинга, коротко и понятно обо всех вариантах.
YPermitin; +1 Ответить
10. YPermitin 11207 07.08.20 17:29 Сейчас в теме
(9) спасибо, яркий человек :)
11. Yashazz 4115 07.08.20 18:33 Сейчас в теме
(10) На самом деле тебе спасибо за статьи - иногда наводит на мысль чего-то самому раскопать, ранее некопанное.
YPermitin; +1 Ответить
13. Cyberhawk 130 14.08.20 08:36 Сейчас в теме
14. smirnovserg.s@gmail.com 14.08.20 08:58 Сейчас в теме
Самое большое зло из-за отсутствия АПИ - это получение релизов с сайта releases.1c.ru
Парсинг/авторизация по токенам и прочая головная боль
starik-2005; YPermitin; +2 Ответить
15. YPermitin 11207 14.08.20 09:20 Сейчас в теме
16. DrAku1a 1460 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 46 20.08.20 16:18 Сейчас в теме
"Парсинг сайтов - это плохо!!"


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

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

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

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

Как подружить?

	document = Элементы.ХТМЛДокумент.Документ;
	queryResult = document.querySelector("#__APP > div > main");
Оставьте свое сообщение

См. также

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

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

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

27.01.2016    85981    Serginio    116    

Web консоль управления сеансами 1С

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

Мы дали ему название adm1c, он позволяет посредством веб доступа удалять или смотреть на сеансы в 1С базах и при необходимости удалять их. Да и что тут такого, сказали бы, есть же консоль на win, с нее же это можно делать, и все верно, но есть пара но.

26.11.2021    1788    4ernuy    5    

Программный интерфейс для доработки форм

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

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    2817    AtamanovYS    19    

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB HighLoad оптимизация v8 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    1709    sorter1    2    

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

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

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

28.12.2020    9045    comol    31    

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

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

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

08.10.2021    1513    e-9    13    

WEB/HTTP сервисы. Базовые отличия и применение на практике

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

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    5982    Neti    14    

Интеграция 1С с ГИИС ДМДК

Обмен через XML WEB v8 ERP2 Ювелирная промышленность и торговля Россия Бесплатно (free)

ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".

30.09.2021    4823    1СERP    35    

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

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

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

10.03.2016    58636    Serginio    33    

Интеграция 1С с Битрикс24 через вебхуки

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

Пример получения токена и http запрос к API битрикса.

15.09.2021    1793    TyurinArt    8    

Обмен с HTTP сервисом файлами по формату multipart/form-data

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

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

07.09.2021    2775    ix5s    21    

Разработка гибридного web-приложения на 1С, возможности и ограничения

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

Все чаще разработчики склоняются к использованию 1C в качестве бэкенда при разработке веб-приложений. Но благодаря встраиванию веб-клиента 1С в сайт можно получить еще больше готовой функциональности. О том, как реализовать гибридное приложение за счет связки 1С с другими веб-технологиями, рассказал разработчик компании Neti Эльдар Мингалиев.

06.09.2021    2774    Бэнни    11    

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

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

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

26.02.2016    43373    unichkin    47    

Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С) 

Обмен данными и распределенная БД WEB v8 Россия Бесплатно (free)

Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С. Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).

03.09.2021    6254    UltraUnion2005    8    

Взаимодействие с api Честный знак (Молочная продукция)

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

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    2146    user5300    45    

Умная маршрутизация: о сложностях интеграции с 1С (часть 2)

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

В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.

27.08.2021    1970    greencactus    6    

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

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

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

19.02.2018    50117    ildarovich    47    

Встраивание форм 1С на страницы сайта

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

В платформе 8.3.16 появилась возможность выводить на страницах сайта информацию из веб-клиента 1С так, что пользователь даже не заметит, что работает с платформой. Руководитель компании Айтон Михаил Пинягин на онлайн-митапе «Web-клиенты для 1С» рассказал о том, какие особенности нужно учесть при настройке встраиваемого веб-клиента, и какие возможности он дает.

27.08.2021    2817    mikepin    9    

Гарри Поттер и подкапотное пространство веб-клиента

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

При разработке сайтов, интегрированных с 1С через HTTP-сервисы, приходится бороться с кодировками, искать производительные интерфейсные решения и задумываться над безопасностью. В ходе онлайн-митапа «Web-клиенты для 1С» Юрий Лазаренко показал на практике, как работает магия самодельного веб-клиента и как решать проблемы, возникающие при интеграции.

20.08.2021    2946    TitanLuchs    19    

Умная маршрутизация: кейс интеграции с 1С (часть 1)

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

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

18.08.2021    4369    greencactus    40    

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

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

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

13.01.2016    25291    unichkin    13    

Телеграм-бот как инструмент

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

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

21.07.2021    4224    M_A_D    19    

Изменение расшифровки макета СКД до компоновки

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

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    2456    Yashazz    6    

Префиксация объектов - полезный типовой функционал БСП

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

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

21.06.2021    4930    quazare    4    

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

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

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

10.03.2017    27444    ruha    21    

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

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

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

17.03.2021    12432    Nikola23    40    

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

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

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

15.02.2021    11426    randomus    47    

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

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

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

18.01.2021    34281    jenyavp    59    

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

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

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

04.08.2014    19574    Трактор    5    

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

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

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

28.12.2020    4188    SizovE    25    

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

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

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

14.12.2020    23984    SizovE    2    

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

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

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

30.11.2020    6496    SizovE    4    

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

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

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

5 стартмани

25.07.2013    76413    1112    YPermitin    58    

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

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

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

22.11.2020    4515    the1    8    

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

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

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

09.11.2020    1745    Serge R    0    

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

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

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

30.10.2020    4849    Максим-777    19    

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

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

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

11.04.2013    43200    YPermitin    42    

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

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

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

29.10.2020    6047    John_d    26    

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

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

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

07.10.2020    5524    ellavs    3    

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

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

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

23.09.2020    6087    hpi    12    

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

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

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

03.06.2013    31341    anig99    6    

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

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

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

22.09.2020    9114    hpi    7    

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

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

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

11.09.2020    6022    malikov_pro    15    

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

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

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

24.08.2020    2121    malikov_pro    26    

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

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

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

1 стартмани

15.01.2012    42372    617    YPermitin    52    

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

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

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

12.08.2020    4172    pavelpribytkin96    11    

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

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

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

06.08.2020    3162    pavelpribytkin96    7    

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

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

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

06.08.2020    13876    RPGrigorev    0    

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

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

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

24.05.2012    34754    shakmaev    47    

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

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

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

05.08.2020    2315    Yashazz    0    

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

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

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

1 стартмани

24.07.2020    9071    2    YPermitin    14    

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

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

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

10.07.2020    7887    quazare    5