Имя: Пароль:
1C
1С v8
Получить текст процедуры
,
0 varyag
 
27.01.15
10:29
День добрый! В общем такая идея - нужно во внешней обработке получить текст процедуры из общего модуля, заменить в нем кое-что и выполнить.. Возможно ли это?
1 Defender aka LINN
 
27.01.15
10:35
(0) Откуда у тебя такие желания взялись?
2 varyag
 
27.01.15
10:40
(1) Да просто есть типовая ЗУП и в ней внешняя печатная форма, там часть кода выполняется как раз в общем модуле. Вот там что-то поменялось, щас переписываю обработку. Вот и захотелось чтобы код динамически менялся, а макет бы подставлялся тот, который я хочу
3 varyag
 
27.01.15
10:42
(1) ну и соответственно стал интересен этот вопрос. Возможно с внедрением расширений это будет неактуально, но сейчас тупо интересно, можно ли как то вывернуться
4 Ёпрст
 
27.01.15
10:46
(3) можно. Переопределить эти процедуры в модуле самой обработки.
5 VladZ
 
27.01.15
10:46
(0) Легко. Ctrl+C,  Ctrl+V. И заменить на нужное.
6 Лефмихалыч
 
27.01.15
10:46
(2) скопируй процедуру в обработку, измени, как хочешь, и вызывай из обработки, а не из общего модуля
7 1976vas
 
27.01.15
10:48
(6) (5) Так не интересно )
8 Defender aka LINN
 
27.01.15
10:49
(6) А где же challange?
9 Лефмихалыч
 
27.01.15
10:51
(8) а challange будет потом, когда все про это забудут и начнут репу чесать, почему в общем модуле одно написано, а печатная форма по-другому печатается. Или, когда придется постоянно допиливать печатную форму при изменениях типового кода
10 VladZ
 
27.01.15
10:53
(7) А ты хочешь вот так:
мояПроцедура = ОбщийМодуль.Функции.НужнаяФункция.ПолучитьТекст();

мояПроцедура.ЗаменитьСтроки(1,100,"//");  закомментили первые 100 строк.

мояПроцедура.Вставить(101,ДопАлгоритмыТекстом);

Выполнить(мояПроцедура);

???
11 1976vas
 
27.01.15
10:54
(10) Я не ТС, но думаю тип того )
12 varyag
 
27.01.15
11:02
(4) , (5) , (6)  Так я так и делаю. Поэтому то как раз и задался таким вопросом. Т.к. скопированная процедура меняется.

(10) да, да
13 varyag
 
27.01.15
11:04
+(12)  СтрЗаменить(ТекстПроцедуры, "ЗаменяемыйТекст",НужныйТекст)
14 VladZ
 
27.01.15
11:05
(12) "(10) да, да" - Не будет такого никогда!
15 Рэйв
 
27.01.15
11:05
(12)>>заменить в нем кое-что и выполнить

Откуда ты знаешь что там "заменить" если "процедура меняется"?

Прокачен блок телепатии?:-)
16 Ёпрст
 
27.01.15
11:06
Такое только в клюшках реализовано
17 VladZ
 
27.01.15
11:08
Ок. Тогда уж вот так сразу:

мойМодуль = Новый Модули();
мойМодуль.СгеренироватьКодСогласноТЗ(аИмяФайлаВордаСодержащееТЗ);

МойМодуль.Выполнить();
18 Рэйв
 
27.01.15
11:09
(17)Дарю

Выполнить(ЛюбойТвойБезумныйКод);
19 Рэйв
 
27.01.15
11:10
(17)Вернее не тебе, а ТС:-)
20 varyag
 
27.01.15
11:16
(18) Так а КодФункции то как получить?
21 varyag
 
27.01.15
11:18
(14) Жаль, чо) Ждем расширений в 1С
22 Рэйв
 
27.01.15
11:25
(20)А код функции копипастом ручками:-)
23 varyag
 
27.01.15
11:31
(22) а смысл? просто чтобы задействовать Выполнить()? Спасибо Кэп:) Ладно всех благодарю, особо и не надеялся
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.