Имя: Пароль:
1C
1С v8
Снегопат. Есть ли в нем такая фича?
0 Lex_Liven
 
27.11.12
09:56
Всем утро. Подумываю купить Снегопат, но сомневаюсь. Знаю точно, что готов заплатить за него, если там есть такая фича:
Во многих местах конфигурации встречается один и тот же (вплоть до символа) код (так напрограммили предыдущие "спецы"). Хочется найти все вхождения и выделить в процедуру или функцию в общем модуле.
Стандартная "глобальная замена" не ищет более одной строки. Кто в курсе, существует такая возможность в самом снегопате или скриптах?
1 Нуф-Нуф
 
27.11.12
09:56
че за снегопат?
2 Lex_Liven
 
27.11.12
09:59
(1) http://snegopat.ru/
Я в шоке! Что, правда, никогда даже не слышали???
3 mrParadox
 
27.11.12
10:00
Выдыхай бобер
4 Lex_Liven
 
27.11.12
10:00
(3) О! Какой информативный пост!
5 Hazer79
 
27.11.12
10:01
(2) поздравляю. ты самый эрудированный на форуме
6 quest
 
27.11.12
10:01
Даже если и нет - напишешь.
7 Reset
 
27.11.12
10:03
Имхо, такое нужно вручную делать
8 Reset
 
27.11.12
10:04
На "местах" может оказаться множество нюансов
9 mehfk
 
27.11.12
10:04
(0) Переходи на 8.3, выгружай в txt/xml и ищи уже в них.
10 sapphire
 
27.11.12
10:04
(0) Есть такая фича
11 sapphire
 
27.11.12
10:05
Скрипт "Рефакторинг"
12 Stepa86
 
27.11.12
10:06
(9) тексты модулей и в 8.0 можно выгружать было, и в 8.2 можно
13 orefkov
 
27.11.12
10:11
(0), (10)
Насколько я знаю, в extSearch также сделан поиск по отдельным строкам текста. Так что надо будет просить Евгения доработать. Зато можно будет искать в фоне.
14 orefkov
 
27.11.12
10:12
(11)
Этот скрипт вроде пока может только выделить в метод вручную выбранный кусок текста. Для автоматической замены многих кусков еще не пригоден.
15 TormozIT
 
гуру
27.11.12
10:13
Ты прям Решарпер хочешь в конфигураторе. Прям в таком виде к сожалению нету.
16 Lex_Liven
 
27.11.12
10:17
orefkov ,спасибо, что откликнулись. На вашем сайте с вами и не свяжешься, пока не купишь программу.
(13) по отдельным строкам - это поиск блока текста из нескольких строк?
(14) а он выделяет в метод в этом же модуле, или может в другой, общий, например?
17 quest
 
27.11.12
10:17
(13) кстати, а что мешает снегопату по требованию отдавать ast модуля (выделенного куска текста) - тогда задача замены становиться проще (а еще и макросы становиться возможным прикрутить).
18 orefkov
 
27.11.12
10:20
(16)
На snegopat.ru в гостевом форуме могут общаться все, надо просто сначала залогинится на основном сайте как anonimous.
(17)
Мешает то, что в Снегопате самом пока нет AST для модуля :)
Ну а так пока я сделал простенький парсер для исходных текстов, которым можно пользоваться из скриптов:
http://snegopat.ru/main/wiki?name=Парсер+кода+1С
19 artbear
 
27.11.12
10:23
(13) 1. Можно доработать.
2. А можно регулярками искать, в этом случае нет разницы, одна или несколько строк.
Хотя, конечно, регулярку составить сложнее.
3. Кстати, наш конструктор регулярных выражений умеет брать обычную строку и из нее генерить регулярку?
20 orefkov
 
27.11.12
10:26
(19)
2. Не, не выйдет. Там именно у Евгения сделано, что текст модуля бъется на строки, и регулярка применяется к одной строке текста. Это у него сделано, чтобы вычислять название метода, где сейчас идет поиск. Надо тогда добавлять флажок в настройку "Многострочный поиск", или брать его из свойств регулярки.
21 orefkov
 
27.11.12
10:34
Хотя таки да - если это задача разовая, я бы лучше выгрузил модули в файлы, чем-нибудь (типа VS) заменил во всех файлах, и загрузил обратно.
22 orefkov
 
27.11.12
10:38
(16)
По отдельным строкам - это значит, что искомый шаблон ищется отдельно в каждой одной строке, соответственно, многострочный текст найти не может, даже с регулярками.

Текст пока выделяется в отдельный метод в этом же модуле:
http://www.youtube.com/watch?v=FxkV5ty0KNU
23 orefkov
 
27.11.12
10:54
Ну и кстати, добавлена демка с поддержкой 8.2.16.352, 8.2.16.362
http://snegopat.ru/downloads/snegopat-demo-1112e.zip
Подробнее на http://snegopat.ru/main/wiki?name=Демо-версия
24 pumbaEO
 
27.11.12
11:05
(0) что мешает http://screencast.com/t/N9mUtoNB внешними средствами это сделать...
(13) да в extSearch ищется отдельная строка, просто для многострочных поисков трудно найти правильное представление. Если делать превью многострочной части, тогда в панели результатов поиска может и не поместиться результать хоть одного поиска...
Делать поиск типа http://screencast.com/t/sM0CGjouY , создавать отдельный служебный документ, вывоидть туда результат поиска и навешивать обработчики событий - возможно, но только тогда привязываемся SciColorer8.

Ну а вообще, для задачи из (0) выгрузить в txt , пройтись заменой, загрузить и проверить синтаксис хватит и штатных возможностей 1С.

p.s.: справедливости ради в расширенный поиск я добавил только глобальность и фоновость :), а основные лавры все таки Кунташова.
25 Прохожий
 
27.11.12
11:20
(5) Это я самый эрудированный. Но многие из вас научились читать мои мысли. Не лицензировано!
26 Прохожий
 
27.11.12
11:25
Смотрю я на такие ветки и понимаю, что программисты ещё капризнее бухгалтеров.
27 orefkov
 
27.11.12
11:34
(26)
Не, у нас просто фантазии больше.
28 pumbaEO
 
27.11.12
11:38
(27) + знаем, что их можно реализовать своими руками, но природная лень не дает нам сделать мир идеальным :)
29 orefkov
 
30.11.12
20:22
Добавил многострочный поиск в скрипт extSearch
http://snegopat.ru/forum/viewtopic.php?f=3&t=90&start=180#p3783