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


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

   Анализируя какой нибудь сложный механизм, мы, следуя за курсором отладчика и проходя десятки программных модулей, устанавливаем точки останова во всех потенциально "нужных" местах. Далее, в очередной раз запуская отладку, программа останавливается в установленных нами точках и некоторые из них становятся не нужны — мы их убираем (выключаем) либо непосредственно в модуле, либо через список точек останова, оставляя только те точки, в которых происходит судьбоносное для решаемой задачи преобразование.
   Точки останова являются помимо своего основного предназначения — останавливать процесс, еще и закладками. Перемещаться между ними мы можем через список точек останова (на всякий случай: "Отладка" — "Список точек останова" — "Кнопка перейти к исходному коду"). А чтобы понимать, какая точка к какой задаче относится, я предлагаю использовать выявленную особенность точки останова с условием. А именно — возможность в условии писать комментарий, который не мешает работе точки останова (созданное таким образом условие всегда истинно). Далее, используя список точек останова, можно быстро искать нужную точку в списке точек, включать или выключать ее активность, одним нажатием кнопки "Перейти к исходному коду" быстро переходить к точке (отрывается нужный модуль и курсор позиционируется на точке). Надеюсь, данная особенность сделает вашу работу немного удобней. Если мы хотим использовать точку только как закладку, можно ее отключить — либо непосредственно в модуле, щелкнув правой кнопкой и выбрав "Отключить точку останова", либо в списке точек останова — сняв флажок. К сожалению, поиск по комментариям в списке точек останова отсутствует.  Смотрите рисунок ниже. Хорошего кода!

20.10.2024

С момента публикации в платформе произошли изменения — появилась возможность сохранения списка точек останова в файл:

 

36 Comments

  1. headMade

    «Всем известно, что для создания закладок в программном модуле есть специальный механизм.»

    Что это такой за «типовой механиз» подскажите?

    Reply
  2. Romkin25

    Гы.

    Оригинально.

    Правда моя рука хронически тянется к «Убрать все точки останова»

    Reply
  3. orefkov

    Люблю нестандартные подходы. Оригинально.

    А будет ли ругаться на условия вида

    Ложь // комментарий

    ну это если закладка нужна, но останавливаться не надо.

    Reply
  4. AnryMc

    (0) Нестандартно.

    Теперь прийдется «переучиваться» как и (2)

    Reply
  5. juntatalor

    (3) orefkov, если там будет только комментарий, то остановиться не должно

    Reply
  6. AnryMc

    А можно добавить, например, свою константу «ОстанавливатьсяНаМоихМетках»=Булево и сделать условие по ней…

    Reply
  7. TSSV

    (3) orefkov, Чтобы использовать точку только как закладку,оставив только комментарий, Вы можете отключить точку останова или в списке точек, убрав флажок, или в модуле щелкнув по точке правой кнопкой — Отключить точку останова. Точка в модуле будет серая, а в списке без флажка — очень удобно по моему. Комментарий тоже можно редактировать и в списке и в модуле — ну это я на всякий случай вдруг кто забыл ))

    Reply
  8. TSSV

    (5) juntatalor,

    если там будет только комментарий, то остановиться не должно

    остановится — смотрите рисунок — как раз этот случай.

    Reply
  9. pumbaE

    А разве список точек останова сохраняется после перезапуска конфигуратора?

    Reply
  10. Serj1C

    (9) pumbaE, Да, если он корректно закрыт

    Reply
  11. MarSeN

    (11) artbear

    На сколько я понял полностью типовой функционал с некоторыми хитростями )

    Reply
  12. KliMich

    Спасибо за оригинальный подход!

    Reply
  13. TSSV

    (13) KliMich, Спасибо за поддержку!

    Reply
  14. Rustig

    Поддержу автора!

    Когда только начинал программировать, постоянно старался оптимизировать процесс программирования. В этом ключе создал даже обработку для быстрого поиска шаблонов кода(есть у меня в статьях), до сих пор ее использую.

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

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

    Reply
  15. RG84

    спасибо, интересная идея. возьму себе на заметку)))

    Reply
  16. AlexO

    (15) Rustig,

    Перестал запускать отладку после каждого изменения кода

    …а потом днями искал, где же ошибка… 🙂

    (9) pumbaE,

    А разве список точек останова сохраняется после перезапуска конфигуратора?

    или после перезапуска, или еще как — но точки останова сбрасываются. И привет закладочкам, делаем все заново..

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

    Reply
  17. TSSV

    (17) AlexO, А вот и самый умный ) Уважаемый AlexO,

    И привет закладочкам, делаем все заново..

    вы не правы — ничего не слетает, это неправда. Кстати где хранятся данные закладок — можете на досуге изучить этот вопрос, и вам наконец то будет что сказать по делу (дарю идею).

    Reply
  18. AnryMc

    (17) AlexO,

    или после перезапуска, или еще как — но точки останова сбрасываются. И привет закладочкам, делаем все заново..

    А зайти в конфигуратор и попробовать — «слабо»?

    Лично у меня 8.2.14 — 8,2,17 не исчезают даже после презагрузки Виндовс

    Reply
  19. AlexO

    (15) Rustig,

    В этом ключе создал даже обработку для быстрого поиска шаблонов кода(есть у меня в статьях)

    Там используется механизм шаблонов .ST, как таковой обработки нет.

    Самый корректный вариант закладок — это ставить название и ключевое слово.

    Вести текстовый файл-содержание.

    Все. Все проблемы будут решены.

    Остальное все — это попытки использовать средства, не предназначенных для гуманоидов, руками человека 🙂

    Reply
  20. AlexO

    (18) Tsaregorodtsev,

    ничего не слетает, это неправда

    значит, у нас конфигураторы разные. С хранением.

    Reply
  21. AnryMc

    (21) AlexO,

    значит, у нас конфигураторы разные. С хранением.

    Давайте уточним. Я пробовал на файловых базах, версии 8.2.14 — 8,2,17 при выключении Виндовс «кеш» не чиститься. 😉

    Всё сохраняется

    Reply
  22. AlexO

    (20) AnryMc,

    все, все, сейчас набегут..

    знаю-знаю, что у тру-1сников 1с работает настолько чОтко, что они в конфигоуратор заглядывают только по большим праздникам и то выгрузить архив :))

    Reply
  23. pumbaE

    Справедливости ради — у меня тоже не запоминает точки останова, я грешил на снегопат. Вечером проверю.

    Reply
  24. mec

    Довольно интересный и оригинальный способ. Проверил, у меня тоже все работает и сохраняет настройки на 8.2.16.

    Автору спасибо за совет 🙂

    Reply
  25. VasMart

    Кнопка убрать «все точки останова», для меня ценнее. Но метод интересный.

    Reply
  26. bulpi

    А что, у кого-то не сохраняются точки останова при перезапуске конфигуратора? У нас точно одна и та же 1с стоит ? Всегда сохранялись, на любых релизах, файловая и sql.

    Reply
  27. alexsey777

    Не знал. Автору спасибо

    Reply
  28. Юрий ЛЛ

    хорошая статья.

    жаль окошко со списком точек останова надо закрывать и открывать постоянно.

    а не встречал кто, такое же решение, но чтобы окошко было самостоятельным?

    Reply
  29. Artemuch2

    Да прикольно так! попробую при отладке

    Reply
  30. echo77

    Надо бы взять на заметку, попробовать

    Reply
  31. servs

    Настройки конфигуратора слетают чаще, чем не слетают.

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

    А так, для общего развития, новичкам пригодится.

    Reply
  32. sbv2005

    От безысходности идея с точками останова. Нужны просто закладки-метки. Типа «Куплет», «Припев» и т.д. )) Но сие зависит целиком от 1С. Вот управляемыми формы сделали, а редактор кода управляемым — забыли ))

    Reply
  33. JohnyDeath

    (3), (11) а я как раз хочу написать скрипт для снегопата со схожим функционалом. Для этого, собственно, и спрашивал всех о способе отладке скриптов. Помимо «внешних» комментариев к участкам кода (а не к одной строке) хочу прикрутить эдакий ToDo-list и сделать выделение таких блоков цветом или метками в левой панели средствами SciColorer-а, если это вообще возможно.

    В общем такие вот идеи. Но как всегда 24 часа в сутках катастрофически не хватает.

    Reply
  34. randa

    Однозначно плюс!

    Очень пригодиться когда приходиться часто отлаживать один и тот же механизм.

    Например обмен с сайтом в УТ11. Куча процедур вложенных и каждый раз ищешь нужный кусок кода. Отличное решение!

    Reply
  35. ger_kar

    Наткнулся на статью случайно, решил опробовать способ…

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

    Reply
  36. AlexO

    (35) randa,

    Очень пригодиться когда приходиться часто отлаживать один и тот же механизм.

    Документацию на свои механизмы не пробовали писать?

    (36) ger_kar,

    Удобства работы прибавилось

    до первого раза потери ТО.

    А потом — такие удобства наступят…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *