gifts2017

Низкоуровневая отладка веб-клиента 1С

Опубликовал Сергей Карташев (Elisy) в раздел Программирование - Практика программирования

Метод позволяет заглянуть внутрь веб-клиента 1С вплоть до исходных кодов и запустить отладку кода, написанного программистами 1С. Отладка JavaScriptпомогла разобраться с тем, какие преобразования делает 1С с html-кодом, помещенным в Поле HTML документа.

Метод позволяет заглянуть внутрь веб-клиента 1С вплоть до исходных кодов и запустить отладку кода, написанного программистами 1С. Отладка JavaScriptпомогла разобраться с тем, какие преобразования делает 1С с html-кодом, помещенным в Поле HTML документа.

Пожалуйста, не злоупотребляйте методом, так как согласно ГКРФ Статья 1280 декомпилирование допускается для достижения взаимодействия независимо разработанных программ. В нашем случае необходимо было разобраться с ключевыми словами v8config и непонятными автозаменами, которые происходят в html-макетах при помещении их в Поле HTMLдокумента.

1. Запускаем Internet Explorer 10 на Windows 7

2. Открываем URL к опубликованной информационной базе 1С

3. Нажимаем F12 и открываем инструменты разработчика

4. Переходим на вкладку Сценарий и нажимаем «Начать Отладку»

5. Произойдет обновление страницы браузера и нужно снова ввести URL опубликованной базы 1С.

6. Устанавливаем точку останова в нужном месте кода. Для этого открываем все JavaScript файлы и ищем в них через Ctrl+F нужную строку (в нашем случае “v8config” нашлась в файле Динамические Сценарии ->scriptblock (10)). Далее слева двойным кликом или через контекстное меню на строке ставим точку останова.

7. Создаем условия для срабатывания точки останова (в нашем случае нажимаем кнопку с присвоением полю HTMLтекста), срабатывает точка останова.

8. Можно смотреть локальные переменные в правом окне, пошагово выполнять команды, смотреть стек вызовов: делать все отладочные действия аналогично конфигуратору 1С.

Кому-то может показаться интересным, что удалось выяснить относительно Поле HTML документа. Сначала анализируется строка на входе. Если строка не содержит "

Что дает это знание? Можно предположить, что в макетах можно хранить изображения и скрипты, которые будут распознаны в html «на лету» без дополнительной обработки. А вот подключать swf/xap-файлы также просто без дополнительных действий не получится. Случайно инициализация svg-файла содержит src-тэг, поэтому его инициализация пройдет по 1му пути. Нужно проверить эту догадку и удостовериться, что логика веб-клиента совпадает с логикой тонкого клиента.

//

<div><img src="//mc.yandex.ru/watch/21031318" style="position:absolute; left:-9999px;" alt="" /></div>

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей Кудашкин (sikuda) 10.06.13 10:49
1. Сам в свое время офигел, что все так просто. Это сейчас верно для всех браузеров.
2. Лезть в код 1С - дело неблагадарное, они так полные хозяева и могут изменитьвсе что захотят. И работоспособность будет большой головной болью...
3. Но самая большая проблема 1С и IE, то что стандартная 1с web клиент в IE работает в режиме соместимости и это пока не изменилось в 8.3. http://sikuda.ru/internet-explorer-10-dlya-windows-7-vyishel/
B2B; Elisy; +2 Ответить
2. Василий Казьмин (awk) 10.06.13 23:27
(0) Статья из разряда "У осла был отладчик javascript"?
3. Сергей Карташев (Elisy) 11.06.13 05:38
(2) awk,
Спасибо, очень приятно начинать день с таких многозначительных комментариев, как ваш. Спамить, переходить на личности лучше на Мисте - это их фишка. Этот ресурс лучше сохранить для конструктивного общения, не переводя в помойку. Есть что по делу сказать?
4. Игор Мудрицкий (Zas1402) 11.06.13 11:30
Но самая большая проблема 1С и IE

Встретились два чуда софта)) Вороде как обкщяли в 8.3 прикрутить WebKit.
5. Алексей Новоселов (a-novoselov) 11.06.13 11:46
(4) Под *nix только прикрутили, под виндой не работает(
6. Василий Казьмин (awk) 11.06.13 11:58
(3) Elisy, Ты не понял. Осел - в простонародье веб программистов IE. У многих браузеров есть отладчики и что с того? Мяса в статье хочется - мяса.
vano-ekt; B2B; +2 Ответить 1
7. Андрей Овсянкин (Evil Beaver) 11.06.13 12:57
Но какой изо всего этого следует вывод? Можно подробнее - что вы там выяснили такого в интересного отладчике яваскрипта?
8. Сергей Карташев (Elisy) 11.06.13 12:59
(6) awk,
Извини, я не понял. Мясо есть в 2х черновиках новых статей. Могу выслать для предварительного просмотра и критики.
Темы такие: Внешнее воздействие на веб-клиент 1С, когда клиент помещается в IFrame
Некоторые системы подключения html-страниц внутри УФ
Сейчас работа ведется над связкой Html-JS-1СSOAP. Надеюсь, что результат будет и получится статья.
9. Сергей Карташев (Elisy) 11.06.13 13:03
(7) Evil Beaver,
Но какой изо всего этого следует вывод? Можно подробнее - что вы там выяснили такого в интересного отладчике яваскрипта?

1. Весь фреймворк веб-клиента 1С, объекты, стили , события доступны из поля HTML, встроенного в УФ.
2. Весь фреймворк веб-клиента 1С, объекты, стили , события доступны для html-контейнера, если в него поместить через IFrame веб-клиент.

Неясные выводы: из поля HTML-документа, помещенного на УФ скорее всего доступен вызов серверных методов и методов формы. Это решит проблему интеграции HTML c УФ.
Код 1С обфусцирован, разбирать его чрезмерно сложно.
10. B2B (B2B) 11.06.13 13:26
(9) М-да. В век быстрых процессоров мы обфусцируем код, чтобы приложение выполнялось не так быстро...
11. Роман Ложкин (webester) 12.06.13 05:32
Ух ты! Отлично кэп! мы теперь умеем отлаживать, javascript прямо в браузере, правда тут такое дело... когда понадобилось, я загуглил как это делается, где то минут за 3-5. Причем, что javascript разбирал третий или четвертый раз. Или я что то недопонял и статья не про это?
12. Сергей Карташев (Elisy) 12.06.13 06:53
(11) webester,
Ух ты! Отлично кэп! мы теперь умеем отлаживать, javascript прямо в браузере, правда тут такое дело... когда понадобилось, я загуглил как это делается, где то минут за 3-5. Причем, что javascript разбирал третий или четвертый раз. Или я что то недопонял и статья не про это?

Поразительное умение пользоватья Гуглом. Вы за 3-5 минут нашли статью о том, как заглянуть и зайти внутрь исходников 1С? Вы заглядывали внутрь 1С? Если заглядывали, то что можете сказать о структуре объектов и какую пользу получили?
Я заглянул и, как следствие появилась эта статья:
http://habrahabr.ru/post/183016/
А чтобы не забыть, каким путем туда заглядывать и каждый мог повторить путь, написал эту очевидную на ваш взгляд статью.
13. Роман Ложкин (webester) 12.06.13 10:14
(12)за 3-5 минут нашел как отлаживать javascript в браузере. Имхо это просто. Статья же от этом? А внутрь какого кода вы заглядываете, что то меняет? Не в плане полученных вами знаний(в статье об этом ни слова) а в плане отладки, то есть в данном конкретном случае? Как можно забыть нажать f12?

ps конечно, конечно, респект вам и уважуха в полном объеме за то что вы что то там раскопали и поделились этим с сообществом хабра, я вот ниче не раскопал, но отладку java скрипта это не делает менее кэповской.
14. Ростислав Кузьмин (Kuzja_R) 12.06.13 12:59
Публикация откровенно дохлая. Не тянет на статью.
15. John Smith (PiccaHut001) 12.06.13 13:54
Автор успешно открыл отладчик в IE и продемонстрировал нам окошко с тоннами js-копрокодома, все эти hPZ,hQ0,hQ1,hQ2,hQ3,hQ4.... что они даёт нормальному человеку?
16. Сергей Карташев (Elisy) 12.06.13 14:08
(14) Kuzja_R,
Публикация откровенно дохлая. Не тянет на статью.

(15) PiccaHut001,
Автор успешно открыл отладчик в IE и продемонстрировал нам окошко с тоннами js-копрокодома, все эти hPZ,hQ0,hQ1,hQ2,hQ3,hQ4.... что они даёт нормальному человеку?

Это немного близорукий взгляд. Статья - введение в другие исследования - это основа. На этом серия публикаций не заканчивается. Без этой статьи информация будет непоследовательной. Мне важно, чтобы любой 1Сник смог поучаствовать в новых исследованиях и вступить в дискуссию. Область изучения новая и не гарантирует положительный результат. Вероятность положительного результата увеличится, если исследования будут совместными.
17. Ростислав Кузьмин (Kuzja_R) 12.06.13 14:32
(16) Elisy, и даже для введения маловато будет. То, что опубликовано на хабре - согласен - нормальное введение. А эта публикация - спам.
18. John Smith (PiccaHut001) 12.06.13 14:43
(16) Elisy, зачем мелочиться. Сделай уже цикл из 100 статей, в каждой можна описывать настройки апача, нюансы нажатия f12, какого цвета иконки. "чтобы любой 1Сник смог поучаствовать в новых исследованиях и вступить в дискуссию." -тема интересна 0.001%-0.002% специалистов, остальные просто зарабатывают деньги.
19. Сергей Карташев (Elisy) 12.06.13 14:48
(17) Kuzja_R,
(16) Elisy, и даже для введения маловато будет. То, что опубликовано на хабре - согласен - нормальное введение. А эта публикация - спам.

Давайте, передергивать не будем. Статья подходит по тематике для ресурса об 1С. У статьи нет рекламной направленности. Судя по плюсам, есть небольшая часть сообщества, кому она понравилась. Спасибо тем, кто поддержал. Поэтому определение "спам" здесь совсем неуместно.
20. Сергей Карташев (Elisy) 12.06.13 14:55
(18) PiccaHut001,
(16) Elisy, зачем мелочиться. Сделай уже цикл из 100 статей, в каждой можна описывать настройки апача, нюансы нажатия f12, какого цвета иконки. "чтобы любой 1Сник смог поучаствовать в новых исследованиях и вступить в дискуссию." -тема интересна 0.001%-0.002% специалистов, остальные просто зарабатывают деньги.

Мне, например, важны мелочи - именно в мелочах вся суть. Давайте основываться на фактах при рассуждениях. Сейчас факт в том, что 17 человек оценили статью положительно. Это хороший результат относительно других моих публикаций. Так сказать, выше среднего.
Я допускаю мысль, что могу неверно излагать мысли или неполно раскрывать мысли. Но пишу в соответствии с опытом и ограниченным временем.
21. Ростислав Кузьмин (Kuzja_R) 12.06.13 15:03
(19) Elisy, хорошо, не спам. Просто никуда не годная статья. Даже в качестве введения. Даже как объявление новой темы.
22. John Smith (PiccaHut001) 12.06.13 15:18
(20) Elisy, вы пишете очень интересные и нужные статьи. Огромному количеству профессионалов они интересны(целых 17 человек). Вы понимаете, ещё есть очень торопливые социально-адаптированные люди, у которых есть жена, дети, друзья, работа, ипотека, и у них нет времени читать полностью цикл из 100 статей "как я научился нажимать f12 в интернет експлорере". Был бы очень признателен, если бы специально для таких людей перед написанием первой статьи вы бы делали небольшой анонс вида "собираюсь написать цикл из 100 статей как я научился нажимать f12 в интернет експлорере, а в 89 статье я опишу, как получилось задать собственный обработчик события". Тогда можна было-бы прочитать сразу 89 статью и получить хоть какую-нибуть полезную информацию.
webester; Vlasenko.Oleg; +2 Ответить 1
23. Сергей Карташев (Elisy) 12.06.13 15:49
(22) PiccaHut001,
Зачем человеку, у которого ипотека, работа, жена болеет и грудной ребенок вообще заходить на Инфостарт, читать статьи и долго в нескольких постах разжевывать ненужность некоторых статей? Если вам не нужно, это не значит, что другим не нужно. По себе людей не судят.
Суть претензий не ясна. Анонс есть.
24. Сергей Карташев (Elisy) 12.06.13 15:50
(21) Kuzja_R,
(19) Elisy, хорошо, не спам. Просто никуда не годная статья. Даже в качестве введения. Даже как объявление новой темы.

Не проще просто поставить минус, чтобы не тратить свое и чужое время на прочтение статей и постов?
25. John Smith (PiccaHut001) 12.06.13 16:04
(23) Elisy, к счастью(сожалению) жены, ребёнка, ипотеки нету, но я подозреваю, что такие люди существуют. Мне обидно, что действительно оригинальные статьи и разработки задвигаются вниз таким (0) "мусором". Даже затрудняюсь ответить, что мне более противно: байки очередного стартапера или "задротская магия" открытия js кода в отладчике IE.
>>Не проще просто поставить минус, чтобы не тратить свое и чужое время на прочтение статей и постов?
не хватает рейтинга, а то бы - обязательно поставил.
26. Олег Власенко (Vlasenko.Oleg) 12.06.13 16:09
Прочитал. Сначала статья показалась просто сырым, недоделанным материалом.
После прочтения статьи на хабре, понимаешь что у автора таки было что сказать (если это тот же автор).
Возникает нехорошее чувство, что автор посчитал уровень пользователей инфостарта не достаточным для полноценной статьи.
У меня одного такое чувство ?
27. Ростислав Кузьмин (Kuzja_R) 12.06.13 17:02
(26) Vlasenko.Oleg, на хабре за такие "публикации" на кол сажают. А здесь ничего, обсуждаем, убеждаем.
28. Сергей Карташев (Elisy) 12.06.13 18:28
(26) Vlasenko.Oleg,
Прочитал. Сначала статья показалась просто сырым, недоделанным материалом.
После прочтения статьи на хабре, понимаешь что у автора таки было что сказать (если это тот же автор).
Возникает нехорошее чувство, что автор посчитал уровень пользователей инфостарта не достаточным для полноценной статьи.
У меня одного такое чувство ?

Вы зря переживаете. Статья с Хабра будет помещена здесь. Была написана сразу серия статей в Word'е Нужно время, чтобы переделать эту статью под Инфостарт. Но вместо этого сижу - оправдываюсь здесь. А вместе с тем уже 19 плюсов. Значит не все знают, как вызывать отладчик.
29. Сергей Карташев (Elisy) 12.06.13 18:54
(27) Kuzja_R,
(26) Vlasenko.Oleg, на хабре за такие "публикации" на кол сажают. А здесь ничего, обсуждаем, убеждаем.

Я вижу, у вас огромный опыт публикаций на Хабре, вам есть, что сказать дважды забаненному там.
30. Михаил Ражиков (tango) 12.06.13 18:56
(29) Elisy, ну, это не показатель
скока меня тут(!) банили!
31. Сергей Карташев (Elisy) 12.06.13 19:10
(30) tango,
(29) Elisy, ну, это не показатель
скока меня тут(!) банили!

Порог вхождения на Хабр немного выше порога вхождения здесь. Когда вы дважды пробьетесь публикациями в песочнице, мы сможем поговорить на общем языке.
32. Ростислав Кузьмин (Kuzja_R) 12.06.13 20:13
(29)
"Когда его массивная фигура отдалилась достаточно далеко, отец Федор быстро высунул голову за дверь и с долго сдерживаемым негодованием пискнул:
— Сам ты дурак!"
33. ффф ыыы (zqzq) 13.06.13 09:53
Очередная статья из серии "Как хакнуть html поле 1С, получить себе проблем с разработкой, поддержкой, совместимостью (в т.ч. с будущими версиями 1С и (веб)клиентами под Linux/Mac) и весело провести время в Доминикане Тае (а также предоставить вумный отчет о проделанной работе по поиску лучшей жизни интерфейса 1С)". А где-то в заснеженной России уже выходит 8.3, Такси...
vano-ekt; Vlasenko.Oleg; +2 Ответить
34. Владимир Каракозов (karakozov) 17.06.13 15:03
Хорошее начало.Но для публикации маловата.Соглашусь с критиками.Тот же кто не знает как в ИЕ отлаживать html (JS) найдет для себя что то новое.
35. Сергей Кудашкин (sikuda) 19.06.13 12:34
Мой ответ Чембурлену Доминиканне http://infostart.ru/public/191248/ (пока на рассмотрении 19.06.2013 12:30)
36. Евгений Матыцин (matytsin_new) 11.07.13 11:29
Ставлю плюс. Не за содержание статьи, а за тему, как таковую. Сам я давно уже умею нажимать f12. Но вот вопросы аккуратной интеграции веб-клиента в портал компании мне интересны. И частенько мне нужны только данные 1с оформленные привычным, для пользователей 1С:Предприятие, образом. Например:
Мы хотим отражать некие данные из 1С на сайте. Мы можем создать в 1С веб-сервис и получать данные из него. Мы можем создать rest-сервис, и поставить его между 1С и сайтом компании. Мы можем обратиться к данным в таблицах базы 1С. И при всех этих способах нам придется повторно решать задачу отображения полученной информации.
Вариант обращения 1С по правилам Веб-клиента может решить (в обоснованных случаях) задачу доступа и представления данных. Беда в том, что нам неизвестно какая часть кода Веб-клиента является устоявшейся и будет сохранять свою логику в дальнейшем и наоборот. Если внедренцам не предоставляют подобную информацию в открытом виде и ее никто не исследует самостоятельно, аргументируя недостатком времени или чем-то иным, то использовать возможности 1с в полной мере мы не можем. Автор статьи потратил часть своего времени на подобное рассмотрение, и сообщил об этом.
Да информации в статье мало. Я даже сначала подумал, что была некая цензура, чтобы полезные результаты не обнародовались. Но теперь мне ясно, что это лишь способ привлечь внимание к тематике вопроса. А мы ему фактически сказали - делай как все и не надо желать странного. Мало пока такой информации на Инфостарте и на партнерском форуме.
37. Сергей Карташев (Elisy) 11.07.13 14:25
(36) matytsin_new,
Спасибо за конструктивный ответ. Попробуйте посмотреть другую статью
http://infostart.ru/public/190920/
В ней немного больше сказано о внутреннем устройстве веб-клиента и попытка подключиться к нему снаружи.