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

Публикация № 1155998

Разработка - Практика программирования

анализ код

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Специальные предложения

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

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

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

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

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

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

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


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

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

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

См. также

[СКД] Программное создание схемы компоновки данных

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    4952    John_d    19       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

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

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования

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

02.12.2019    8297    YPermitin    71       

Открыто голосование за доклады на INFOSTART MEETUP Krasnodar Промо

Выбирайте и голосуйте за самые интересные доклады, лучшие из них попадут в окончательную программу митапа. Голосование продлится до 30 января 2020 года.

Агрегатные функции СКД, о которых мало кто знает

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    21403    ids79    45       

INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо

Краснодар станет первым в 2020 году местом, где пройдет региональная встреча IT-специалистов сообщества Инфостарт. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Стоимость участия - 5000 рублей. Цена действительна до 26.12.2019.

Три костыля. Сказ про фокусы в коде

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    13190    YPermitin    70       

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500/9500 рублей

Отслеживание выполнения фонового задания

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    16609    ids79    16       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    27782    ids79    34       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Фоновое выполнение кода в 1С - это просто

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

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

02.08.2019    16703    avalakh    21       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    23448    ids79    8       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    17651    ids79    27       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Регистры сведений. За кулисами

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    13608    YPermitin    12       

"Меньше копипаста!", или как Вася универсальную процедуру писал

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    11578    SeiOkami    49       

Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо

Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.

7500 рублей

Создание отчетов с помощью СКД - основные понятия и элементы

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    29329    ids79    17       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    16003    dmurk    144       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Регистры накопления. Структура хранения в базе данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    25293    YPermitin    27       

Выполнение внешней обработки в фоновом задании

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    16095    Eret1k    23       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Выгрузка документа по условию

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    8873    m-rv    2       

Как прикрутить ГУИД к регистру сведений

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    11912    m-rv    16       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

О расширениях замолвите слово...

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    21840    ellavs    125       

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    17655    ellavs    83       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Трюки с внешними источниками данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    19275    YPermitin    53