gifts2017

Отладка внешних печатных форм в управляемых формах

Опубликовал Vlad (kitminsk) в раздел Программирование - Практика программирования

Отладка внешних печатных форм в управляемых формах

Отладка внешних печатных форм в управляумых приложениях у многих вызывает затруднение. Причина - нельзя установить точку остановки в конфигураторе, т.к. выполняется временный файл. Поэтому множатся разработки типа "Отладчик внешних печатных форм". Не буду спорить, в некоторых случаях оказывают неоценимую помощь, но... не во всех. К примеру, если вы используете форму во ВПФ и запускаете печть оттуда. Между тем решение очень простое: вставьте в том месте обработки, в котором вы хотите установить точку останова конструкцию типа:

Попытка
а = "у";
в = число(а);
Исключение КонецПопытки;

Ну и включите в конфигураторе "Останавливаться по ошибке".

Тогда, когда компилятор дойдет до данного места, он откроет вам временный файл и вы сможете посмотреть как работает ваша ВПФ.

Преимущества:

- не зависит от того есть ли у вас БСП и используете ли вы ее в обработке;

- не зависит от того используете ли вы форму во ВПФ.

Недостатки:

- приходится постоянно удалять/вставлять обработку при отладке;

- Невнимательные программисты по привычке правят обработку в открывшемся временном файле, а не в самой обработке.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Fomix (fomix) 31.10.12 09:53
А ларчик так просто открывался... Работает не только на управляемых формах, но и на обычных.
Спасибо за подсказку!!!
2. Александр Полетаев (Alias) 31.10.12 10:10
В случае если временный файл удаляется сразу после создания обработки (а именно так, насколько я знаю, реализовано в типовых конфигурациях) этот способ не подходит... то есть просто нет файла (временного), который можно было бы открыть в Конфигураторе.
Нужно закомментировать те строки, которые удаляют временный файл. Тогда сработает.
Ulfhedhinn; +1 Ответить 1
3. Александр Полетаев (Alias) 31.10.12 10:12
Да и сложностей в Попытке можно поменьше.
аааа=1/0;
и хватит.
4. cratos2 (CratosX) 31.10.12 10:19
баян... автор, исправь уж название - не только впф, но и обработки; не только управляемые, а вообще весь внешний кусок кода...
5. Юрий Зайцев (Yury1001) 31.10.12 10:43
подозреваю что прокатит не везде


при попытке отладить Команду заполнения объекта остановка происходит в общем модуле и внутрь не идёт.

конфигурация Розница 8. Аптека, ред 2.0 возможно это связано с (2)
6. Vlad (kitminsk) 31.10.12 10:43
(2) Alias, Да, есть такая проблемка, СПАСИБО!
7. cratos2 (CratosX) 31.10.12 11:34
(5) Yury1001, (6) kitminsk, а в Отладка -- Остановка по ошибке... -- Останавливаться на ошибке не решит проблему?
8. Юрий Зайцев (Yury1001) 31.10.12 11:37
(7) cratos2, так собственно это и обсуждаем
9. cratos2 (CratosX) 31.10.12 11:48
(5), (8) Yury1001, да, если в коде много попыток, нацеленных на исключения. Тогда надо лавировать, либо пару раз нажать на F5, либо кусок кода вставлять, который ещё нужно не забыть удалить после всего. Либо, если вы забывчивы, делаем проверку на сегодняшнюю дату, и если она больше
"20121030"
, то
НЕ ВызватьИсключение() 
10. Алекс Ю (AlexO) 31.10.12 12:00
Крайне вредная и ерундовая статья.
Есть прекрасный обработчик от poppy для ВПФ 8.1, есть подобное и для УФ.
А лазить во временный файл - не должно быть и намеков даже никаких!
Статья однозначно должна превратится в маленькое сообщение в виде совета в теме с заголовком "Как править ВО на скорую руку"
smielka; Новенький_2209; artbear; +3 2 Ответить 1
11. Модератор раздела Артур Аюханов (artbear) 31.10.12 16:46
Согласен с (10)
Временный файл это неверно.
12. Николай (knigula) 31.10.12 17:52
Спасибо за один из вариантов отладки. Согласен, что не самый лучший. но иногда очень нужная фишка.
13. Alex Steiner (OrsoBear) 01.11.12 09:20
AlexO- Спасибо за " прекрасный обработчик от poppy для ВПФ 8.1", не знал про такой. Второй способ тоже иногда пригождается.
14. Максим *** (premier) 01.11.12 09:28
А не проще сохранить ВПФ на диск и отладить в обычном режиме?
15. Алекс Ю (AlexO) 01.11.12 13:52
(14) premier,
видимо, студенты не ищут легких путей, преодолевая сами себе сооруженные препяствия.
мало с 1с возились, видимо, если не хватает адреналина.
16. Игорь Хитров (Новенький_2209) 04.11.12 00:18
Что-то автора совсем куда-то повело не в ту степь. Зачем такие сложности? К чему?

Минусы ставить ПОКА не могу. Думаю, это временно ;)
17. Максим Сухов (MaxS) 28.03.13 20:41
Дайте, пожалуйста ссылку на нормальный вариант. Поиск инфостарта показывает только эту обработку для управляемых форм. ((
Нашел: http://infostart.ru/public/73691/
18. Vlad (kitminsk) 28.03.13 20:47
Еще есть поиск на сайте инфостарта через google
19. program program (prodines) 26.04.13 12:00
Комплексная Автоматизация Толстый клиент 8.2. Файловая база. Всё на обычных формах, только для формы списка реализаций поставил управляемую форму списка. Добавил туда кнопку проводок (чтобы было как в обычной форме списка), хотел её отладить - но отладка почему-то не запустилась, поставленная точка останова была проигнорирована программой.

Никакие внешние формы при этом вообще не используются. База не серверная, а файловая. Но отладка всё равно почему-то не идёт.

Только эта публикация меня и выручила. Ставлю плюс.
20. Tindir Mindir (tindir) 05.11.14 05:31
ИМХО. как то отладка внешних обработок через ловлю ошибки во временном файле)))) как диагностирование головной боли с помощью удара сковородой по пальцам)))
allgorhythm; +1 Ответить
21. Иван Phoenix (Phoenix4565) 14.12.14 22:53
получается что отладить внешнюю печатную форму в управляемом приложении невозможно?
22. Vlad (kitminsk) 15.12.14 12:19
Phoenix4565 Ну зачем так пессимистично - есть множество специальных обработок для этой цели, но если хотите побыструхе, то можно и так :)
23. anry mc (AnryMc) 18.12.14 11:05
Я, обычно, отлаживаю его как объект конфигурации и когда отлажен - выгружаю в файл...

ЗЫ. Но как метод - этот тоже имеет право на жизнь... Менее трудоёмким будет вызов ошибки не как в публикации, а например делением на ноль...
24. Сергей Зеленовский (zels) 14.06.15 16:32
Попробовал на БП 3.0, платформа 8.3.5.1570 - не получается. Останов по ошибке происходит не где ошибочная команда, а в общем модуле "ДополнительныеОтчетыИОбработки" в процедуре "ПечатьПоВнешнемуИсточнику" при выполнении команды "ВнешняяОбработкаОбъектПечать(...."

Пробовал в файлой и серверной (с ключом debug) версиях.

Ставил точку останова на команду "ВнешняяОбработкаОбъектПечать(...." Останов происходит, но на следующем шаге в модуль печати не попадаю.
Странно все это...
25. Владимир Рютин (VovkaPutin) 21.07.15 11:46
Люди, делайте проще:

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

Так платформа сама откроет отладку внешки. И это без необходимости писать "ВызватьИсключение", ставить остановки по ошибке и т. д...
26. Vlad (kitminsk) 07.08.15 13:41
Ну вот, дискуссия выявила оптимальное решение. Можно только добавить что я ставлю
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Отладка"); но на вкус и цвет...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа