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


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

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

20.10.2026

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

 

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 не будет опубликован. Обязательные поля помечены *