bdd2

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

Опубликовал 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
36
.cf 1.0.0 20,11Kb 36 Скачать

См. также

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

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


Прикрепленные файлы:
11. Denis Shvydenko (denmax) 33 22.12.16 22:33 Сейчас в теме
(10) Обработка не применима для старых конфигураций на основных формах (УПП, КА 1, БП 2, УТ 10 и т.п.). Наличие в УПП зачатков управляемого интерфейса ничего не меняет. Работает во всех новых конфигурациях - УНФ, УТ 11, БП 3, КА 2, ERP и т.п.)