Имя: Пароль:
1C
1С v8
Можно ли открыть форму внешней обработки форму и попасть туда отладчиком 1с 8.3 ?
0 iva77ru
 
27.05.21
11:57
Доброго дня.

Возникла необходимость отладить модуль формы внешней обработки. Обработка при открытии формы получает таблицу параметров и обрабатывает , затем возвращает результат в модуль формы вызывающей обработки.

Нужно попасть отладчиком в модуль формы открываемой внешней обработки. После метода Подключить вход туда невозможен. Что можно сделать?
1 Гений 1С
 
гуру
27.05.21
12:29
(0) если открывается через файл-открыть, то можно. если из доп внешних то нет
2 Галахад
 
гуру
27.05.21
12:42
ИР умеет.
3 Вафель
 
27.05.21
12:43
для печ формы проще свою форму сделать и так ее отлаживать
4 serpentt
 
27.05.21
13:05
(0) на инфостарте есть куча поделок для отладки внешних печатных форм
5 ptiz
 
27.05.21
13:07
(4) Разве это возможно? Можно пример?
6 вым
 
27.05.21
13:33
7 ptiz
 
27.05.21
13:36
(6) Там везде речь про то, что надо руками открывать форму через Файл-Открыть. А тут интерес в другом: посмотреть, какие параметры получает форма при программном открытии внешней обработки.
8 Галахад
 
гуру
27.05.21
13:55
(7) Самое простое это вставить туда ошибку и включить остановку по ошибке.
Что-то типа
Попытка
а = 0/0;
КонецПопытки;
9 ildary
 
27.05.21
14:17
(7) Я для подобной отладки делал расширение, подменяющее вызов обработки из справочника, на открытие файла.
10 ildary
 
27.05.21
14:18
(8) Вроде бы в последних версиях БСП этот трюк перестал работать (я сам не проверял, на мисте писали).
11 Вафель
 
27.05.21
14:20
(7) да никаких особых параметров она не получает. если это конечно бсп
12 iva77ru
 
27.05.21
14:29
Попытка
а = 0/0;
КонецПопытки;

по ошибке не останавливается.
13 iva77ru
 
27.05.21
14:30
Через файл открыть, как туда перебросить параметры?
14 Вафель
 
27.05.21
14:33
так это печ форма или что?
15 Вафель
 
27.05.21
14:34
16 iva77ru
 
27.05.21
15:32
Спасибо, с отладкой печ. форм у меня трудностей нет. Нужно попасть обработчиков в модуль открываемой формы внешней обработки, чтобы отладить с учетом вх параметров.
17 ptiz
 
27.05.21
15:39
(11) Вполне себе получает:
    Если ВыполняемаяКоманда.ВариантЗапуска = ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.ОткрытиеФормы") Тогда
        
        ИмяВнешнегоОбъекта = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВыполняемаяКоманда.Ссылка);
        Если ВыполняемаяКоманда.ЭтоОтчет Тогда
            ОткрытьФорму("ВнешнийОтчет."+ ИмяВнешнегоОбъекта +".Форма", ПараметрыВызоваСервера, Форма);
        Иначе
            ОткрытьФорму("ВнешняяОбработка."+ ИмяВнешнегоОбъекта +".Форма", ПараметрыВызоваСервера, Форма);
        КонецЕсли;
...

Но поскольку ПодключитьВнешнююОбработку() реализовано через:
    ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , БезопасныйРежим,
        ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());

то у конфигуратора в принципе отсутствует файл обработки, насколько я понимаю. Это вообще не лечится?
18 AliceLight
 
27.05.21
15:47
А если сделать во внешке вызов какой-то функции общего модуля, поставить в этой функции общего модуля точку останова, и когда в нее попадет, довести процедуру до конца - после выполнения процедуры по f10 оно не откроет внешнюю обработку? Чисто теоретически может. Или может из стека вызовов в таком случае попробовать открыть.
19 TormozIT
 
гуру
27.05.21
16:03
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший