![]() |
![]() |
![]() |
|
Есть идея, как облегчить жизнь 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С-ОтладчикоФилия
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |