Парсинг страниц. Своя кнопка в панели навигации под свои обработки на примере информера погоды яндекс
Делаем свою кнопку на панели навигации такси, вызываем свою обработку, отображающую любую свою информацию. Эта обработка на примере получения данных сайта и разбора её параметров, с выводом параметров в нашу обработку: могут быть какие-то курсы, шутки, тосты, любая информация с сайта, не загружая всю страницу, а лишь нужные данные. Пригодится всем, кто создаёт свой органайзер.
- Описание
- Подробнее
Описание
1. Создаем обработку для получения данных с HTML страницы.
- Чтобы получать данные своего региона (района, города, и т.д.), нужно узнать своё числовое значение на яндекс https://ya.ru/search/?text=1c перешли по этой ссылке в браузере, браузер вернул строку вида https://ya.ru/search/?text=1c&lr=110307 , где цифры в конце нужны нам.
- Далее нам нужна ссылка https://yandex.ru/time/sync.json?geo=ЧЧЧ , где вместо ЧЧЧ ставим наши цифры 110307. Внимание, цифры 110307 взяты для примера! Получаем https://yandex.ru/time/sync.json?geo=110307 . В коде надо будет поставить своего населенного пункта. (хотел было чтоб автоматом "цифры" получало, но яндекс меня замучал своими перебросами, и затею отложил.
Вот что увидим в браузере: в обработке рекурсивно считываем данные и загоняем в структуру. Но есть нюанс, так как "id" и "neme" имена совпадают, а значения у них разные. В коде просто при считывании имен добавляю к имени счетчик. Выводим на форму полученные данные: рассвет, закат, температуру, населенный пункт и республику, и можно было раскрасить цветом, который дает яндекс о цвете неба)).
Ого, обработка готова. Но далее не запускать же её постоянно где-то выискивая.
Создадим свою кнопку в панели навигации "так себе информер". (см.1 скриншот публикации), для этого создадим расширение и зацепим в нее нашу обработку. Создадим общий макет с описанием для нашего расширения, выгружаем в cfe наше расширение. Заходим в 1С (не конфигуратор), далее в "НСИ и администрирование" -> обслуживание -> Установка обновлений и исправлений (патчей), указываем на свое расширение и вуаля: оно загрузилось, программа просит перезапуститься для принятия (можно отказаться, но тогда нашу кнопку увидим только после следующего входа в 1с)
- P.S.1. Как-то не подгадал с днем, так как для этого региона (110307) температура 0 и многие подумают, что это ошибка, но нет: вот, например, для Адыгейска (республика Адыгея) yandex.ru/time/sync.json?geo=11005 температура на момент написания статьи 16 градусов на 20250307 в 13:42.
- P.S.2. Добавлю себе еще других информеров: с цитатника (шуточки, тосты), биржу стартманей, и кое-что. Пользователям добавлю информер еще и своего населенного пункта, пускай ностальгируют (многие не местные)
Автообновления на получение данных не вешал (не надо дергать яндекс слишком часто, так как пользователей много, то может и заблокировать запросы на некоторое время, но и с автообновлением пока не блокировало).
Подходит для всех 1С на управляемых формах (1С должна иметь доступ в интернет).
Прикладываю и расширение (патч), и обработку (может, кому не нужно расширение, но нужна обработка).
