Имя: Пароль:
1C
 
Есть идея, как облегчить жизнь 1С-программеров?
Ø
0 VasyaPupkin
 
15.03.06
18:02
Есть идея, кто считает она не совсем сумашедшая ответьте?
Хочу написать такую штуковину:
Ну берем какой нибудь отчет/обработку.
1-я операция которую проделает с ней наша прога-прочитает текст 1С-го модуля, и
после каждой ";" (точки с запятой) вставит в модуль примерно такой текст:
"ЗаписатьВлог(номстр)", где вместо "номстр" будет стоять номер строки, в которую после точки с запятой мы вставили этот текст. В глобальном модуле конфигурации пропишем такой текст
***
Процедура ЗаписатьВлог(стр) Экспорт
// тут текст который будет записывать в лог файл значение переменной стр
КонецПроцедуры
***
Теперь если запустить 1С предприятие, а в нем тот отчет, в котором мы проделали
все это, то у нас должен заполниться лог-файл, номерами тех строк которые выполнялись, в ходе выполнения отчета.
2-я операция. Мы загружаем текст модуля отчета/обработки в RichTextBox, а
после этого, последовательно считывая строки из лог-файла будем выделять
каким нибедь цветом, отличным от белого, в RichTextBox'e те строки номера,
которых считанны из лог файла.
Как можно использовать полученный результат?
Ну, во-первых навигация, по тексту модуля, в которым подсвеченны, те строки,
которые выполнялись гораздо удобней, чем 1с-м текст.редакторе. Особенно, если
отчет никогда ранше не видел, то так гораздо удобней понять логику его работы.
Во-вторых можно получить список только тех процедур/функций, которые выполнились
в этом модуле, и при анализе не надо тратить время на вопросы, а заходим ли
мы при выполнении отчета(при определенных его установках) именно в эту процедуру.
Кто-что думает по поводу вышесказанного?
1 pupkin
 
15.03.06
18:06
<><>уЊ¤ЊуШуЊр‰¤Я¤ЊрЋу‰у‹уЭуЊҐЪ–јЯ
2 Zamestas
 
15.03.06
18:06
(0) Отладчиком не пробовал пользоваться ?
3 АЛьФ
 
15.03.06
18:07
2(0) Запусти отладчик и научись пользоваться замером производительности.
4 1cSupport
 
15.03.06
18:07
Хорошо тебе, много радости ждёт тебя впереди. В том числе и отладчик.
5 Псиглавец
 
15.03.06
18:07
вообще-то, аудит - ресурсозатратное дело.. Но вообще - сделай, а кто-то потестирует.
6 DeiMos
 
15.03.06
18:31
Отладчиком попробуй...
7 VasyaPupkin
 
15.03.06
18:33
(1) Ну, во-первых, как я говорил, мне думается, что это может облегчить работу с новыми большими отчтетами/обработкаим. Когда, даже и не знаешь как к нему подступиться, а тут запустил свой exe-к и видишь подсвеченные строки, из которых можно сделать вывод, в какой процедуре готовился/ формировался объект типа запрос, например. Ведь запрос очень часто бывает сложным, тескст его набирается через множество
если...., тогда... текстзапроса=текстзапроса+....
, а тут сразу видно, если у нас в отчете такие опции, то запрос сформировался именно такой....
Кроме того бывает, что его формирование разбросанно по множеству процедур/функций модуля, а тут сразу видно в каких процедурах к его тексту что-то добавлялось.
Потом, например, я открываю неизвестный мне документ, и неизвестно на значение каких реквизитов подейтвует нажатие какой-нибудь кнопки в нем. А тут, нажал, запустил прогу, и вижу, что при измении колонки напр. "цена"
запускаются напр. ИзмЦена()-ИзмНДС()-Изм().......
(2,3) если на эти вопросы пытаться ответить с помощью пошаговой отладки через отладчик, я не смогу например, возвращаться назад. Ну то есть бывает нужно в на каком-то шаге припомнить "а что мы уже проделывали с этим объектом/пременной в этой процедуре или в целом в модуле"? в отладчике такого не сделаешь.
По второму случаю, если я захочу через отладчик ответить на вопрос в каких процедурах какие реквизиты менялись при изменении определен. рквизита, я должен пошагово идти записывать/запоминать
- в этой поменялась такой-то реквизит
- в этой такой-о...
А тут глянул на подсвеченные строки, обращая внимание на те где есть знак равно (перем1=.....) и уже навскидку видно, что менялось.....
То есть, описывать все варианты можно долго, как мен кажется выгоды могут быть в некоторых случаях незначительны, но все таки быть, в некоторых быть приличными, а в некоторых экономить просту уйму сил и времени.
Мне кажется, что надо копать в направлении алгоритма, где-то я слышал етсь такой "Код который выводит/транслирует сам себя"?
8 talks1c
 
15.03.06
19:05
(7)если будет работать так как пишешь - было бы круто.
отладчик отладчиком, но то что предлагаешь, тоже весьма удобно и полезно.
9 АЛьФ
 
15.03.06
19:40
2(7) Да запусти ты замер производительности в отладчике. Получишь именно то, что так многословно описываешь.
10 talks1c
 
15.03.06
20:00
еслиб это еще все в 1С было, и код можно было бы тут же править :-)
11 GameOver
 
15.03.06
20:48
(0) Почем трава? :))
12 lalex23
 
15.03.06
21:54
(0)тренеруй память
учися пользоваться отладчиком
завязывал с травой
13 VasyaPupkin
 
15.03.06
22:46
1 - трава и память тут ни при чем
2 - отладчик, замер производительности - там выводится только имя модуля и номер строки, и ни видно в каком контексте выполнилась строка (в какой процедуре), в каком блоке если...ТОгда , а так как я предполагаю:
вижу закрашенную строку, ага-чтобы к ней прийти, должно было выполниться такое-то условие, а вот та переменная, от которой зависил заход в этот блок если менялась, ей было присвоенно значение в такой-то строке(обращаю внимание только на подсвеченные строки). А попробуй провести такой анализ
просто читая код модуля или пользуясь отладчиком.
Дело в том, что кое-каких успехов я уже достиг. Но хотелося улышать, может кто-то уже копал в этом направлении, поделиться опытом.
Встречал примерно такие вещи на других языках программирования, напр. для VB есть add-in, который вставялет в начало каждой процедуры функцию, параметром которой передается имя текущей процедуры. В результате формируется лог всех запущенных процедур. Вот и захотелось что-то такое же только даже чуть более продвинутое (подсветка строк в RichTextBox) для 1С.
(10) насчет, чтобы было в 1С - можно моудль выгрузить в файл и на ходу править.... тут такое поле для деятельности, наверняка, как я уже говорил не во всем будет большой эффект, если напр. в модуле 2-3 функций. Но вот если новый модуль, в новой конфигурации, может оказаться просто незаменимым.
14 KVIK
 
15.03.06
23:59
(13) НАУЧИСЬ ПОЛЬЗОВАТЬСЯ ОТЛАДЧИКОМ!!! И НЕ МОРОЧ ЛЮДЯМ ГОЛОВУ!!!
15 MMF
 
16.03.06
00:51
(13) а что из себя будет представлять лог выполнения кода, если имеется, скажем бух запрос по трем субконто и периодам, и выполняется он за большой период (циклы выполняются дофига раз)? вопрос 1: дождемся ли мы когда-нить окончания работы отлаживаемого кода? вопрос 2: диск у нас не треснет от лога проходов выполнения кода? вопрос 3: не запаримся ли мы потом смотреть миллионы повторяющихся строк в логе?
16 Дурочка 1С ®
 
16.03.06
01:36
(15) Миллионы повторяющихся (подсвеченных) строк - это в любом случае будет красиво ...
не поймем код, так хоть полюбуемся ...
17 talks1c
 
16.03.06
01:48
(15) вы чего-то недопоняли. либо я).
но я вижу это в таком духе: есть текст модуля, он не изменяется. в результате работы проги просто пройзойдет подсветка строк текста, которые были задействованы. и все. :-). никакого повтора строк, да и вообще перемен в тексте не будет. только поменяется цвет строк. имхо, для некоторых случаев удобно.
18 vladfind
 
16.03.06
02:02
[1] Если практически хотите присоедениться к настоящей работе по созданию НАСТОЯЩЕГО инструмента, приглашаю участвовать в развитии идеи "Робот-программист "Ванюша". Сайт www.robot-ivan.narod.ru.
Кратко идеи:
1. Создать новый движок Конфигуратора - базу знаний программиста
2. Использовать IDE от BlackBox (компонентный паскаль от Никуласа Вирта). Созданный ещё в конце 80-х годов не только не потерял актуальности по сей день.
3. Преобразовать программные модули из формата TXT в формат XML. Тогда многие преобразования над текстом программы станут тривиальными.
4. Доработать использования визуализатора диаграмм http://home.so-net.net.tw/oodtsen/wingraphviz (см. http://www.mista.ru/dot/amv7.htm реализацию для V7.7)
  
19 NarkotikamNet
 
16.03.06
09:17
(18) Эк тебя зацепило :))) Откуда такая трава?
20 zzz
 
16.03.06
09:32
сегодня вроде четверг? А прям как пятница ..
http://www.ljplus.ru/img/r/a/rainy_sun/nevlezai.jpg
21 Очкарик
 
16.03.06
09:50
(0) пиши свою штуку, разрешаю. ;)
22 0xFFFFFF
 
16.03.06
10:00
Вот я например в отладчике смотрю
(строка такая то) ТекстЗапроса = ТекстЗапроса + "
Остальная инфа потеряна.
Вроде бы идея в (0) хороша.
Но.
Представил себе код
ТекстЗапроса = ТекстЗапроса + "
|Период с ДатаНачала по ДатаКонца;ЗаписатьВлог(стр)
....
Ничего хорошего не получилось.
23 mes
 
16.03.06
10:22
18 - дизайн сайта классный.
24 zzz
 
16.03.06
10:28
23+ интеЛЛект
25 mes
 
16.03.06
11:01
Лучше бы Васей назвали.
26 vladfind
 
16.03.06
12:08
Выкладываю промежуточный результат:
Например, скачаем простую конфигурацию: http://robot-ivan.narod.ru/xml-test/kom11.zip (источник http://1c.proclub.ru/modules/mydownloads/viewcat.php?trash=0&op=&cid=95)
Выполняем функцию "Создать описание конфигурации в формат XML". Полученный файл смотрим на http://robot-ivan.narod.ru/xml-test/isschema.xml
В XML можно найти описание конфигурации, а также программный модуль в виде объекта TEXT в XML.
Следующий этап - это разложить этот программный текст в XML формат.
  
27 ума то нету
 
16.03.06
12:54
Я то думал, тут денег до старости всем дают, дабы жизнь облегчить
28 vovan58
 
16.03.06
13:02
У программитса 1С жизнь и так достаточно легкая, главное , чтобы пива хватало...
29 Мудрила Страшный
 
16.03.06
13:17
VasyaPupkin, поздравляю, ты идиот. Прислушайся к словам АЛьФ'а и НАУЧИСЬ НАКОНЕЦ ПОЛЬЗОВАТЬСЯ ЗАМЕРОМ ПРОИЗВОДИТЕЛЬНОСТИ... А еще тебя наверное поразит такая мегаштука как стек вызовов...
Достал...
31 VasyaPupkin
 
16.03.06
16:23
(17,30) Спасибо за поддержку и понимение.
(17) Получается, что только ты меня правильно понял. Честно говоря, думал, что уже у кого-то что-то подобное написанно, и хотел как бы обменяться опытом. Прога уже на самом деле есть. Что она умеет делать по состоянию на сегодняшний день:
- вызвается она через скрипт "OpenConf", передаю ей в качетсве параметра текст открытого модуля, после чего она вставляет в модуль ...ЗаписатьВлог(номстр)... Делаю в 1С-ке те действия, о которых мне интересно узнать, какие строки пробегают в ходе выполенния (формирования отчета, проведения документа). После этого запускаю батник-который вызывает 2-ю часть проги (вообще-то код всталяющий ...ЗаписатьВЛОГ()... это 1 exe-к, а подсветка строк - это другой, но я их условно называю одной прогой т.к. они взаимосвязанны). Так вот батник вызывает прогу, параметром командной строки передает имя лог-файла. Прога представялет собой диалог с RichEditBox, она выводит в него текст модуля, и считывая лог подсвечивает(в смысле выделяет определенным цветом) строку, которая выполнялась ....
Сейчас я начинаю осваивать конфигурацию ЗИК, и вот тут мне все это помогает. Написал на форум, потому что есть идеи по дальнейшему развитию этой идеи, возможно у кого-то будут какие-то мысли, свои подобные наработки ....
32 АЛьФ
 
16.03.06
16:34
2(31) А прикинь, в отладкиче можно посмотреть какие строки выполнялись не по одному проходу а по нескольким. Например, выполнив обработку с разными начальными параметрами. Плюс еще показывает сколько раз какая строка выполнялась. Правда круто?
33 RK
 
16.03.06
16:39
А если запустить в сетке на 20 машинах?
тебе за день работы столько логов наколбасят..........
34 IchRovan
 
16.03.06
16:39
(31) Я вот счас на Lotus Notes пишу - там как раз такой механизм используем (взякие там Логи и прочую ботву) - потому как там отладчик очень "дубовый" по сравнению с 1С
35 MMF
 
16.03.06
16:44
(31) ты даун. Прочти (32). Я-то думал тебе не просто покрытие кода интересует, а именно история выполнения.
36 АЛьФ
 
16.03.06
17:14
2(35) Он не читатель, а писатель.
37 VasyaPupkin
 
17.03.06
11:24
Ладно закроем тему.
38 lalex23
 
17.03.06
11:37
да нет, зачем же закрывать - как раз пятница наступила - время пофлеймить:)
а если честно - то не вижу сильно большой необходимости, хотя обработки с сайта качнул, посмотрел - улыбнулся
проделано столько работы... и ради чего???
эти логи помогут увидеть - КАКИЕ строки выполнялись, а вот ПОЧЕМУ - ответит только ОТЛАДЧИК
39 IchRovan
 
17.03.06
11:44
(38) видимо для тех у кого 1С-ОтладчикоФобия (жаль не знаю как точно по-научночму называется)
40 lalex23
 
17.03.06
11:57
(39)тогда у тех кто не понял идеи - 1С-ОтладчикоФилия