Низкоуровневая отладка веб-клиента 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) 473 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) 667 10.06.13 23:27 Сейчас в теме
(0) Статья из разряда "У осла был отладчик javascript"?
3. Сергей Карташев (Elisy) 837 11.06.13 05:38 Сейчас в теме
(2) awk,
Спасибо, очень приятно начинать день с таких многозначительных комментариев, как ваш. Спамить, переходить на личности лучше на Мисте - это их фишка. Этот ресурс лучше сохранить для конструктивного общения, не переводя в помойку. Есть что по делу сказать?
4. Игор Мудрицкий (Zas1402) 11.06.13 11:30 Сейчас в теме
Но самая большая проблема 1С и IE

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

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

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

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

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

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

Это немного близорукий взгляд. Статья - введение в другие исследования - это основа. На этом серия публикаций не заканчивается. Без этой статьи информация будет непоследовательной. Мне важно, чтобы любой 1Сник смог поучаствовать в новых исследованиях и вступить в дискуссию. Область изучения новая и не гарантирует положительный результат. Вероятность положительного результата увеличится, если исследования будут совместными.
17. Ростислав Кузьмин (Kuzja_R) 284 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) 837 12.06.13 14:48 Сейчас в теме
(17) Kuzja_R,
(16) Elisy, и даже для введения маловато будет. То, что опубликовано на хабре - согласен - нормальное введение. А эта публикация - спам.

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

Мне, например, важны мелочи - именно в мелочах вся суть. Давайте основываться на фактах при рассуждениях. Сейчас факт в том, что 17 человек оценили статью положительно. Это хороший результат относительно других моих публикаций. Так сказать, выше среднего.
Я допускаю мысль, что могу неверно излагать мысли или неполно раскрывать мысли. Но пишу в соответствии с опытом и ограниченным временем.
21. Ростислав Кузьмин (Kuzja_R) 284 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) 837 12.06.13 15:49 Сейчас в теме
(22) PiccaHut001,
Зачем человеку, у которого ипотека, работа, жена болеет и грудной ребенок вообще заходить на Инфостарт, читать статьи и долго в нескольких постах разжевывать ненужность некоторых статей? Если вам не нужно, это не значит, что другим не нужно. По себе людей не судят.
Суть претензий не ясна. Анонс есть.
24. Сергей Карташев (Elisy) 837 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) 10 12.06.13 16:09 Сейчас в теме
Прочитал. Сначала статья показалась просто сырым, недоделанным материалом.
После прочтения статьи на хабре, понимаешь что у автора таки было что сказать (если это тот же автор).
Возникает нехорошее чувство, что автор посчитал уровень пользователей инфостарта не достаточным для полноценной статьи.
У меня одного такое чувство ?
27. Ростислав Кузьмин (Kuzja_R) 284 12.06.13 17:02 Сейчас в теме
(26) Vlasenko.Oleg, на хабре за такие "публикации" на кол сажают. А здесь ничего, обсуждаем, убеждаем.
28. Сергей Карташев (Elisy) 837 12.06.13 18:28 Сейчас в теме
(26) Vlasenko.Oleg,
Прочитал. Сначала статья показалась просто сырым, недоделанным материалом.
После прочтения статьи на хабре, понимаешь что у автора таки было что сказать (если это тот же автор).
Возникает нехорошее чувство, что автор посчитал уровень пользователей инфостарта не достаточным для полноценной статьи.
У меня одного такое чувство ?

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

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

Порог вхождения на Хабр немного выше порога вхождения здесь. Когда вы дважды пробьетесь публикациями в песочнице, мы сможем поговорить на общем языке.
32. Ростислав Кузьмин (Kuzja_R) 284 12.06.13 20:13 Сейчас в теме
(29)
"Когда его массивная фигура отдалилась достаточно далеко, отец Федор быстро высунул голову за дверь и с долго сдерживаемым негодованием пискнул:
— Сам ты дурак!"
33. ффф ыыы (zqzq) 15 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) 473 19.06.13 12:34 Сейчас в теме
Мой ответ Чембурлену Доминиканне http://infostart.ru/public/191248/ (пока на рассмотрении 19.06.2013 12:30)
36. Евгений Матыцин (matytsin_new) 21 11.07.13 11:29 Сейчас в теме
Ставлю плюс. Не за содержание статьи, а за тему, как таковую. Сам я давно уже умею нажимать f12. Но вот вопросы аккуратной интеграции веб-клиента в портал компании мне интересны. И частенько мне нужны только данные 1с оформленные привычным, для пользователей 1С:Предприятие, образом. Например:
Мы хотим отражать некие данные из 1С на сайте. Мы можем создать в 1С веб-сервис и получать данные из него. Мы можем создать rest-сервис, и поставить его между 1С и сайтом компании. Мы можем обратиться к данным в таблицах базы 1С. И при всех этих способах нам придется повторно решать задачу отображения полученной информации.
Вариант обращения 1С по правилам Веб-клиента может решить (в обоснованных случаях) задачу доступа и представления данных. Беда в том, что нам неизвестно какая часть кода Веб-клиента является устоявшейся и будет сохранять свою логику в дальнейшем и наоборот. Если внедренцам не предоставляют подобную информацию в открытом виде и ее никто не исследует самостоятельно, аргументируя недостатком времени или чем-то иным, то использовать возможности 1с в полной мере мы не можем. Автор статьи потратил часть своего времени на подобное рассмотрение, и сообщил об этом.
Да информации в статье мало. Я даже сначала подумал, что была некая цензура, чтобы полезные результаты не обнародовались. Но теперь мне ясно, что это лишь способ привлечь внимание к тематике вопроса. А мы ему фактически сказали - делай как все и не надо желать странного. Мало пока такой информации на Инфостарте и на партнерском форуме.
37. Сергей Карташев (Elisy) 837 11.07.13 14:25 Сейчас в теме
(36) matytsin_new,
Спасибо за конструктивный ответ. Попробуйте посмотреть другую статью
http://infostart.ru/public/190920/
В ней немного больше сказано о внутреннем устройстве веб-клиента и попытка подключиться к нему снаружи.