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

08.04.16

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Дерево вызовов процедур.zip
.zip 27,62Kb
15
15 Скачать (1 SM) Купить за 1 850 руб.

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

  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. Обработка Построение дерева процедур


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

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

См. также

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

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

15500 руб.

02.09.2020    185040    1033    403    

969

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    24951    163    86    

161

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

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

22200 руб.

06.10.2023    20484    52    19    

86

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

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

15000 руб.

10.11.2023    13780    57    33    

77

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    30714    105    48    

148

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    19169    7    32    

43

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

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

5000 руб.

07.02.2018    104969    246    100    

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


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

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

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

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

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

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

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

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

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


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