Отладка внешних печатных форм в управляумых приложениях у многих вызывает затруднение. Причина — нельзя установить точку остановки в конфигураторе, т.к. выполняется временный файл. Поэтому множатся разработки типа «Отладчик внешних печатных форм». Не буду спорить, в некоторых случаях оказывают неоценимую помощь, но… не во всех. К примеру, если вы используете форму во ВПФ и запускаете печть оттуда. Между тем решение очень простое: вставьте в том месте обработки, в котором вы хотите установить точку останова конструкцию типа:
Попытка
а = «у»;
в = число(а);
Исключение КонецПопытки;
Ну и включите в конфигураторе «Останавливаться по ошибке».
Тогда, когда компилятор дойдет до данного места, он откроет вам временный файл и вы сможете посмотреть как работает ваша ВПФ.
Преимущества:
— не зависит от того есть ли у вас БСП и используете ли вы ее в обработке;
— не зависит от того используете ли вы форму во ВПФ.
Недостатки:
— приходится постоянно удалять/вставлять обработку при отладке;
— Невнимательные программисты по привычке правят обработку в открывшемся временном файле, а не в самой обработке.
А ларчик так просто открывался… Работает не только на управляемых формах, но и на обычных.
Спасибо за подсказку!!!
В случае если временный файл удаляется сразу после создания обработки (а именно так, насколько я знаю, реализовано в типовых конфигурациях) этот способ не подходит… то есть просто нет файла (временного), который можно было бы открыть в Конфигураторе.
Нужно закомментировать те строки, которые удаляют временный файл. Тогда сработает.
Да и сложностей в Попытке можно поменьше.
аааа=1/0;
и хватит.
баян… автор, исправь уж название — не только впф, но и обработки; не только управляемые, а вообще весь внешний кусок кода…
подозреваю что прокатит не везде
при попытке отладить Команду заполнения объекта остановка происходит в общем модуле и внутрь не идёт.
конфигурация Розница 8. Аптека, ред 2.0 возможно это связано с (2)
(2) Alias, Да, есть такая проблемка, СПАСИБО!
(5) Yury1001, (6) а в Отладка — Остановка по ошибке… — Останавливаться на ошибке не решит проблему?
(7) cratos2, так собственно это и обсуждаем
(5), (8) Yury1001, да, если в коде много попыток, нацеленных на исключения. Тогда надо лавировать, либо пару раз нажать на F5, либо кусок кода вставлять, который ещё нужно не забыть удалить после всего. Либо, если вы забывчивы, делаем проверку на сегодняшнюю дату, и если она больше
, то
Крайне вредная и ерундовая статья.
Есть прекрасный обработчик от poppy для ВПФ 8.1, есть подобное и для УФ.
А лазить во временный файл — не должно быть и намеков даже никаких!
Статья однозначно должна превратится в маленькое сообщение в виде совета в теме с заголовком «Как править ВО на скорую руку»
Спасибо за один из вариантов отладки. Согласен, что не самый лучший. но иногда очень нужная фишка.
AlexO— Спасибо за » прекрасный обработчик от poppy для ВПФ 8.1″, не знал про такой. Второй способ тоже иногда пригождается.
А не проще сохранить ВПФ на диск и отладить в обычном режиме?
(14) premier,
видимо, студенты не ищут легких путей, преодолевая сами себе сооруженные препяствия.
мало с 1с возились, видимо, если не хватает адреналина.
Что-то автора совсем куда-то повело не в ту степь. Зачем такие сложности? К чему?
Минусы ставить ПОКА не могу. Думаю, это временно 😉
Дайте, пожалуйста ссылку на нормальный вариант. Поиск инфостарта показывает только эту обработку для управляемых форм. ((
http://infostart.ru/public/73691/
Нашел:
Еще есть поиск на сайте инфостарта через google
Комплексная Автоматизация Толстый клиент 8.2. Файловая база. Всё на обычных формах, только для формы списка реализаций поставил управляемую форму списка. Добавил туда кнопку проводок (чтобы было как в обычной форме списка), хотел её отладить — но отладка почему-то не запустилась, поставленная точка останова была проигнорирована программой.
Никакие внешние формы при этом вообще не используются. База не серверная, а файловая. Но отладка всё равно почему-то не идёт.
Только эта публикация меня и выручила. Ставлю плюс.
ИМХО. как то отладка внешних обработок через ловлю ошибки во временном файле)))) как диагностирование головной боли с помощью удара сковородой по пальцам)))
получается что отладить внешнюю печатную форму в управляемом приложении невозможно?
Phoenix4565 Ну зачем так пессимистично — есть множество специальных обработок для этой цели, но если хотите побыструхе, то можно и так 🙂
Я, обычно, отлаживаю его как объект конфигурации и когда отлажен — выгружаю в файл…
ЗЫ. Но как метод — этот тоже имеет право на жизнь… Менее трудоёмким будет вызов ошибки не как в публикации, а например делением на ноль…
Попробовал на БП 3.0, платформа 8.3.5.1570 — не получается. Останов по ошибке происходит не где ошибочная команда, а в общем модуле «ДополнительныеОтчетыИОбработки» в процедуре «ПечатьПоВнешнемуИсточнику» при выполнении команды «ВнешняяОбработкаОбъектПечать(….»
Пробовал в файлой и серверной (с ключом debug) версиях.
Ставил точку останова на команду «ВнешняяОбработкаОбъектПечать(….» Останов происходит, но на следующем шаге в модуль печати не попадаю.
Странно все это…
Люди, делайте проще:
Поставить во внешней печатной форме в конце вызова любой функции/процедуры любого Общего модуля Точку остановки, нажать F11 после остановки на ней.
Так платформа сама откроет отладку внешки. И это без необходимости писать «ВызватьИсключение», ставить остановки по ошибке и т. д…
Ну вот, дискуссия выявила оптимальное решение. Можно только добавить что я ставлю
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(«Отладка»); но на вкус и цвет…
(22) «есть множество специальных обработок для этой цели»
Для УФ нет никаких «специальных обработок» по многим причинам:
— в типовых используется БСП, которая постоянно меняется и переписывается от релиза к релизу
— в разных конфах — разные версии БСП
— весь код (для ВПФ, открытия обработок) вынесен в общие модули
— переход 1С от хранения временного образа при открытии обработки на диске к хранению в хранилище базы.
(21)»получается что отладить внешнюю печатную форму в управляемом приложении невозможно?»
Можно, только нужно в каждой своей ВПФ создавать сразу сервисную форму для привязки ВПФ к объекту-источнику данных и «вручную» открывать ВПФ для отладки.
(25)
На платформе 8.3 в управляемых формах перестало работать. по крайней мере в БП 3.0.52.39
курсор отладки просто исчезает, как будто проваливается в невидимый модуль. и молчок
нет никакого решения нового ? на 8.3.11 не работает
в соседней теме нашел ссылку , работает
http://www.obrabotki.com/otladka-bsp-1s/
Рабочий вариант для современных конфигураций:https://infostart.ru/public/916110/