Тема отладки дополнительных отчетов и обработок поднимается среди 1С программистов регулярно. Проблема состоит в том, что если обработка/отчет добавлены в справочник дополнительных (внешних) отчетов и обработок, то их отладка сопровождается определенными неудобствами:
- т.к. обработка хранится в конфигурации внутри элемента справочника, то ее невозможно открыть в конфигураторе, без выгрузки на диск
- но открытый в конфигураторе выгруженный файл будет лишь копией обработки, сохраненной в справочнике, и установленные в ней точки останова не сработают
- до недавнего времени, конфигурации 1С при запуске доп. обработок предварительно сохраняли их во временный файл. Таким образом была возможность перейти к отладке обработки, принудительно вызвав в ней исключение. Но в последних версиях конфигураций обработки запускаются непосредственно, минуя временный файл (за исключением случая толстого клиента), что не позволяет использовать этот метод
- в принципе, можно запустить конфигурацию в толстом клиенте и попытаться выполнить отладку во временно файле, но часто работа в толстом клиенте конфигураций на УФ сопровождается глюками или различием в поведении с тонким клиентом
- также можно добавить в обработку специальную. отладочную форму, и выполнять отладку, запустив обработку из меню файл -> открыть. Но такой способ неудобен для отладки печатных форм и обработок заполнения/создания связанных объектов, т.к. невозможно контролировать передачу параметров
Данный механизм позволяет обойти указанные проблемы — для каждой обработки, которая будет отлаживаться в спец. регистре указывается файл с этой обработкой на диске. При включении режима отладки, можно спокойно открывать этот файл в конфигураторе и расставлять точки останова, которые сработают, независимо от способа запуска обработки.
Также имеется дополнительный плюс — не требуется после каждого изменения отлаживаемой обработки заново загружать ее в справочник доп. обработок. Меняем обработку, и сразу запускаем ее в базе. После отключения отладки следует загрузить в справочник финальную версию.
Из минусов данного механизма — естественно необходимость менять конфигурацию. Но эти изменения сводятся только к добавлению нескольких объектов в конфигурацию (подсистема, общий модуль, регистр сведений и две команды), и эти добавления не ломают процесс обновления.
1. Подключение
- Сделайте резервную копию
- Включите возможность изменения конфигурации. (Если ранее этого не сделали).
- Включите возможность изменения с сохранением поддержки самой конфигурации (Опять же, если ранее не делали)
- Запустите объединение со скаченным .cf файлом и подтвердите постановку на поддержку
- В окне объединения снимите общую галочку конфигурации
- Выберите "Действия" -> "Отметить по подсистемам файла"
- Выберите только подсистему "LSOFT_ОтладкаВнешнихОбработок" и нажмите "Установить"
- Выполните объединение и обновите ИБ
- База готова к использованию
2. Использование
В меню разделов появляется новая подсистема (LSOFT) . В ней доступны команды включения/отключения отладки и список обработок для отладки.
В списке обработок для каждой дополнительной обработки, которую вы собираетесь отлаживать необходимо:
- выбрать саму обработку из справочника дополнительных обработок/отчетов. Именно эта обработка будет отлаживаться
- поставить галочку активности отладки. Если галочку снять — отладка для данной конкретной обработки будет недоступна.
- указать пользователя, который будет выполнять отладку. Если пользователь указан — то отладка выполняется только под выбранным пользователем, остальные пользователи ничего не замечают. если пользователь не выбран — отладка выполняется под любым пользователем.
- указать путь к файлу обработки на диске. При активности отладки, обработка будет загружена именно из этого файла. Сохраненый вариант обработки из справочника дополнительных отчетов и обработок игнорируется.
Сам процесс отладки:
- добавляем обработку/отчет в дополнительные отчеты и обработки. Это может быть обработка абсолютно любого вида, включая обработки заполнения, связанных объектов или внешние печатные формы
- заполняем настройки отладки в списке обработок для отладки
- включаем возможность отладки
- открываем в конфигураторе файл, указанный в настройке отладки для данной обработки
- устанавливаем произвольные точки останова в конфигураторе
- в ИБ запускаем нужный нам отчет/обработку подходящим для его/ее типа образом
Внимание, на сегодняшний день данная публикация является устаревшей, т.к. не работает с БСП версии 2.4 и старше. Новый вариант этого же механизма, но в форме расширения доступен в публикации Отладка дополнительных отчетов и обработок (расширение)
как быть, если стоит базовая версия?
(1) TrinitronOTV, увы, для базовой не применимо
Спасибо за идею. Добавил аналогичный инструмент «Отладка внешних обработок БСП» в подсистему «Инструменты разработчика».
1С такие 1С, что прям слов нет культурных в их адрес…
Нагородили огород, так хоть бы предоставили инструментарий отладки…
Как-то жалко снимать с поддержки базу, а на тестовых базах не всегда отлаживаться приходится.
(4) Строго говоря с поддержки ее снимать не нужно, но нужно включить возможность изменения корня. Это практически не затрудняет дальнейшний процесс обновления конфигурации поставщика.
(5) tormozit, это я знаю, еще у нас в базе появится еще один экземпляр конфигурации, из-за чего по времени обновление будет идти дольше, так как обновляться будут уже две конфигурации, конфа поставщика и основная.
(6) Что за «второй» экземпляр?
Почему текст исходного модуля отсутствует???
(8) Потому что нам так захотелось
Добрый день!
Купила «Отладка дополнительных отчетов и обработок», но она к сожалению не работает на 1С:УПП и код закрыт для редактирования. Появляется Сообщение: Недопустимое значение параметра №1 (СправочникСсылка.ДополнительныеОтчетыИОбработки). Пожалуйста исправьте ошибку.
Спасибо!
(10) Обработка не применима для старых конфигураций на основных формах (УПП, КА 1, БП 2, УТ 10 и т.п.). Наличие в УПП зачатков управляемого интерфейса ничего не меняет. Работает во всех новых конфигурациях — УНФ, УТ 11, БП 3, КА 2, ERP и т.п.)
Хорошая доработка! Спасибо!! Работает! Плохо что разработчики БСП не предусмотрели отладку….
Добрый день!
При попытке включить отладку, сообщение об ошибке:
«{(1)}: Поле объекта не обнаружено (ПараметрыСлужебныхСобытий)
Константы.ПараметрыСлужебныхСобытий»
Конфигурация УТ 11.0.6.9 — нужно тестить обработку именно в этой версии
UPD. Добавил константу (копипаст из УТ 11.2.2.100), получаю следующую ошибку:
«{ОбщийМодуль.LSOFT_ОтладкаВнешнихОбработок.Модуль(68)}: Значение не является значением объектного типа (ОбработчикиСобытий)»
(13) хорошо, проверим
но не работает в новой ЗУП 3.1
Обработку/отчет можно поместить в расширение конфигурации и в ней отлаживать
НЕ работает на ЗУП 3.1
Не работает в ЗКГУ 3.1.3.158.
Не работает в БП 3.0.53.39.
Так можно точно указать работающие конфигурации, прежде чем человеку платить 2 SM за скачивание?
Конечно, можно самому доработать, вскрыв общий модуль, но за что тогда платить?
Еле удержался от минуса.
В ЗУП 3.1 не работает отладка внешних обработок, т.к. не может выполниться следующий код:
КонстантаПараметрыСлужебныхСобытий = Вычислить(«Константы.ПараметрыСлужебныхСобытий»);
Не может вычислить:
{(1)}: Поле объекта не обнаружено (ПараметрыСлужебныхСобытий)
Не работает, верните 2 стартмани!!!
Да. Начиная с БСП 2.4 этот способ отладки больше не работает. Я не смог найти путь как заставить его работать. Скорее всего это конец счастья.
Да, в БСП 2.4 ничего не работает.
Опубликован новый вариант, работающий с ЗУП и БСП 2.4 —https://infostart.ru/public/916110