#0
by Serginio1
.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. .Net в 1С. На примере использования HTTPClient,AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Предыдущие темы Там же можно найти все необходимые ссылки.
#3
by Serginio1
Не знаю, но там есть HtmlFrameElement [DomName("HTMLIFrameElement")] public interface IHtmlInlineFrameElement : IHtmlElement {
#7
by Serginio1
Надо отметить, что QuerySelectorAll и QuerySelector можно применять к контейнерам поддерживающих интерфейс public interface IParentNode { void Prepend(params INode[] nodes); IElement QuerySelector(string selectors); } } Мы можем например задать селектор для строки. Например получить первый и третий элемент строки
#8
by Serginio1
Добавлю еще про коллекци. public interface IHtmlCollection<T> : IEnumerable<T>, IEnumerable where T : IElement { T this[int index] { get; } T this[string id] { get; } int Length { get; } } К ним можно обращаться по номерк и по иде или атрибуту. Например
#9
by Serginio1
Еще один вариант ускорения это заполнения данных 1С в скрипте str = "public class ВычислительAngleSharp |{ |public static void ЗаполнитьТз(dynamic ТЗ) | { | | | |
#11
by Serginio1
Странно, я думал, что парсинг затронет людей. Аналогичная тема собрала кучу просмотро, оценок комментариев. Здесь тишина. Или CSS сложен или название .Net в заголовке пугает лбдей. Или парсинг HTML нынче не актуален?
#12
by Garykom
"лбдей" все сложное пугает )) была бы статья по типу берем сайту мисту и парсим ее с целью получения самых интересных тем
#13
by Serginio1
Прошу прощения за опечатку. В примерах есть все, что бы это сделать самому. Кстати заодно вэб программисты могут помочь. Но почему то никого это не затронуло
#15
by Garykom
пофиг на опечатку просто прикольная получилась )) люди они сильно ленивые и хотят почти готовое которое можно тупо скопировать/вставить и чуток поправить а не писать с 0 используя инструмент
#16
by Serginio1
Так в примерах есть, как мне кажется достаточно материала, что бы использовать. Так я не против взять конкретную задачу и её решить. Только пусть дадут. Я помогу если что
#19
by Serginio1
Один из основных интерфейсов [DomName("Node")] public interface INode : IEventTarget, IMarkupFormattable { DocumentPositions CompareDocumentPosition(INode otherNode); INode ReplaceChild(INode newChild, INode oldChild); }
#23
by spock
Для моего понимания: а зачем есть необходимость парсить сайты с помощью 1с? Почему именно с помощью 1с? Это же жутко не удобно.
#26
by Serginio1
Н на новый ComОбъект можно зарабатывать? Расширяя функциональность 1С ты повышаешь свою производительность, а значит повышается твоя производительность итд.
#28
by Конченный УТырок
Какие-то общие слова. В 1С своих костылей хватает, нафига еще какой-то Net в голову засовывать? Проще направление сменить.
#29
by Garykom
Понятие бритвы/лезвия Оккама знакомо? Зачем плодить лишние сущности в виде каких то парсеров отдельных если данные нужно будет в 1С засунуть? В данном случае .net используется для расширения возможностей 1С с помощью бесплатного фреймворка
#30
by Конченный УТырок
Зачем плодить лишние сущности в виде фреймворка в 1С, если можно парсером выгрузить сайт в Ексел и загрузить в 1С?
#33
by Кирпич
Ну вместо Ексел и текстовый файл подойдет. Он бесплатный. А по существу, всё равно, кому как удобнее, тот так и будет решать задачу. Мне так этот .NET пока нигде, ни разу не понадобился.
#34
by Serginio1
Тем, что нужно делать значительно меньше телодвижений. Каждый решает для себя как ему проще решить ту или иную задачу. Для примера отправка multipart/form-data можно решить и на Про асинхронность я вообще промолчу. Распарсить HTML легко и непринужденно с помощью AngleSharp очень легко. Аналогичная тема Та же проблема с Вэб сервисами Итд.
#36
by Serginio1
Может но не полностью. Есть отдельная библиотека Вот примеры с использованием JavaScript
#37
by spock
Мнение про общие фразы я тоже разделяю. Почему я задаюсь вопросом о парсинге сайтов с помощью 1с? Потому что я имею к этой темой непосредственное отношение и мне это знакомо. Мой выбор пал на такой стек: ubuntu + python + selenium + phantomjs + sqlite. В 1с может быть можно было бы местами проще, но этот стек крутится круглосуточно на vps и выдает мне сграбленные данные, когда я цепляюсь к этому сервису из 1с. Причем этот стек проглатывает и js, и iframe'ы. Как будто открываю сайт из браузера. Реализовать бюджетно такие задачи полностью на 1с сложно. Оговорюсь: я не против .Net в 1с, я неожиданно удивлен тому, что кто-то пытается это сделать на 1с. Я к тому, что своим задачам, свой инструмент.
#38
by crocop
не очень силен в вебе, вот например сайт 5lb.ru необходимо спарсить, можно ли на этой страничке нажать на кнопку "показать всё"
#39
by Garykom
у вас немного не то, по сути поднят свой сервис парсинга и в подобном случае пилить еще что то в 1С уже лишнее, хватит загрузки csv но если ситуация не грабать 247 и только из 1С причем изредка решение на 1С вполне рабочее
#43
by Serginio1
Угу легкое такое решение. Берешь в руки браузер и F12 и ислледуешь, то что тебе нужно. Пробуешь парсить с помощью AngleSharp
#46
by spock
там есть про "нажать на кнопку "показать всё"?". Коллега спрашивает, как нажать на кнопку. Мне тоже интересно, как это можно сделать штатно.
#48
by Serginio1
Распарсить файл. Найти форму <form action="/cgi-bin/mp/page.pl" method="get Установить значения формы и послать Get запрос. В статье это выглядит так Форма=document.QuerySelector("form#searchform");
#49
by spock
Да, не легкое, но бюджетное решение. Кстати, именно эта нелегкость отталкивает и заставляет искать дополнительные пути решения.
#51
by Serginio1
Я предлагаю значительно более легкое решение. Правда пока в этой библиотеке не полностью реализован JavaScript. А так с ограничениями очень легко парсить в стиле JQuery. А приделают JavaScript полностью, то лучше ничего и не надо
#52
by Кирпич
да с этим парсингом сайтов только начни и закончишь "ubuntu + python + selenium + phantomjs + sqlite" как в
#53
by Serginio1
51+ Я опять же ничего не навязываю. Я описываю инструмент. А нужен он, или нет каждый решает сам
#54
by Serginio1
Добавлю, что библиотека очень понравилась, тем что можно использовать CSS селекторы и использовать в стиле JQuery. На самом деле их применять значительно проще чем регулярные выражения
#57
by Serginio1
Это я в последней версии добавил public void ЗакрытьРесурс(Object Oбъект) { IDisposable d = объект as IDisposable;
#60
by Serginio1
Что касается 1C примеров, то нужна просто Фреймворк 4.6.1 Что касается C# то в принципе да. Просто у меня сделано под 4.6.1 на VS 2015 Просто бесплатную 2015 можно скачать А можно с торрентов.
#64
by mistеr
Писать шарповый код внутри строк это все-таки тупиковый путь. Напиши удобную нативную ВК и люди потянутся. Плюс есть еще более фундаментальная причина. Распыляться на два стека, да еще таких разных - для разработчика неэффективно экономически.
#65
by oleg_km
Плюс есть еще более фундаментальная причина. Распыляться на два стека, да еще таких разных - для разработчика неэффективно экономически. Сидеть и балаболить на Мисте еще более неефективно. А нормальные программисты прекрасно сочетают и 1С и .NET.
#66
by Serginio1
Писать ВК на все случаи жизни задолбаешься. Весь смысл использовать классы .Net внутри 1С. Ты же работаешь с Com объектами. Вот сегодня понадобилась работа с реестром рап=СоздатьОбъект("NetObjectToIDispatch45"); ...... Тут даже не нужно знать .Net. Есть куча примеров, уже многие кроме меня просто помогут кодом. А вообще программист должен постоянно совершенствоваться. Так, что это не распыление
#67
by mistеr
> Писать ВК на все случаи жизни задолбаешься. Тем не менее учетные системы пишут на 1С, а не на голом C++ или C#. Высокоурочневые API всегда вытесняют низкоуровневые (за исключением особых случаев). > Тут даже не нужно знать .Net. Есть куча примеров, уже многие кроме меня просто помогут кодом. Копипастить чудой код, не понимая, что он делает? Ты серьезно предлагаешь это? > А вообще программист должен постоянно совершенствоваться. Так, что это не распыление. Еще какое распыление. Потратить то же время на прокачку, скажем, в ERP 2.0 или КД3, — намного выгоднее, чем научиться парсить сайты или читать реестр. Если вдруг понадобится, раз в год. Пойми правильно, я сейчас не от своего имени говорю, а от имени "усредненного" 1С-ника. Который не ставит себе задачу стать гуру во всем, а просто хочет оставаться востребованным на рынке.
#68
by Serginio1
Для того, что бы использовать ВК нужно читать документацию к ней. А вот использовать ВК тебе постоянно приходится для интеграции с внешним миром. Если тебе нужно парсить сайты, то знание КД3 тебе ничем не поможет. Если у меня стоит задача то на stackoverflow.com/ куча примеров и документации на том же MSDN Усредненному 1С ку мало, что нужно. Он так же и копипастит 1С код. Просто есть огромный пласт задач, которые на 1С решить нельзя или это будет монструозный код. Я просто предлагаю решение для увеличения производительности. А уж использовать его или нет каждый решает сам.
#69
by Garykom
Примерно тоже самое уже пытался несколько раз сказать автору это замечательной штуки. Что "среднему 1С-нику" нужна просто некая ВК в которой "есть все". И вполне можно такое сделать написав "расширяемую ВК". К которой можно легко написать плагины/дополнения. Тогда останется только сделать механизм распространения этих дополнений.
#72
by mistеr
> Я просто предлагаю решение для увеличения производительности. О какой производительности ты сейчас говоришь? Если о производительности радработки, доработки и поддержки, то ты жестоко ошибаешься. Для производительности мне нужна ВК с API как у HTTPСоединение, только расширенным. Чтобы я мог написать: А у этой таблицы API как у табличного документа, и я уже знаю как с ней работать. Если плюс к этому оно умеет и "JQuery с использованием CSS селекторов" - замечательно, но только как плюс. Вот это будет увеличение производительности. Подумай об этом. Если этого не сделаешь ты, а спрос будет, то сделает кто-то другой.
#73
by Garykom
а вот чтобы эти "расширения кодом 1С" можно было легко другим использовать готовые... а на заново с 0 писать изучив слегка .net
#75
by Serginio1
Кстати Может пригодится Оппоненты говорят что у них не проходит. Вот где и .Net можешь применить
#76
by Serginio1
В составе AngleSharp.Scripting для парсинга сайтов с использованием JS Есть парсер Вот пример использования Engine=врап.ПолучитьТипИзСборки("Jint.Engine","d:Vs2015ProgramsWpfApplication1WpfApplication1inDebugJint.dll");
#78
by Serginio1
Проверил работают такие конструкции поиска Поиск div с id начинающихся на "row" Найти аннотацию с классом pagenav и содеращую текст 'Вперёд' a.pagenav:contains('Вперёд')
#79
by Serginio1
Я бы еще добавил Silenium прежде всего как построитель DOM в заскриптованных таблицах Для того что бы добраться до сформированного DOM можно использовать вместо PageSource вычисляемый скрипт var pageSource = (string)driver.ExecuteScript("return document.body.outerHTML");
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Можно ли настроить обмен УНФ 1.6 - БП 3.0 Зарплатными документами?
- Как узнать, что Документ проводится первый раз?
- Нумерация документов Расходная накладная!
- 1С УПП Товары на складах
- пропал ползунок на полосе прокрутки списка документов.
- Фактический адрес контрагента 1С 8.2 УТ 10.3
- Двухсторонний обмен КА и розница
- Залил клавиши синтезатора растительным маслом. Как вернуть клавиши к жизни
- Как заблокировать константу от чтения?
- Документ корректировка поступления.
- Отражение зарплаты в регл. учете ЗУП 2.5
- ЗуП 2.5 Расчет среднего заработка в начислении по больничному листу
- Планировщик 1с. Отображение интервалов
- Программно определить высоту строки выводимой в ТабДок
- УПП РАУЗ Можно ли состыковать движения РАУЗ и проводки
- ЕГАИС. Пиво. Опт+Розница на одном ИНН и КПП
- отладка загрузки кд
- Синхронизация УТ11 - БП3.0 Ошибка проверки данных XDTO:
- Программное удаление команд из контекстного меню программно созданной ТЗ
- УТ 10.3 редактирование таблиц