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

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

Тема отладки дополнительных отчетов и обработок поднимается среди 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 не будет опубликован. Обязательные поля помечены *