Отладка дополнительных отчетов и обработок

Опубликовал Denis Shvydenko (denmax) в раздел Программирование - Инструментарий

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

Тема отладки дополнительных отчетов и обработок поднимается среди 1С программистов регулярно. Проблема состоит в том, что если обработка/отчет добавлены в справочник дополнительных (внешних) отчетов и обработок, то их отладка сопровождается определенными неудобствами:

  • т.к. обработка хранится в конфигурации внутри элемента справочника, то ее невозможно открыть в конфигураторе, без выгрузки на диск
  • но открытый в конфигураторе выгруженный файл будет лишь копией обработки, сохраненной в справочнике, и установленные в ней точки останова не сработают
  • до недавнего времени, конфигурации 1С при запуске доп. обработок предварительно сохраняли их во временный файл. Таким образом была возможность перейти к отладке обработки, принудительно вызвав в ней исключение. Но в последних версиях конфигураций обработки запускаются непосредственно, минуя временный файл (за исключением случая толстого клиента), что не позволяет использовать этот метод
  • в принципе, можно запустить конфигурацию в толстом клиенте и попытаться выполнить отладку во временно файле, но часто работа в толстом клиенте конфигураций на УФ сопровождается глюками или различием в поведении с тонким клиентом
  • также можно добавить в обработку специальную. отладочную форму, и выполнять отладку, запустив обработку из меню файл -> открыть. Но такой способ неудобен для отладки печатных форм и обработок заполнения/создания связанных объектов, т.к. невозможно контролировать передачу параметров

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

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

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

1. Подключение

  1. Сделайте резервную копию
  2. Включите возможность изменения конфигурации. (Если ранее этого не сделали).
  3. Включите возможность изменения с сохранением поддержки самой конфигурации (Опять же, если ранее не делали)
  4. Запустите объединение со скаченным .cf файлом и подтвердите постановку на поддержку
  5. В окне объединения снимите общую галочку конфигурации
  6. Выберите "Действия" -> "Отметить по подсистемам файла"
  7. Выберите только подсистему "LSOFT_ОтладкаВнешнихОбработок" и нажмите "Установить"
  8. Выполните объединение и обновите ИБ
  9. База готова к использованию

2. Использование

В меню разделов появляется новая подсистема (LSOFT) . В ней доступны команды включения/отключения отладки и список обработок для отладки.

В списке обработок для каждой дополнительной обработки, которую вы собираетесь отлаживать необходимо:

  • выбрать саму обработку из справочника дополнительных обработок/отчетов. Именно эта обработка будет отлаживаться
  • поставить галочку активности отладки. Если галочку снять - отладка для данной конкретной обработки будет недоступна.
  • указать пользователя, который будет выполнять отладку. Если пользователь указан - то отладка выполняется только под выбранным пользователем, остальные пользователи ничего не замечают. если пользователь не выбран - отладка выполняется под любым пользователем.
  • указать путь к файлу обработки на диске. При активности отладки, обработка будет загружена именно из этого файла. Сохраненый вариант обработки из справочника дополнительных отчетов и обработко игнорируется.

Сам процесс отладки:

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

Скачать файлы

Наименование Файл Версия Размер
Отладка доп. обработок
.cf 20,11Kb
25.03.16
43
.cf 1.0.0 20,11Kb 43 Скачать

См. также

Комментарии
1. Александр Лыткин (TrinitronOTV) 26.03.16 05:19 Сейчас в теме
как быть, если стоит базовая версия?
2. Denis Shvydenko (denmax) 38 26.03.16 11:23 Сейчас в теме
(1) TrinitronOTV, увы, для базовой не применимо
3. Сергей Старых (tormozit) 4198 27.03.16 19:28 Сейчас в теме
Спасибо за идею. Добавил аналогичный инструмент "Отладка внешних обработок БСП" в подсистему "Инструменты разработчика".
4. Игорь Фелькер (Brawler) 293 18.05.16 08:55 Сейчас в теме
1С такие 1С, что прям слов нет культурных в их адрес...
Нагородили огород, так хоть бы предоставили инструментарий отладки...
Как-то жалко снимать с поддержки базу, а на тестовых базах не всегда отлаживаться приходится.
5. Сергей Старых (tormozit) 4198 18.05.16 09:21 Сейчас в теме
(4) Строго говоря с поддержки ее снимать не нужно, но нужно включить возможность изменения корня. Это практически не затрудняет дальнейшний процесс обновления конфигурации поставщика.
6. Игорь Фелькер (Brawler) 293 18.05.16 11:30 Сейчас в теме
(5) tormozit, это я знаю, еще у нас в базе появится еще один экземпляр конфигурации, из-за чего по времени обновление будет идти дольше, так как обновляться будут уже две конфигурации, конфа поставщика и основная.
7. Denis Shvydenko (denmax) 38 18.05.16 12:00 Сейчас в теме
(6) Что за "второй" экземпляр?
8. Александр Лопатин (lopatin) 229 19.05.16 11:37 Сейчас в теме
Почему текст исходного модуля отсутствует???
9. Denis Shvydenko (denmax) 38 19.05.16 14:26 Сейчас в теме
(8) Потому что нам так захотелось
10. Анна Новикова (ktion) 16.08.16 15:56 Сейчас в теме
Добрый день!

Купила "Отладка дополнительных отчетов и обработок", но она к сожалению не работает на 1С:УПП и код закрыт для редактирования. Появляется Сообщение: Недопустимое значение параметра №1 (СправочникСсылка.ДополнительныеОтчетыИОбработки). Пожалуйста исправьте ошибку.
Спасибо!


Прикрепленные файлы:
11. Denis Shvydenko (denmax) 38 22.12.16 22:33 Сейчас в теме
(10) Обработка не применима для старых конфигураций на основных формах (УПП, КА 1, БП 2, УТ 10 и т.п.). Наличие в УПП зачатков управляемого интерфейса ничего не меняет. Работает во всех новых конфигурациях - УНФ, УТ 11, БП 3, КА 2, ERP и т.п.)
12. Aleksey (HitGroove) 43 08.02.17 10:31 Сейчас в теме
Хорошая доработка! Спасибо!! Работает! Плохо что разработчики БСП не предусмотрели отладку....
13. Andrey Bykoffsky (user721357) 29.03.17 12:59 Сейчас в теме
Добрый день!
При попытке включить отладку, сообщение об ошибке:
"{(1)}: Поле объекта не обнаружено (ПараметрыСлужебныхСобытий)
Константы.ПараметрыСлужебныхСобытий"
Конфигурация УТ 11.0.6.9 - нужно тестить обработку именно в этой версии

UPD. Добавил константу (копипаст из УТ 11.2.2.100), получаю следующую ошибку:
"{ОбщийМодуль.LSOFT_ОтладкаВнешнихОбработок.Модуль(68)}: Значение не является значением объектного типа (ОбработчикиСобытий)"
14. Denis Shvydenko (denmax) 38 30.03.17 10:37 Сейчас в теме
Оставьте свое сообщение