Трассировка кода V8

04.12.12

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

Трассировка запусков процедур и функций V8

Скачать файл

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

Наименование По подписке [?] Купить один файл
traceV8.zip
.zip 90,17Kb
76
76 Скачать (1 SM) Купить за 1 850 руб.

Некоторое время назад возникла необходимость окинуть с высоты птичьего полёта БП3.0.

Прежде всего какие модули когда и как задействуются.

 

Немного цифр к размышлению.

Количество задействованных модулей при проведении ПТУ:

БП2.0 - 21 шт.

БП3.0 - 122 шт.

Уровней вложенности запускаемых процедур или функций при проведении ПТУ:

БП2.0 - 6

БП3.0 - 12

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

Что есть эта публикация. Это простой и немудрёный способ оттрейсить запускаемые процедуры через вписку во все процедуры и функции соответственно. Результат вызовов скидывается в иерархический справочник в правильном порядке. Через простой запрос на выходе мы получаем корректное дерево вызовов.

Нет никаких ВК. Т.е. нет проблем с операционкой, памятью, совместимостью и прочим.  Только 1С, только хардкор :) Регулярок тож, кстати, нет. Хотя были первоначальные варианты с ними.

  

В архиве лежат:

- файл mxl - это пример конечного результата. Дерево вызовов процедур и функций при проведении ПТУ. Обычные формы.

- обработка для конвертации файлов текстов модулей. 

- файлы клипборда - это файлы-копии буфера обмена в которые сохранены метаданные, которые необходимо вставить в соответствующие ветки конфигурации.

- сама программа clipbrd.exe, для тех, кто работает в Vista и Win7. Для XP - она лежит в /system32

--- 

Инструкция к применению:

1. Выгружаем всю конфу - меню "Конфигурация/Выгрузить файлы конфигурации.."

2. Через замер производительности определяем только те модули, которые нам интересны. Например, модули проведения ПТУ. Во всей БП3.0 2982 файла модулей, поэтому все их курочить - это долго и бессмысленно.

3. Копируем в отдельную папку нужные модули и называем её "Образец"

4. Копируем папку "Образец" в папку "Образец - копия". Именно файлы этой папки будет менять.

5. Открываем обработку. Для любопытства и теста можно сперва просто поконвертить файлы не записывая. Для режима записи ставим галку "Записывать".

6. Сконвертированные файлы заливаем обратно в конфу  "Конфигурация/Загрузить файлы конфигурации.." 

7. Вставляем через буфер обмена и программу clipbrd.exe нужные метаданные.

 

8. Грустный пункт! В некоторых процедурах и функциях программисты не ставили последнюю ";". Обработка не проставляет их, к сожалению. Если кто докодит - пожалуйста. Т.е. все такие ";" нужно будет ставить руками. По опыту, на проведении ПТУ потребовалось примерно 10 запусков, чтобы полностью отладить эти места.

 

9. После удачного запуска работаем через справочник "Трассировка".

В нем в панели есть две кнопки "Очистить все" - очищаем сам справочник и обнуляет константу "НомерТрассировки" (уровень трассировки) и кнопка "Включить трассировку" - включает/выключает режим трассировки и записи результата в справочник.

По результам работы получаем записанное дерево. Можно писать запросы :)

 

--- 

Что хотелось бы отметить отдельно:

1. Это работает небыстро. Запись, очистка и т.п. - всё это работает весьма небыстро. Задачи сделать красиво, быстро и круто - не было. Реализована прежде всего задача получения дерево вызовов модулей, процедур и функций.

2. Для обычного приложения. В УФ вроде тоже работает, но особо не тестил. 

3. Это не коммерческая версия. Т.е. as is, никаких гарантий :). Не могу сказать, что я сам её активно использую. И буду ли вообще использовать постоянно. Можно считать это просто информацией к размышлению.

4. Для чего это вообще? Например:

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

- для анализа узких мест своих процессов. К примеру, излишних вызовов одних и тех же штук в разных местах по сто раз.

- для стандартизации процессов (проведения документов, к примеру и т.п.).

и т.п.

5. Кто захочет докодить, накодить, перекодить. 1С-ом, через ВК, через регулярные выражения - буду рад! Кто захочет прикрутить визуализацию - пожалуйста! Вообще, буду рад любому развитию темы.

 

тема форума http://forum.infostart.ru/forum26/topic47900

от О-Планет для 7.7 //infostart.ru/public/16676/

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159810    876    399    

862

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7941    59    23    

70

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

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

9360 руб.

17.05.2024    23544    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10486    36    25    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15458    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    188101    1140    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

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

15000 12750 руб.

07.10.2021    17331    6    32    

42

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

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

1800 руб.

21.02.2023    7731    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7231 05.12.12 01:34 Сейчас в теме
Если запись выполняется сразу (в реальном времени), то это должно ОЧЕНЬ сильно замедлять работу программы. Думаю замедление будет зачастую такое, что никто даже не захочет этим пользоваться. Поэтому если сделано именно так, то рекомендую все таки рассмотреть вариант без записи в бд, а просто строить дерево в памяти.
romansun; +1 Ответить
2. DrAku1a 1745 05.12.12 02:35 Сейчас в теме
А стандартный механизм трассировки от 1С чем плох то?
5. BorisMor 310 05.12.12 07:08 Сейчас в теме
(2) DrAku1a, а под стандартными вы что подразумеваете ?
Мне вообще грустно, что нет в 1С нормальной системы логрования (с разбиением сообщений на типы, указанием временем, запись в отдельную базу). На C# пользуюсь библиотекой NLog – любо дорого.

ps
Вот моя поделка по этой же теме
http://infostart.ru/public/127171/
user1487303; +1 Ответить
8. DrAku1a 1745 05.12.12 10:18 Сейчас в теме
11. BorisMor 310 05.12.12 11:08 Сейчас в теме
(8) DrAku1a, это не совсем трассировка.
Последовательности вызова не вижу.
20. bk-81 50 06.12.12 17:23 Сейчас в теме
(5) BorisMor, а что из перечисленного не умеет ЗаписьЖурналаРегистрации?
12. romansun 194 05.12.12 11:15 Сейчас в теме
(2)

Есть два инструмента - замер производительности и стек вызовов.
В замере всё хорошо, только нет одной единственной чертовой колонки... Номера вызова строк по порядку.

Ну, а стек тоже хорош, но он немного не про то. Попробуйте отрассировать проведение дока, увидите.


(1) +1, да, надо что-то такое делать, в ДЗ, в xml или еще как-нить. В справочник медленно.
15. DrAku1a 1745 05.12.12 13:00 Сейчас в теме
(12) в регистр сведений попробуй. быстро вроде бы...
16. romansun 194 05.12.12 14:12 Сейчас в теме
(15)
иеархический справочник хорош и мощен прежде всего своим

"УПОРЯДОЧИТЬ ПО Ссылка ИЕРАРХИЯ "

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

В данном решении есть еще колонка с временем, но она ни о чем, ибо оно 1С-ное в пределах секунды. Допилить до тысячных, и можно свой замер производительности делать, с блэкджеком и с возможностями снимать производительность попроцедурно, помодульно, "поветочно" и кто как еще придумает.
3. VNSh 05.12.12 05:40 Сейчас в теме
Спасибо, может очень пригодиться.
В ссылке на тему форума нужен завершающий слэш, иначе она не работает.
romansun; +1 Ответить
4. mr.Kot 05.12.12 07:02 Сейчас в теме
Грусно как-то от того, что усложняется БП от версии к версии.
6. vec435 17 05.12.12 09:29 Сейчас в теме
если построить дерево вызовов только на основе выгруженных модулей то это сократит время при отладке
Прикрепленные файлы:
10. BorisMor 310 05.12.12 11:05 Сейчас в теме
(6) vec435, а как вызвать данное окно?
Я только стеком пользуюсь.
14. vec435 17 05.12.12 11:30 Сейчас в теме
(10) BorisMor, это моя обработка. но по сайту можно найти что-то вроде "анализ кода"
7. vec435 17 05.12.12 09:58 Сейчас в теме
9. DoctorRoza 05.12.12 10:55 Сейчас в теме
Отмечусь, чтобы запомнить, на всякий случай!!
13. romansun 194 05.12.12 11:19 Сейчас в теме
Я вообще надеюсь на 1С. Весьма непросто разбираться в чем-то новом, в частности на УФ, без мощного набора инструментов.

У них же модулей теперь немерено, к примеру:
УчетНДС
УчетНДСБП
УчетНДСВызовСервера
УчетНДСВызовСервераПовтИсп
УчетНДСКлиентСервер
УчетНДСПереопределяемый
17. iceflash 4 05.12.12 17:25 Сейчас в теме
Хм, вспомнил подобное (не по механике, но по смыслу, правда так и не удалось протестировать), из плюсов:
- без изменения конфы,
- без тормозов
из минусов - это именно анализ, "без трассирования прохождения кода на лету при нажатии вот этой кнопоньки" Кстати как насчет стандартного стека вызовов в конфигураторе 1с?
только анализ кода, и даже более лучше графическое представление:
http://infostart.ru/public/78976/
BorisMor; +1 Ответить
18. Yashazz 4791 06.12.12 13:25 Сейчас в теме
За предложение массово менять код типовой конфы как-то очень хочется минуснуть. Или вы потом будете поддержку ручками согласовывать, отслеживать изменения каждого модуля?

Идея стара как мир, разве что с появлением возможности грузить туда-сюда исходники её реализация упростилась...
19. romansun 194 06.12.12 14:06 Сейчас в теме
(18)
поддержку?

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

После этого "отработанный материал выбрасывается". Либо база с накопленной статистикой остаётся для дополнительного анализа.
21. адуырщдв 28 07.12.12 08:45 Сейчас в теме
Где то я уже видел такое. Может конечно ошибаюсь.
22. NoRazum 29 07.12.12 15:48 Сейчас в теме
";" Не единственная проблема
Еще когда в начале функции определяются переменные.

Разные контору пишут одну и туже конфу ))
23. romansun 194 07.12.12 18:50 Сейчас в теме
(22)

вычищал вроде все варианты с "перем"... все, да не все :)

если не сложно, скиньте пример такой функции
24. NoRazum 29 10.12.12 10:01 Сейчас в теме
Бухгалтерия 2.0 последняя конфигурация.
Общие модули. В некотрых нормально, некоторых ошибка.
26. aim 14.12.12 11:21 Сейчас в теме
Иногда нужно посмотреть "живую" трассу, а иногда нужно посмотреть точки ветвления и от чего программа пошла по этому пути, зависимости. Но это так - к слову. Но вот если верно, что (как Вы пишете), что сложность программы от20 к30 увеличивается на порядок, то это конечно да. Мне уже начало было казаться, что 1С единственная и неповторимая, но при общей непрозрачности 1С кода... 1С может повторить судьбу всех своих монструозных собратьев. Был Мультикс - пришел Юникс; был Windows - пришел Apple, Android и т.д; был IBM x86 - появился ARM.
27. romansun 194 14.12.12 11:36 Сейчас в теме
(26)
о, спасибо за коммент.

Да, согласен со всем. В целом в 1С инструментов маловато и, в принципе, при таком положении дел мы можем получить некие огромнейшие софтины с открытым бесполезным кодом, в которые можно будет только что писать костылики, поскольку объять необъятное будет невозможно просто сидя в отладке.

Вот очень очень не хотелось бы этого.

Сложность 2.0-3.0, думаю, раза в два-три выросла с увеличением количества задействованных модулей в 6-7 раз... Ну, это общая 1С-ная тенденция усложнения и платформы и конфигураций. На курсах 1С часто говорят преподы про это - раньше раз-раз и готов специалист, а щас смотришь, а уже не меньше года на подготовку надо.
28. pumbaE 24.12.12 02:27 Сейчас в теме
В связи с выходом новой версии снегопата и возможности его работы в режиме отладки, есть идея использовать данную разработку, как каркас по трассировке кода. Сейчас уже можно поставить две точки останова в начале процедуры, например обработки проведения, и в конце, запустить определенный скрипт, который сам будет нажимать F11 и записывать вызовы в базу.

Можно ли будет использовать ваш код для этого?
29. romansun 194 11.01.13 15:10 Сейчас в теме
(28)

да, конечно, без проблем. Будет очень любопытно взглянуть на результат.
30. pumbaE 11.01.13 15:34 Сейчас в теме
(29) предварительная реализация пока такая http://screencast.com/t/KQvjn99m , вывожу в дерево и даю возможность перейти в необходимую процедуру при клике на строке дерева. В дальнейшем думаю необходимо будет добавить возможность сохранять стек и анализировать. Это пока сырой вариант, но на дерево вызовов в УТ11 иногда уже страшно становиться смотреть.
romansun; +1 Ответить
31. pumbaE 17.01.13 12:48 Сейчас в теме
(0) как идея - включаем тех журнал на CALL, парсим его и получаем фактические вызовы строк и примерно как я в снегопате при отладке делаю, определяю в какой процедуре находится строка и сверяю с предыдущей , получаем дерево вызовов даже без модификации исходных текстов.
32. romansun 194 17.01.13 18:51 Сейчас в теме
33. Paul_Nevada 04.09.13 11:37 Сейчас в теме
Привет!
Интересно и ДРУГОЕ - КАК сами разработчики типовых не запутываются в этих "деревьях"??? Наверняка же они пользуют какие-то вспомогательные инструменты... У кого из вас есть какие мысли (а, может, и информация) на эту тему?
34. romansun 194 04.09.13 13:04 Сейчас в теме
(33) СППР используют...

плюс, я думаю, у них есть неплохое тестовое покрытие
35. pumbaE 04.09.13 15:19 Сейчас в теме
(34) сомневаюсь. Вроде и есть тестирование http://v8.1c.ru/o7/201308do/index.htm , но вот почем-то ни разу не хвастаются автоматическим тестированием, покрытием тестами, как регрессионное тестирование позволяет на этапе помещения в хранилище сразу уведомлять разработчика, что есть проблемы с тестами, с производительностью и т.д... Ну а СППР используют, тут согласен :)
36. Paul_Nevada 04.09.13 17:33 Сейчас в теме
(34) поясни, пожалуйста, что есть "СППР" и "тестовое покрытие"???
37. romansun 194 05.09.13 15:13 Сейчас в теме
СППР
http://v8.1c.ru/model/

насчет тестирования - читайте про юнит-тестирование, TDD и т.п.

http://infostart.ru/video/w167567/
http://habrahabr.ru/post/82842/
http://forum.infostart.ru/forum26/topic58819/
38. Paul_Nevada 05.09.13 17:22 Сейчас в теме
39. ssa 16.10.13 22:38 Сейчас в теме
Может пригодиться. Спасибо!
Оставьте свое сообщение