На Инфостарте уже есть подобные публикации. Данное решение сделано с минимумом изменений типовых конфигураций. Все изменения приведены для ERP 2.5.17.155 и УТ 11.5.17.155. Для использования отладки в дополнительных отчетах и обработках нужно подменить файл, хранящийся в справочнике, на указанный нами файл. Попробуем сделать это максимально просто.
1. Изменяем ОбщийМодуль.ДополнительныеОтчетыИОбработки
&ИзменениеИКонтроль("ПодключитьВнешнююОбработку")
Функция _ПодключитьВнешнююОбработку(Ссылка)
//...
ПараметрыЗапуска = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "БезопасныйРежим, ХранилищеОбработки");
#Вставка //++
_РежимОтладки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Публикация") =
Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.РежимОтладки;
_ПутьКФайлу = "";
Если _РежимОтладки Тогда
ЗначенияСвойств = УправлениеСвойствами.ЗначенияСвойств(Ссылка, Истина,,
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "_ПутьКФайлуВнешнейОбработки")));
Если ЗначениеЗаполнено(ЗначенияСвойств) Тогда
Файл = Новый Файл(ЗначенияСвойств[0].Значение);
Если Файл.Существует() Тогда
_ПутьКФайлу = Файл.ПолноеИмя;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(_ПутьКФайлу) Тогда
АдресВоВременномХранилище = _ПутьКФайлу;
Иначе
#КонецВставки //--
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыЗапуска.ХранилищеОбработки.Получить());
#Вставка //++
КонецЕсли;
#КонецВставки //--
//...
#Вставка //++
Если ЭтоАдресВременногоХранилища(АдресВоВременномХранилище) Тогда
#КонецВставки //--
ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , Истина,
ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
ВнешнийОбъект = Менеджер.Создать(ИмяОбработки);
СведенияОВнешнейОбработке = ВнешнийОбъект.СведенияОВнешнейОбработке();
Если (Не СведенияОВнешнейОбработке.БезопасныйРежим Или ЕстьРазрешения)
И Не БезопасныйРежим Тогда
// Повторное подключение в небезопасном режиме, если разрешено.
ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , БезопасныйРежим,
ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
КонецЕсли;
#Вставка //++
Иначе
ИмяОбработки = Новый Структура("Имя, БезопасныйРежим, ЗащитаОтОпасныхДействий", АдресВоВременномХранилище, БезопасныйРежим);
КонецЕсли;
#КонецВставки //--
//...
КонецФункции
&ИзменениеИКонтроль("ОбъектВнешнейОбработки")
Функция _ОбъектВнешнейОбработки(Ссылка)
//...
#Вставка //++
Если ТипЗнч(ИмяОбработки) = Тип("Структура") Тогда
Возврат Менеджер.Создать(ИмяОбработки.Имя, ИмяОбработки.БезопасныйРежим, ?(ИмяОбработки.Свойство("ЗащитаОтОпасныхДействий"), ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений(), Неопределено));
КонецЕсли;
#КонецВставки //--
Возврат Менеджер.Создать(ИмяОбработки);
КонецФункции
2. Изменяем ОбщийМодуль.ДополнительныеОтчетыИОбработкиВызовСервера
&ИзменениеИКонтроль("ПодключитьВнешнююОбработку")
Функция _ПодключитьВнешнююОбработку(Ссылка)
#Удаление //++
Возврат ДополнительныеОтчетыИОбработки.ПодключитьВнешнююОбработку(Ссылка);
#КонецУдаления //--
#Вставка //++
Результат = ДополнительныеОтчетыИОбработки.ПодключитьВнешнююОбработку(Ссылка);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
// Получение экземпляра объекта.
Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Вид");
Если Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет
ИЛИ Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда
Менеджер = ВнешниеОтчеты;
Иначе
Менеджер = ВнешниеОбработки;
КонецЕсли;
Обработка = Менеджер.Создать(Результат.Имя, Результат.БезопасныйРежим, ?(Результат.Свойство("ЗащитаОтОпасныхДействий"), ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений(), Неопределено));
Результат = Обработка.Метаданные().Имя;
КонецЕсли;
Возврат Результат
#КонецВставки //--
КонецФункции
3. Устанавливаем вид публикации Режим отладки и указываем путь к файлу
В прикрепленных файлах расширений в общих макетах содержится подробная инструкция для настройки отладки.
Другие публикации:
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.17.155
- Управление торговлей, редакция 11, релизы 11.5.17.155
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.164.16