Имя: Пароль:
1C
 
Есть ли альтернативный отладчик для 1С 7?
,
0 globalasax
 
24.04.09
11:41
Отладчиком 1С 7 можно пугать маленьких детей! Если среду разработки значительно улучшил OpenConf, то может есть и альтернативный отладчик? Никто с таковым не сталкивался?
1 ДенисЧ
 
24.04.09
11:41
Есть. Называется head.sys
2 povar
 
24.04.09
11:43
(0) что тебя не устраивает ?
3 Deon
 
24.04.09
11:46
(0) А чего тебе в нём не хватает?
4 globalasax
 
24.04.09
11:52
(2)
1) посмотреть содержимое ТЗ, массива и т.д.
2) просмотр строки ограничен,т.е. целиком текст запроса или др. длинной строкине посмотреть
3) нет команды "Остановить" и "останавливать по ошибке"
5 globalasax
 
24.04.09
11:53
4) необходимо перезапускать при изменении кода (или заново открывать обработку)
6 povar
 
24.04.09
11:53
(4) все есть
7 Deon
 
24.04.09
11:57
(4) 1) ТЗ.ВыбртьСтроку() юзай
остальное не знаю
8 Попытка1С
 
24.04.09
12:01
(6) ну содержимое массива или СЗ, разве посмотреть можно?
9 ДенисЧ
 
24.04.09
12:01
сз.ВыбратьЗначение(,)
10 Deon
 
24.04.09
12:02
А теперь про массив :)
11 Попытка1С
 
24.04.09
12:02
(9) а массив?
12 Ёпрст
 
24.04.09
12:02
(4) точка останова есть с условием, мало ?
13 Ёпрст
 
24.04.09
12:03
(11)
m[1]
m[2]
...
m[n]

или
глПросмотрМассива(m[])
14 Попытка1С
 
24.04.09
12:03
(4) "2) просмотр строки ограничен,т.е. целиком текст запроса или др. длинной строкине посмотреть"

когда кидаешь в табло вся строка отображается. вроде
15 globalasax
 
24.04.09
12:04
(7) Вы что издеваетесь??? ТЗ.ВыбратьСтрокуПоНомеру() -  и так я до 2-ого пришествия буду ТЗ просматривать!!!
16 Попытка1С
 
24.04.09
12:04
(13) хм, пошел пробовать
17 andrewalexk
 
24.04.09
12:04
(15)
:))
уууу
18 Попытка1С
 
24.04.09
12:05
(15) ээээээ, причем тут номер?

просто ТЗ.ВыбратьСтроку()
19 povar
 
24.04.09
12:05
(15) писец
20 povar
 
24.04.09
12:05
какой ПОНомерУ ? читать разучились ?
21 Попытка1С
 
24.04.09
12:06
(0) а вообще плохому балеруну яйца мешают...
22 Mikeware
 
24.04.09
12:06
Такая ДНК неизлечима
23 globalasax
 
24.04.09
12:08
(20) сорри
24 Deon
 
24.04.09
12:08
(15) Да ты хоть попробуй
25 globalasax
 
24.04.09
12:09
(24) попробовал - понравилось :)
26 Ёпрст
 
24.04.09
12:09
Еще открою тайну...
ТЗ.ВидимостьКолонки("НомерСтроки",1);
ТЗ.ВыбратьСтроку();
это для удобства просмотра..
27 Попытка1С
 
24.04.09
12:10
(13) дык это.... =)

функцию писать надо, а штатно?
28 Ochkarito
 
24.04.09
12:13
to ДенисЧ, Ёпрст3
Век живи, век учись. Спасибо)
29 globalasax
 
24.04.09
12:14
Пункт 1 снимается
А как с остальным? Неужели всех устраивает такой отладчик?
30 Deon
 
24.04.09
12:15
(29) Надо сразу писать без ошибок ;) И отладчик не понадобится
31 Ёпрст
 
24.04.09
12:17
(27) у тя дохрена много места в коде, где массив используется ?
32 globalasax
 
24.04.09
12:17
(30) что-то не получается без ошибок :)
Спасибо to ДенисЧ.
33 Скользящий
 
24.04.09
12:18
ГлПросмотрТСЗ.ert  хорош для просмотра содержимого ТЗ и СЗ. Очень рекомендую.
34 Попытка1С
 
24.04.09
12:20
(31) вообще нет =)

но мы же говорим о возможностях отладчика, а не программиста.
35 ado
 
24.04.09
12:22
(29) >3) нет команды "Остановить" и "останавливать по ошибке"

Чем не устраивают точки останова и точки останова с условием?
36 Ёпрст
 
24.04.09
12:22
(34) ну ё...
в табло вызов внешней функции и смотри, чего хочешь..
А про длиные строки - Предупреждение(ТекстЗапроса); Возврат; в сам модуль :)
и гляди, сколько влезет..
или опять же, через вызов функции..
37 Ёпрст
 
24.04.09
12:23
(35) я ужо поинтересовался :)
а вообще, F8 и привет, и бегай до ошибки :)
38 Попытка1С
 
24.04.09
12:23
(36) ясно, прикольно
39 Mikeware
 
24.04.09
12:26
"Альтернативный отладчик" требуется только "альтернативно одаренным". имхо
40 globalasax
 
24.04.09
12:27
(39) Хорош прикалываться.
41 Mikeware
 
24.04.09
12:28
(40) Ну какая тема, такие и ответы.
Если не владеешь инструментом - это вовсе не означает, что он плох...
42 GrayT
 
24.04.09
12:29
Нет кнопки "Исправить все ошибки"
43 Ёпрст
 
24.04.09
12:29
(42) а ты откуда нарисовался ?
Чегой-то сто лет небыло видно...
44 OFF
 
24.04.09
12:30
а текст запроса, например, вот так хорошо смотреть:
ввестиСтроку(текстЗапроса,,,1)
avb / 17.09.03 / Форум на Кубани
А лучше вот так
Предупреждение(ТекстЗапроса)
Такие дела / 17.09.03 / Форум на Кубани

Просмотр списка значений из отладчика
нужно писать в табло ВыбратьЗначение(<Номер нужного значения>)
nnnnn / 15.10.03 / Форум на Кубани
а можно еще так:
МойСписок.ВыбратьЗначение("")
45 globalasax
 
24.04.09
12:34
(41) Согласен. Поэтому и задал тему.
46 globalasax
 
24.04.09
12:35
(42) да!!!
47 GrayT
 
24.04.09
12:38
(43) Случайно забежал - не работается чего то :(
48 Смотрящий от 1С
 
24.04.09
12:44
http://faq1c.gorbunov.ru/algo/valtab.htm
чудная вещь для отладки ТЗ
49 Ёпрст
 
24.04.09
12:46
(47) ну, забегай еще :)
50 GrayT
 
24.04.09
12:46
(49) Ок :)
51 GrayT
 
24.04.09
12:50
(48)Круть....
А чем не у страивает просто форма с ТЗ на форме? Для отладки к тому же удобно для числовых колонок считать итог, опять же можно и редактирование замутить можно, а по клику открывать следующий объект... особливо хорошо когда в ТЗ в себе другие ТЗ содержит.
52 Скользящий
 
24.04.09
12:52
53 trdm
 
24.04.09
12:53
//******************************************************************************
// глПросмотрОбъекта(Объект) <<© ТрДм 2005>> [email protected]
// Отладочная функция, которая обеспечивает просмотр объекта.
// Смысл: просмотр в отладчике любых объектов с нафигацией по ним.
Функция глПросмотрОбъекта(Объект, Знач нУровеньПросмотра = 0) Экспорт
   ЗначВозврата = 0;
   нУровеньПросмотра = нУровеньПросмотра + 1;
   стрУП = " (Уровень пр. = " + нУровеньПросмотра+")";
   ТипЗначенияСтрОбъекта = ТипЗначенияСтр(Объект);
   Если Найти(Врег("Справочник, Документ"), Врег(ТипЗначенияСтрОбъекта) )>0 Тогда
       Если ПустоеЗначение(Объект) = 1 Тогда
           Возврат ЗначВозврата;
       КонецЕсли;
       ОткрытьФормуМодально(Объект);
       Возврат ЗначВозврата;
   ИначеЕсли НЕ ((ТипЗначенияСтрОбъекта    = "СписокЗначений") ИЛИ
       (ТипЗначенияСтрОбъекта    = "ТаблицаЗначений") ИЛИ
       (ТипЗначенияСтрОбъекта    = "Запрос") ИЛИ
       (ТипЗначенияСтрОбъекта = "ИндексированнаяТаблица"))  
       Тогда
           Если ТипЗначенияСтрОбъекта = "Строка" Тогда
               вОбъект = Объект;
               ВвестиСтроку(вОбъект,"--",СтрДлина(вОбъект)+20,?( Найти(вОбъект,РазделительСтрок)>0 ,1,0));
           Иначе
               Предупреждение(глВСтроку(Объект) + " Тип: " + глТипИВидЗначения(Объект) + стрУП);
           КонецЕсли;
       Возврат ЗначВозврата;
   КонецЕсли;
   ПромЗначение = "";
   Если ТипЗначенияСтрОбъекта    = "СписокЗначений" Тогда
       Если Объект.РазмерСписка() = 0 Тогда
           Сообщить("Просматривается пустой список!","!");
           Возврат ЗначВозврата;
       КонецЕсли;
       Объект2 = СоздатьОбъект("ТаблицаЗначений");
       Объект2.НоваяКолонка("Пом");
       Объект2.НоваяКолонка("Знач");
       Объект2.НоваяКолонка("Предст");
       СЦ = 0;
       Для СЦ = 1 По Объект.РазмерСписка() Цикл
           Объект2.НоваяСтрока();
           Объект2.Пом = Объект.Пометка(СЦ);
           _Пр = "";
           _Зн = Объект.ПолучитьЗначение(СЦ,_Пр);
           Объект2.Предст = _Пр; Объект2.Знач = _Зн;
       КонецЦикла;
       ПромСтрока = "";
       
       Пока глВыбратьИзТаблицыЗначений(Объект2,ПромСтрока,стрУП)<>0 Цикл
       //Пока Объект2.ВыбратьСтроку(ПромСтрока,стрУП)<>0 Цикл
           Объект2.ПолучитьСтрокуПоНомеру(ПромСтрока);
           глПросмотрОбъекта(Объект2.Знач,нУровеньПросмотра);
       КонецЦикла;
       Возврат ЗначВозврата;
   КонецЕсли;
   Если ТипЗначенияСтрОбъекта = "Запрос" Тогда
       Объект2 = СоздатьОбъект("ТаблицаЗначений");
       Объект.Выгрузить(Объект2,1,1);
       ТипЗначенияСтрОбъекта = "ТаблицаЗначений"
   ИначеЕсли (ТипЗначенияСтрОбъекта = "ТаблицаЗначений") ИЛИ (ТипЗначенияСтрОбъекта = "ИндексированнаяТаблица")  Тогда
       Объект2 = Объект;
   КонецЕсли;
   Если (ТипЗначенияСтрОбъекта = "ТаблицаЗначений") ИЛИ (ТипЗначенияСтрОбъекта = "ИндексированнаяТаблица") ИЛИ (ТипЗначенияСтрОбъекта    = "СписокЗначений")  Тогда
       ПромСтрока = "";
       
       Пока глВыбратьИзТаблицыЗначений(Объект2,ПромСтрока)<>0 Цикл
       //Пока Объект2.ВыбратьСтроку(ПромСтрока,стрУП)<>0 Цикл
           Если ТипЗначенияСтрОбъекта <> "ИндексированнаяТаблица" Тогда
               Объект2.ПолучитьСтрокуПоНомеру(ПромСтрока);
           КонецЕсли;
           СписОбъектовИзКолонок = СоздатьОбъект("СписокЗначений");
           СЦ = 0;
           Для СЦ = 1 По Объект2.КоличествоКолонок() Цикл
               ЗначениеДобавления        = Объект2.получитьЗначение(ПромСтрока,СЦ);
               Если ТипЗначенияСтрОбъекта = "ИндексированнаяТаблица" Тогда
                   ПредставлениеДобавления = Объект2.ИмяКолонки(СЦ) + ": " + ЗначениеДобавления;
               Иначе                
                   ПредставлениеДобавления = Объект2.получитьПараметрыКолонки    (СЦ) + ": " + ЗначениеДобавления;
               КонецЕсли;
               СписОбъектовИзКолонок.ДобавитьЗначение(ЗначениеДобавления, ПредставлениеДобавления);
           КонецЦикла;
           глПросмотрОбъекта(СписОбъектовИзКолонок,нУровеньПросмотра);
       КонецЦикла;  
   КонецЕсли;
   Возврат ЗначВозврата;    
КонецФункции // глПросмотрОбъекта()
54 trdm
 
24.04.09
12:56
В отладчике для: "строки", "запроса", "таблицыЗначений","СпискаЗначений"
набираете в табло:
глПросмотрОбъекта(<переменная>);
И смотрите себе значения какие хотите...
55 trdm
 
24.04.09
12:56
+ как всегда первый ответ правильный, остальные - флуд :)
56 yam
 
24.04.09
13:00
Че вы все на автора наехали, скажите еще что вы в восьмерке этим не пользовались, одаренные вы наши)
57 trdm
 
24.04.09
13:03
(56) потому что автор явно безрукий.
58 kiruha
 
24.04.09
13:15
(53)
Предупреждение(глВСтроку<<?>>(Объект) + " Тип: " + глТипИВидЗначения(Объект) + стрУП);
{Глобальный модуль(9848)}: Функция не обнаружена (глВСтроку)
Пока глВыбратьИзТаблицыЗначений<<?>>(Объект2,ПромСтрока,стрУП)<>0 Цикл
{Глобальный модуль(9872)}: Функция не обнаружена (глВыбратьИзТаблицыЗначений)
Пока глВыбратьИзТаблицыЗначений<<?>>(Объект2,ПромСтрока)<>0 Цикл
{Глобальный модуль(9889)}: Функция не обнаружена (глВыбратьИзТаблицыЗначений)

глТипИВидЗначения
59 GrayT
 
24.04.09
13:20
(58)Ща тебе весь глобальник запостят! :)
60 Вадимыч
 
24.04.09
13:22
(53) глВыбратьИзТаблицыЗначений() ?
61 trdm
 
24.04.09
13:25
//******************************************************************************
// глВСтроку(ПромЗначение)
Функция глВСтроку(ПромЗначение) Экспорт
   Возврат СокрЛП(""+ПромЗначение);
КонецФункции // глВСтроку()
//******************************************************************************
// глТипИВидЗначения(Значение)
Функция глТипИВидЗначения(Значение) Экспорт
   ЗначВозврата = ТипЗначенияСтр(Значение);
   Если ПустоеЗначение(Значение) = 0 Тогда
       ЗначВозврата = ТипЗначенияСтр(Значение);
       Если (ЗначВозврата = "Справочник") ИЛИ (ЗначВозврата = "Документ") ИЛИ (ЗначВозврата = "Регистр") ИЛИ (ЗначВозврата = "Перечисление")  Тогда
           ЗначВозврата = ЗначВозврата + "." + Значение.вид();
       ИначеЕсли ЗначВозврата = "ГрупповойКонтекст" Тогда
           Попытка
               Если Метаданные.Документ(Значение.Вид()).Выбран() = 1 Тогда
                   ЗначВозврата =  "Документ." + Значение.вид();
               КонецЕсли;
           Исключение
           КонецПопытки;
       КонецЕсли;
   Иначе
       ЗначВозврата = ТипЗначенияСтр(Значение);
       Попытка
           Если (ЗначВозврата = "Справочник") ИЛИ (ЗначВозврата = "Документ") ИЛИ (ЗначВозврата = "Регистр") ИЛИ (ЗначВозврата = "Перечисление")  Тогда
               ЗначВозврата = ЗначВозврата + "." + Значение.вид();
           КонецЕсли;
       Исключение
       КонецПопытки;
   КонецЕсли;
   Возврат ЗначВозврата;
КонецФункции // глТипИВидЗначения()
62 trdm
 
24.04.09
13:26
глВыбратьИзТаблицыЗначений - просто обертка, заменяющая
таблицаЗначений.ВыбратьСтроку()
на диалог выбора с сервисными функциями: печать ТЗ, свертка, поиск и т.п.
самим писать влом?
63 kiruha
 
24.04.09
13:39
(62) Да, спасибо - с заменой

Пока глВыбратьИзТаблицыЗначений(Объект2,ПромСтрока)<>0 Цикл
//Пока Объект2.ВыбратьСтроку(ПромСтрока,стрУП)<>0 Цикл

на
//Пока глВыбратьИзТаблицыЗначений(Объект2,ПромСтрока)<>0 Цикл
Пока Объект2.ВыбратьСтроку(ПромСтрока,стрУП)<>0 Цикл

все работает
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.