Дерево вызовов процедур

08.04.16

Разработка - Инструментарий разработчика

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

Скачать файлы

Наименование Файл Версия Размер
Дерево вызовов процедур.zip
.zip 27,62Kb
15
.zip 27,62Kb 15 Скачать

Постановка задачи

  1. Пусть есть некоторая конфигурация, написанная не нами, например типовая.

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

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

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

  5. Может также применяться в случаях, когда алгоритм очень объемный и необходимо определить где поставить точку останова, чтобы начать исследование интересующего нас кусочка этого алгоритма

Принцип работы

Выполняется программная обработка модулей исследуемого алгоритма. На входе и выходе каждой процедуры подставляется вызов условного метода. В данном случае условным методом является процедура Оповестить(). Перед запуском алгоритма открывается специальная форма, ловит оповещения и фиксирует в виде табличного документа на этой форме.


Детали доработки

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

  2. Т.к. частичная загрузка файлов через метод “Загрузить конфигурацию из файлов” в некоторых случаях отрабатывает с ошибкой, обработка модулей выполняется через “старые” методы конфигурации “Выгрузить файлы конфигурации” и “Загрузить файлы конфигурации”, поэтому необходимо включить возможность изменения для всех обрабатываемых модулей.

Подготовка конфигурации к замеру "Полная"

  1. Замер необходимо производить в копии базы. Поэтому нужно подготовить копию для замера

  2. Включить возможность изменения для всех модулей конфигурации

  3. Закрыть конфигуратор

  4. Открыть обработку “Подготовка конфигурации к построению дерева вызова процедур”

    1. проставить все галки

    2. рабочий каталог можно оставить по умолчанию, обработка создаст в нем свой каталог и поместит в него служебные файлы

  5. Дождаться, пока обработка :

    1. Выгрузит модули текущей конфигурации в текстовые файлы

    2. обработает файлы

    3. загрузит модули из обработанных файлов

  6. Войти в конфигурацию и применить изменения (F7)

Подготовка конфигурации к замеру "Быстрая"

Наиболее продолжительной по времени операцией в полном способе является операция 5-b. Чтобы ускорить эту операцию можно использовать ускоренный способ, при котором обрабатываются только те модули, которые мы хотим исследовать

  1. Выполнить замер производительности для исследуемого алгоритма через стандартную функцию конфигуратора Отладка-Замер производительности

  2. Выполнить все пункты из полной подготовки к замеру с той лишь разницей, что на шаге 4 установить не все флаги, а только модули, которые есть в замере производительности. Для этого есть специальная кнопка “Отметить из замера”. По этой кнопке откроется текстовое поле, в которое нужно вставить скопированный замер (“ctrl+A”, “ctrl+C”)

Подготовка к замеру демо конфигурации ERP таким способом занимает около 20 минут

  • - около 2 минут выгрузка всех модулей конфигурации в текстовые файлы

  • - около 2-5 минут обработка файлов (если их много)

  • - около 1 минуты загрузка файлов

  • - остальное время на копирование, сохранение, запуск

Построение дерева вызовов:

  1. Подготовить систему к замеру, т.е. выполнить все подготовительные действия, которые не должны попасть в замер

  2. Открыть обработку Построение дерева вызовов процедур

  3. Запустить выполнение исследуемого алгоритма

  4. По окончании выполнения алгоритма перейти в окно обработки, установить галку “Отключить замер” и нажать кнопку Форматировать, чтобы привести замер к более читаемому виду

Ограничения:

  1. Работает только в режиме толстого клиента файловой версии. Тестировалось на 1С:ERP Управление предприятием 2 (2.1.3.82)

  2. Разработку не следует использовать на рабочей базе, т.к. это может привести к нежелательным последствиям

  3. Обработка всех текстов модулей выполняется очень продолжительное время.

  4. Можно замерять в режиме обычного и управляемого приложения, но использовалось пока только в управляемом

  5. Обработка для подготовки к замеру реализована только на управляемых формах

  6. Обязательное требование: качественный читаемый код конфигурации, в котором по названию процедуры можно достаточно точно понять, что она делает

  7. Длительность выполнения замеряемой операции может увеличиться в разы. Например, если в демо базе проведение выполнялось 5 секунд, то с замером это же проведение может выполняться минуту и больше. Поэтому лучше позаботиться, о том, чтобы лишние процедуры, которые не представляют интереса для исследования, не попали в замер.

Данная разработка является вариацией на тему аналогичных работ:

//infostart.ru/public/164960/

//infostart.ru/public/203843/


Содержание архива:

1. Обработка Подготовка конфигурации к построению дерева процедур

2. Обработка Построение дерева процедур


Жду конструктивной критики

дерево процедур инструменты универсальные обработки

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 руб.

02.09.2020    119932    656    389    

701

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    7011    20    6    

37

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    3250    10    1    

31

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177344    1070    0    

846

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99205    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    17914    6    8    

38

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    27945    3    10    

14

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23491    15    15    

31
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. karpik666 3759 08.04.16 12:56 Сейчас в теме
Очень интересно, а в чем же вариация состоит с другим разработками, вы брали код обработок и допиливали его, либо создавали с нуля?
2. json 3294 08.04.16 13:13 Сейчас в теме
Создавал с нуля. Аналоги упомянул для большей полноты картины
3. zekrus 151 13.04.16 07:51 Сейчас в теме
Доброе утро!
Наконец-то есть отличная идея. Напоминает кино "Сеть", там правда анализировали код вируса (строилась в виде графической схемы алгоритма как в школе).
4. DrAku1a 1678 14.04.16 02:24 Сейчас в теме
Несмотря на то, что что-то подобное уже есть, разработка весьма нужная и актуальная. В связи с особой извращённостью сложностью построения кода типовых решений от 1С.
5. monkbest 115 24.10.16 16:27 Сейчас в теме
Привет, обработка подготовки добавила в серверный общий модуль строку:
Выполнить("Оповестить(""*"", ""ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль.УстановкаПараметровСеанса()"", Истина)");


Что не работает, т.к. метод оповестить не доступен на сервере. Вот из синтаксис помощника:
Глобальный контекст (Global context)
Оповестить (Notify)
Синтаксис:

Оповестить(<ИмяСобытия>, <Параметр>, <Источник>)
Параметры:

<ИмяСобытия> (необязательный)

Тип: Строка.
Имя события. Может быть использовано для идентификации сообщений принимающими их формами.
<Параметр> (необязательный)

Тип: Произвольный.
Параметр сообщения. Могут быть переданы любые необходимые данные.
<Источник> (необязательный)

Тип: Произвольный.
Источник события. Например, в качестве источника может быть указана другая форма.
Описание:

Посылает оповещение всем созданным формам и всем подключенным через метод ПодключитьОбработчикОповещения процедурам модуля управляемого приложения (модуля обычного приложения) или общего модуля. Если для формы задана процедура-обработчик события ОбработкаОповещения, то она будет запущена, в процедуру будут переданы указанные параметры.
Данный механизм может, например, применяться для организации обмена сообщениями между открытыми формами.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Показать


Я что-то не так делаю? Конфа под УФ платформа 8.3.6.2299
6. json 3294 24.10.16 16:56 Сейчас в теме
(5) monkbest, это ограничение данной версии. Оно описано в статье в разделе Ограничения п. 1.
Но в принципе могу докрутить в ближайшее время, чтобы работало и на серверной версии, если есть интерес
Оставьте свое сообщение