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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

23 Comments

  1. TrinitronOTV

    как быть, если стоит базовая версия?

    Reply
  2. denmax

    (1) TrinitronOTV, увы, для базовой не применимо

    Reply
  3. tormozit

    Спасибо за идею. Добавил аналогичный инструмент «Отладка внешних обработок БСП» в подсистему «Инструменты разработчика».

    Reply
  4. Brawler

    1С такие 1С, что прям слов нет культурных в их адрес…

    Нагородили огород, так хоть бы предоставили инструментарий отладки…

    Как-то жалко снимать с поддержки базу, а на тестовых базах не всегда отлаживаться приходится.

    Reply
  5. tormozit

    (4) Строго говоря с поддержки ее снимать не нужно, но нужно включить возможность изменения корня. Это практически не затрудняет дальнейшний процесс обновления конфигурации поставщика.

    Reply
  6. Brawler

    (5) tormozit, это я знаю, еще у нас в базе появится еще один экземпляр конфигурации, из-за чего по времени обновление будет идти дольше, так как обновляться будут уже две конфигурации, конфа поставщика и основная.

    Reply
  7. denmax

    (6) Что за «второй» экземпляр?

    Reply
  8. lopatin

    Почему текст исходного модуля отсутствует???

    Reply
  9. denmax

    (8) Потому что нам так захотелось

    Reply
  10. ktion

    Добрый день!

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

    Спасибо!

    Reply
  11. denmax

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

    Reply
  12. HitGroove

    Хорошая доработка! Спасибо!! Работает! Плохо что разработчики БСП не предусмотрели отладку….

    Reply
  13. user721357

    Добрый день!

    При попытке включить отладку, сообщение об ошибке:

    «{(1)}: Поле объекта не обнаружено (ПараметрыСлужебныхСобытий)

    Константы.ПараметрыСлужебныхСобытий»

    Конфигурация УТ 11.0.6.9 — нужно тестить обработку именно в этой версии

    UPD. Добавил константу (копипаст из УТ 11.2.2.100), получаю следующую ошибку:

    «{ОбщийМодуль.LSOFT_ОтладкаВнешнихОбработок.Модуль(68)}: Значение не является значением объектного типа (ОбработчикиСобытий)»

    Reply
  14. denmax

    (13) хорошо, проверим

    Reply
  15. FireAlex
    Работает во всех новых конфигурациях — УНФ, УТ 11, БП 3, КА 2, ERP и т.п.)

    но не работает в новой ЗУП 3.1

    Reply
  16. ВикторП

    Обработку/отчет можно поместить в расширение конфигурации и в ней отлаживать

    Reply
  17. GeterX

    НЕ работает на ЗУП 3.1

    Reply
  18. newold2

    Не работает в ЗКГУ 3.1.3.158.

    Не работает в БП 3.0.53.39.

    Так можно точно указать работающие конфигурации, прежде чем человеку платить 2 SM за скачивание?

    Конечно, можно самому доработать, вскрыв общий модуль, но за что тогда платить?

    Еле удержался от минуса.

    Reply
  19. Rus_Tiger

    В ЗУП 3.1 не работает отладка внешних обработок, т.к. не может выполниться следующий код:

    КонстантаПараметрыСлужебныхСобытий = Вычислить(«Константы.ПараметрыСлужебныхСобытий»);

    Не может вычислить:

    {(1)}: Поле объекта не обнаружено (ПараметрыСлужебныхСобытий)

    Reply
  20. gigabyte-leha

    Не работает, верните 2 стартмани!!!

    Reply
  21. tormozit

    Да. Начиная с БСП 2.4 этот способ отладки больше не работает. Я не смог найти путь как заставить его работать. Скорее всего это конец счастья.

    Reply
  22. charivnick

    Да, в БСП 2.4 ничего не работает.

    Reply
  23. denmax

    Опубликован новый вариант, работающий с ЗУП и БСП 2.4 — https://infostart.ru/public/916110

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *