![]() |
![]() |
![]() |
|
Подскажите какие-нить функции по парсингу модулей. Может есть коллекции =) | ☑ | ||
---|---|---|---|---|
0
SeiOkami
04.01.13
✎
18:03
|
Могу, конечно, и самому писать, но это безсмысленное занятие, если они есть уже готовые. К примеру, сейчас нужна функция, получающая из текста модуля вызов определенной функции и её параметры.
|
|||
1
zak555
04.01.13
✎
18:04
|
для какой цели ?
|
|||
2
Сергей Д
04.01.13
✎
18:06
|
Есть конфигурация "Автоматизированная проверка конфигураций". Из нее можно выдрать работу с модулями. Если вкратце, то там все модули выгружаются в текстовый файлы (1 модуль - 1 файл), а потом эти файлы обрабатываются. В частности есть там поиск неиспользуемых функций и процедур.
|
|||
3
SeiOkami
04.01.13
✎
18:08
|
(1), Обработку пишу. Для реализации задачи необходимо, чтобы обработка находила вызов процедуры в предоставленном коде, определяла параметры и заполняла всё в ТЧ
(2), Спасибо, сейчас поищу. А есть что-нить ещё? |
|||
4
Сергей Д
04.01.13
✎
18:09
|
(3) Не слышал
|
|||
5
SeiOkami
04.01.13
✎
18:40
|
Полазил и понял, что легче уж самому написать...
|
|||
6
ПТР
04.01.13
✎
19:25
|
Может кто ответит на следующий вопрос:
1.Можно ли и если можно, то как, процедурой открытого приложения выгрузить или загрузить тексты модулей собственной или любой другой конфигурации. Вариант "выгрузки - загрузки" командой из конфигуратора не предлагать. |
|||
7
SeiOkami
04.01.13
✎
19:37
|
(6), сам ооочень долго мучился.
Смотря что тебя интересует. Если именно "конфигурации", т.е. файла-конфигурации, то смотри: http://infostart.ru/public/106310/ (я на чисто для себя сделал простую обработочку для распаковки\упаковки обработок: http://infostart.ru/public/155950/ ) |
|||
8
acsent
04.01.13
✎
19:37
|
goldparser
|
|||
9
SeiOkami
04.01.13
✎
19:38
|
Вот функция, которую искал. Только что написал, может кому пригодится:
//Возвращает массив с параметрами, передаваемыми в функцию\процедуру // //ПРИМЕР: // МассивПараметров = ПолучитьМассивПараметров("Печать(Ссылка, "Счет", КоличествоЭкземпляров, ПолучитьЗаголовокДокумента(Ссылка)); // //В результате получим МассивПараметров с содержимым: // Ссылка // "Счет" // КоличествоЭкземпляров // ПолучитьЗаголовокДокумента(Ссылка) // //SeiOkami 01_04_2012 // Функция ПолучитьМассивПараметров(ТекстВызоваФункции) Экспорт Текст = СокрЛП(ТекстВызоваФункции); МассивПараметров = Новый Массив; Если ПустаяСтрока(Текст) тогда Возврат МассивПараметров ; КонецЕсли; //кр - координата крТочкиСЗапятой = Найти(Текст, ";"); Текст = Лев(Текст, крТочкиСЗапятой - 1); крОткрСкобки = Найти(Текст, "("); Текст = Прав(Текст, СтрДлина(Текст) - крОткрСкобки); Пока НЕ ПустаяСтрока(Текст) цикл крЗапятой = Найти(Текст, ","); крОткрСкобки = Найти(Текст, "("); крЗакрСкобки = Найти(Текст, ")"); Если крЗапятой = 0 и крОткрСкобки = 0 и крЗакрСкобки = 0 тогда Прервать; КонецЕсли; Если крОткрСкобки = 0 тогда Если крЗапятой = 0 тогда Если крЗакрСкобки = 0 тогда Прервать; Иначе Параметр = Лев(Текст, крЗакрСкобки - 1); Текст = Прав(Текст, СтрДлина(Текст) - крЗакрСкобки); КонецЕсли; Иначе Параметр = Лев(Текст, крЗапятой - 1); Текст = Прав(Текст, СтрДлина(Текст) - крЗапятой); КонецЕсли; Иначе Если крОткрСкобки < крЗапятой ИЛИ крЗапятой = 0 тогда Параметр = Лев(Текст, крЗакрСкобки); Текст = Прав(Текст, СтрДлина(Текст) - крЗакрСкобки); Иначе Параметр = Лев(Текст, крЗапятой - 1); Текст = Прав(Текст, СтрДлина(Текст) - крЗапятой); КонецЕсли; КонецЕсли; Параметр = СокрЛП(Параметр); Если Не ПустаяСтрока(Параметр) тогда МассивПараметров.Добавить(Параметр); КонецЕсли; Текст = СокрЛП(Текст); КонецЦикла; Возврат МассивПараметров; КонецФункции |
|||
10
SeiOkami
04.01.13
✎
19:40
|
Вот правильное описание:
//Возвращает массив с параметрами, передаваемыми в функцию\процедуру // //ПРИМЕР: // ТекстВызоваФункции = "Печать(Ссылка, "Счет", КоличествоЭкземпляров, ПолучитьЗаголовокДокумента(Ссылка)"; // МассивПараметров = ПолучитьМассивПараметров(ТекстВызоваФункции); // //В результате получим МассивПараметров с содержимым: // Ссылка // "Счет" // КоличествоЭкземпляров // ПолучитьЗаголовокДокумента(Ссылка) // //SeiOkami 01_04_2012 // |
|||
11
SeiOkami
04.01.13
✎
19:43
|
Может что-то не верно. Тыкните =)
|
|||
12
acsent
04.01.13
✎
19:47
|
перенос строк норм отрабатывает?
|
|||
13
acsent
04.01.13
✎
19:47
|
а строковые литералы с запятыми?
|
|||
14
SeiOkami
04.01.13
✎
19:48
|
(12), должна, так как постоянно СокрЛП делает.
Я тестил на таком вызове УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "АвансовыйОтчет", "Авансовый отчет", СформироватьПечатнуюФормуАвансовогоОтчета(МассивОбъектов, ОбъектыПечати) ); |
|||
15
SeiOkami
04.01.13
✎
19:49
|
(13), не совсем понял, что есть "строковые литералы с запятыми" =)
|
|||
16
hhhh
04.01.13
✎
23:14
|
"Авансовый,, отчет"
|
|||
17
stal76
04.01.13
✎
23:28
|
||||
18
SeiOkami
05.01.13
✎
00:46
|
(17), Спасибо, сейчас поковыряю !)
(16), не понял что это значит |
|||
19
Конфигуратор1с
05.01.13
✎
00:47
|
(18) Если в модуле написано допустим УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм, "АвансовыйОтчет", "Авансовый . , отчет", СформироватьПечатнуюФормуАвансовогоОтчета(МассивОбъектов, ОбъектыПечати) ); |
|||
20
SeiOkami
05.01.13
✎
00:50
|
(19), хм... об этом не подумал. Надо исправить. Спасибо)
|
|||
21
SeiOkami
05.01.13
✎
17:36
|
(8), нашел я goldparser (в инструментах разработчика) и нашел грамматику восьмерки ( http://itland.ru/forum//index.php?showtopic=16752 ).
Может кто подсказать как с ним теперь оперировать? Киньте ссылку где можно почитать, пожалуйста =) |
|||
22
HeroShima
05.01.13
✎
18:05
|
(21) ссенкс за ссыль
|
|||
23
SeiOkami
05.01.13
✎
18:14
|
(22), теперь бы понять как эта dll работает...
|
|||
24
HeroShima
05.01.13
✎
18:26
|
+(22) при регистрации спрашивает: "Это контрольный вопрос против ботов. Введите названия фирмы, продуктам которой посвящен данный форум. Вводите на русском"
- вводил тонну вариантов 1c и ITLand - ничего не берёт. Кто может подсказать чего им нужно? |
|||
25
SeiOkami
05.01.13
✎
18:29
|
(24), я вводил 1с и зарегало.
|
|||
26
HeroShima
05.01.13
✎
18:41
|
(25) никак...
|
|||
27
acsent
05.01.13
✎
18:46
|
(26) по русски/английски?
|
|||
28
HeroShima
05.01.13
✎
18:47
|
||||
29
acsent
05.01.13
✎
18:48
|
(28) да ты робот просто ))
|
|||
30
HeroShima
05.01.13
✎
18:56
|
(29) спасибо на добром слове)
(23) насколько я помню, их движку скармливается скомпилированная их же инструментом грамматика и исходник. На выходе получаем дерево структуры, или около того. |
|||
31
SeiOkami
05.01.13
✎
18:58
|
Если есть у кого код с примером использования, скиньте пожалуйста.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |