Анализ функциональности: где наш код?!

02.12.19

Разработка - Механизмы платформы 1С

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

Довольно часто консультант или аналитик должен решать разные задачи, которые связаны с анализом внутренностей программы, места выполнения функциональности или кода. Самый быстрый способ узнать, где исполняется та или иная функциональность, это использование функции "замера производительности". Замер как раз нам и подскажет, где наша функциональность, а дальше мы сможем углубиться в детали и при необходимости посмотреть код. Я часто так делаю, я не знаю всех особенностей учета, что зависит от чего, а инструкции к программе я давно не читаю.

Пример: нам нужно посмотреть, как работает функционал закрытия периода в ERP.

Шаг 1: открыть конфигуратор программы, далее в главном меню -"конфигурация" - "открыть конфигурацию". Далее в главном меню "Отладка" -"Начать отладку" или просто клавиша (F5)

После того как отладка запущена, зайти в подключение отладки ("Отладка"- "Подключение")

Далее в открывшемся окне внизу нажать "Автоматическое подключение" и в открывшемся окне "Автоматическое подключение" установить минимум 2 флага "Клиентские и внешние соединения на сервере" и "Фоновые задания".

Далее последовательно закрываем эти окна.

После этого уже в пользовательском режиме открываем то, что нам нужно.

Я планирую открыть рабочее место "Закрытие месяца".

Перед самым открытием вернуться в конфигуратор и нажать "Отладка" - "Замер производительности.

Возвращаемся в пользовательский режим и нажимаем в меню "Закрытие месяца". Ждем, пока откроется окно рабочего места "Закрытия месяца".

После этого возвращаемся в конфигуратор. И видим в отладчике фоновое задание или несколько окон замеров (это зависит от количества запущенных фоновых заданий).

Останавливаем замер производительности также "Отладка"- "Замер производительности"

Теперь начинается самое интересное - анализ мест исполнения. Таблица замера содержит следующие колонки: Модуль, номер строки, строка, кол, время выполнения и процент времени выполнения.  В таблице можно выполнять сортировку. Я люблю 2 сортировки ( по модулю и по проценту выполнения).

Если отсортироваться по проценту выполнения, то, как правило, сразу понятно, где выполняется основная функциональность.

Пример сортировки ниже

Видно, что это 2 модуля (Аудит состояния системы и закрытие месяца). Нас интересует модуль "Закрытие месяца сервер". Это и есть основной модуль, который отвечает за функциональность закрытия месяца.

Я люблю сохранять модули в эксель. В экселе очень удобно, можно в отдельных колонках оставлять комментарии.

Для этого нужно выделить все содержимое (Ctrl+A), открыть эксель и вставить туда содержимое через копи-паст.

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

И после сортировки увидеть все модули, где отрабатывают проверки "Закрытие месяца".

Также результаты замеров можно сохранять не в эксель, а в файлы с расширением *.PFF и открывать их позже для анализа.

анализ код

См. также

Динамическое обновление - это зло?

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Копнем глубже в тему "Что же такое динамическое обновление" и почему оно может привести к проблемам. И может ли?

09.05.2022    27413    Infostart    83    

243

Совместимость работы со строками. Жизнь до 8.3.6 и после

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Немного о совместимости со старыми версиям платформы 1С в работе со строками.

21.02.2020    8401    Infostart    25    

69

Эволюция расширения конфигурации

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

06.02.2020    26774    Xershi    51    

223

Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

Механизмы платформы 1С Управляемые формы Бесплатно (free)

Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

23.12.2019    25143    TitanLuchs    23    

100

30 задач. Странных и не очень

Математика и алгоритмы Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    50764    Infostart    65    

164

Фишечки-рюшечки

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

За годы работы с 1С собрался определенный багаж хитростей, который позволяет разрабатывать быстрее/эффективнее/качественнее. Поделюсь ими в данной статье.

06.11.2019    11204    mpeg1989    95    

66

ЧтениеДанных и ЗаписьДанных. Работа со строками

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Использование потоков и двоичных данных для работы со строками.

04.10.2019    23851    Yashazz    16    

76
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 02.12.19 11:52 Сейчас в теме
Это просто инструкция по использованию в конфигураторе механизма
"замер производительности".

тег "Анализ функциональности" в заголовке просто для красного словца и ни о каком анализе в теме речь не идет. Это более глубокая тема и в логическом, и в физическом плане чем замер и автор никак ее не раскрыл.
Вопрос "где наш код?" также маркетинговая уловка.

Для новичка, не для новичка, но использовать подмену понятий при копировании
очевидного и общедоступного механизма без единой идеи - это, по крайней мере,
очень порядочно и профессионально.
Дмитрий74Чел; Intercititude; CodeNull; Xershi; +4
2. Kindman1980 81 02.12.19 12:23 Сейчас в теме
(1) в теме публикации я хотел еще одно применение механизма написать, но мне отклонили публикацию сославшись на незаконность применения по политикам 1с. Хотя я с таким применением много, где сталкивался. То, что вы говорите про механизм, то возможно вы правы. Но с другой стороны -как называется механизм "Анализ производительности". Я лишь пишу про другое применение. И возможно его все программисты знают, но не знает большинство консультантов, что его можно таким образом использовать. Особенно для цели, когда ты не знаешь функционал, а тебе нужно быстро понять как он работает. Сейчас по-другому это называется "переупаковка".
Shalnov; mrChOP93; +2
3. VmvLer 02.12.19 12:39 Сейчас в теме
(2) Мои сообщения не следует воспринимать как личную дискредитацию, чаще я отвечаю некому абстрактному автору и опираясь на своё субъективное мнение о реальности современных технологий.

можно до упаду спорить о терминах и манипуляциях в современном мире, даже топ-компании часто грешат очковтирательством жонглируя очень удобным термином "анализ" в своих поделках
по разбору шелухи. так что, каков мир технологий, таковы и его адепты.
JohnConnor; Xershi; +2
11. Saipl 7 03.12.19 13:29 Сейчас в теме
(3)
Мои сообщения не следует воспринимать как личную дискредитацию, чаще я отвечаю некому абстрактному автору и опираясь на своё субъективное мнение о реальности современных технологий.

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

Мощно задвинул - надо заучить !
Буду при встрече с клиентами такую тираду выдавать - многозначительно глядя в потолок )
Всем добра !
+
4. user764477 02.12.19 12:54 Сейчас в теме
(2)Заинтриговали прям, с альтернативным применением. Намекните хотя бы...
for_sale; mrChOP93; +2
5. dandykry 9 02.12.19 14:23 Сейчас в теме
(1)

очень порядочно и профессионально


Ты воюешь не в ту сторону
+
6. VmvLer 02.12.19 14:34 Сейчас в теме
(5) я не воюю, просто лягаюсь как кони на водопое для бодрости тела и рассудка - не надо маленьких дурить)
Xershi; +1
7. dandykry 9 02.12.19 14:37 Сейчас в теме
(6) Да понятно, что пользы от публикации 1%.

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

Порадовал))
+
8. leosoft 165 02.12.19 17:15 Сейчас в теме
(6) Не надо слишком категорично судить публикации. Автор поделился своим опытом, который может
быть полезен, как минимум, начинающим.
bambucho; user843241; DmitryKSL; +3
14. bambucho 07.09.22 18:11 Сейчас в теме
(1) Какой инструментарий Вы посоветуете для анализа кода?
+
9. &rew 49 03.12.19 09:52 Сейчас в теме
Вообще, сам иногда пользуюсь этим способом. Но есть несколько нюансов:
1. "Если отсортироваться по проценту выполнения, то, как правило, сразу понятно, где выполняется основная функциональность." Вообще не факт. Это если на запросе и то не факт, а так и НайтиСсылки можно за основную функциональность принять.
2. Можно еще, если непонятно где затык (а так почти всегда), ставить точку останова и смотреть стек.
3. Если кнопочка с процедурой сформирована программно, например, как получаются параметры процедуры кнопки и собственно что за процедура вызывает действие, мы через замер не увидим, мы увидим только грубо говоря факт выполнения.
4. Ну и ВременноеХранилище. Если мы из него получаем данные, то как оно туда попало мы не факт что увидим в текущем вызове.
Shalnov; +1
10. Kindman1980 81 03.12.19 13:05 Сейчас в теме
(9) да я со многим согласен и стек второй инструмент.
+
12. user1454320 23.12.20 09:21 Сейчас в теме
Мне было полезно прочесть как текст публикации так и комментарии к ней. Все в тему. Спасибо.
+
13. bambucho 07.09.22 18:10 Сейчас в теме
Ну очень не хватает колонки с последовательностью вызовов строк / порядкового номера.
+
Оставьте свое сообщение