Имя: Пароль:
1C
1С v8
v8: Отладить внешнюю обработку
0 america2013
 
20.05.14
10:47
Доброго дня, уважаемые товарищ!!!

Помогите пожалуйста, с такой проблемой:
есть внешняя обработка заполнения табличной части, которую хочу доработать, в связи с этим стоит отладить, почему попадают не верные данные. Сохранить обработку и открыть не удается, якобы нет связи с объектом. Знаю что обработка каждый раз создает временный файл и ТМР и оттуда запускается, но пытаясь сделать намеренную ошибку в коде и попасть в эту временную обработку, что бы исправить ошибку и отлаживать дальше - не удается, - когда снова запускаю обработку, снова создается временный файл с моей ошибкой, а я рассчитывал, что он будет работать с тем же временным файлом.

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

Приложение обычное.

Заранее благодарен!!!
1 vicof
 
20.05.14
10:48
точку останова в форме поставь перед вызовом обработки
2 Wobland
 
20.05.14
10:49
(1) а я за отладку - остановку по ошибке
3 Kalambur
 
20.05.14
10:49
в обработке делай ссылку на документ для отладки
4 ale-sarin
 
20.05.14
10:49
В форме напишите

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    
    ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
    Инициализировать(ДокументОбъект, ИмяТЧ, "ТабличноеПоле");
    
    Форма = ДокументОбъект.ПолучитьФорму();
    Форма.Открыть();
    
КонецПроцедуры
5 america2013
 
20.05.14
11:53
(1) Так ведь это будет точка остановке на форме обработки, которая в файле, а не та, которую я добавил в справочник. Как же эта точка может сработать?

(2) Мне тоже кажется, что можно как-то вызвать событие, которое и перенесет меня в создавшуюся обработку, но как вызвать такое событие?

(3)(4) Создал реквизит ДокументСсылка.Реализация, что бы передать в обработку, но не могу добавить на форму - реквизита нет в размещенных данных... Я так понимаю инициализацию надо делать при открытии?

При открытии пишет:

http://clip2net.com/s/i96DrZ
6 Wobland
 
20.05.14
11:57
(5) деление на 0 в попытке, к примеру
7 ale-sarin
 
20.05.14
12:00
(5)
ДокументССылка - реквизит обработки с типом "ДокументСсылка.Реализация"
ИмяТЧ - реквизит обработки с типом строка.

Размещаете их на форме. На кнопку "Выполнить" вешаете процедуру из (4).
8 Godofsin
 
20.05.14
12:00
(5) Параметры авторегистрации почистить
9 america2013
 
20.05.14
12:02
(6) Пожалуйста, разъясните. Делаю так

    Попытка
        ф=1/0;
    Исключение
            ВызватьИсключение;
    КонецПопытки;

Останавливается на строке:

        ф=1/0;

То есть я попадаю в конфигуратор и вижу временную обработку, но дальше двинуться не могу - обработка завершила работу. Или я Исключение не верно оформил?
10 Wobland
 
20.05.14
12:04
(9) Исключение не верно оформил?
11 ДенисЧ
 
20.05.14
12:04
(9) ВызваатьИсключение убери
12 Wobland
 
20.05.14
12:04
(10) в смысле да
13 Wobland
 
20.05.14
12:04
а у меня чаще всего й=2/0, я большой оригинал
14 america2013
 
20.05.14
12:07
Если сделать:

    Попытка
        ф=1/0;
    Исключение

    КонецПопытки;

тогда обработка срабатывает без ошибок, то есть не могу попасть в конфигуратор, как хотелось бы.
15 Wobland
 
20.05.14
12:11
предложить средство попадания, не?
16 User_Agronom
 
20.05.14
12:12
Нда. Сложно ремонтировать незаглушенный двигатель автомобиля.
17 america2013
 
20.05.14
12:14
(15) Приму любой совет : )
(16) Во-во! Как такие обработки вообще отлаживать??? То есть надо внести в обработку (которая в файле) изменения, испробовать, предположить, что не получилось, опять изменить файл, опять загрузить в справочник, опять испробовать, так что ли?
18 Любопытная
 
20.05.14
12:16
(17) остановку по ошибке включи, попадешь в исключение
19 Wobland
 
20.05.14
12:19
(17) два самых простых пути тебе назвали. и не раз
20 america2013
 
20.05.14
12:30
Да, верно. Решение может быть такое:

1. добавил в код
ф=1/0;
2. текст ошибки ввел - деление на 0
3. попадаю в отладку именно там, где и хочу; продолжить выполнять код, конечно после этого не удается, но и этого вполне достаточно.

Ошибка моя была в том, что я это деление на ноль делала раньше того места, где хотел бы посмотреть результат выполнения)))

Благодарю всех за помощь и приятное общество!!!
21 inspam
 
20.05.14
12:46
22 Dionis Sergeevich
 
20.05.14
12:57
23 Dionis Sergeevich
 
20.05.14
12:58
в (22) очень простой способ для понимания (для новичков)
(0) плюсик поставить там не забудь ;)
24 america2013
 
20.05.14
13:12
(21) Наверное попробую допилить для себя, выдает ошибку при инициализации.

(22)(23) Я в полнейшем восторге от такого способа!!!!!! И главное можно продолжать работать! Понятно конечно, что это немного не ровный метод, но главное работает!
25 Dionis Sergeevich
 
20.05.14
14:13
(24) Незачто. Только ты мне забыл плюсик поставить там
26 america2013
 
20.05.14
14:50
Я вроде ставил, может не там, извини, я на том сайте редко бываю.
http://clip2net.com/s/i9bFy0
27 Dionis Sergeevich
 
20.05.14
14:57
(26) ок спасибо =)
Независимо от того, куда вы едете — это в гору и против ветра!