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

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С.

12000 руб.

02.09.2020    171888    962    403    

924

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

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

8400 руб.

20.08.2024    14372    109    46    

108

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

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

22200 руб.

06.10.2023    17314    43    15    

75

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

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

9360 руб.

17.05.2024    27305    96    48    

138

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

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

15000 руб.

10.11.2023    11917    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191283    1152    0    

920

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

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

20000 руб.

07.10.2021    18101    7    32    

42

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1136    2    0    

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


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

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

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

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

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

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

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

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

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


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