Имя: Пароль:
1C
1С v8
Динамический код
0 Dionis Sergeevich
 
16.07.12
18:53
Вот задался вопросом.. Может ли код изменять код? Стандартных функций в 1с нет, но вот может быть есть другой способ? допустим если я хочу сделать обработку которая при выполнении изменит код в модуле отчета скажем или документа, пользователь отработает с этим скажем документом, все что есть в типовой конфе сохранится в информационную базу, остальное в отдельный файлик со всеми взаимосвязями (чтоб потом можно было восстановить той же обработкой) и при завершении работы приведет конфу к типовой. Задачка интересная =) Это я для себя хочу попробовать сделать. Есть у кого мысли как организовать модификацию кода на этапе исполнения?
1 zling
 
16.07.12
18:54
8.3
2 Steel_Wheel
 
16.07.12
18:55
Выполнить(СтрокаСМоимКодом);
3 el-gamberro
 
16.07.12
18:56
Если задача во внесении изменений в типовую конфу, то лучше использовать ОбработчикиСобытий
4 Kreont
 
16.07.12
18:57
Запросто: один вариант, сохраняй код в текст файл, или куда нибудь в конфу/справочники как текст, открывай и исполняй (ч-з Выполнить(Текст))
5 andrewks
 
16.07.12
18:58
(затягиваясь)  а ещё бы сделать код полиморфным
7 fisher
 
16.07.12
19:00
(6) Он Дионис, а не Денис. Что какбэ намекает на источник вдохновения.
8 Dionis Sergeevich
 
16.07.12
19:01
Выполнить не совсем то что я ищу =))

Код то я и так планирую сохранять. Но вот ссылочку на код из документа передать надо будет. Попробую описать поэтапно как я вижу это =)
1. Обработка создает глобальный модуль, вносит туда функции зараннее заданный или из файлика
2. Раскидываются вызовы этих функций по конфе - допустим по документам, другим глобальным модулям и тд
3. Контроль вводимых пользователем данных - все что не относится к типовой - в файлик
4. Перед закрытием восстанавливаем конфу в первоначальный вид.

при следующем запуске восстанавливаем данные из файлика

в 8.3 если будет это - это будет неплохо =))

Fisher -_- я не пью =) я спаиваю ;)
9 Dionis Sergeevich
 
16.07.12
19:03
создать програмно объект конфы надо и отредакрировать код имеющегося объекта - вот что мне нужно. может как-то добраться можно до средств винды? winapi мб?
10 andrewks
 
16.07.12
19:03
(8) переходи на 7.7 - там это реализовано
11 andrewks
 
16.07.12
19:04
хорошая трава. надо делиться
12 Kreont
 
16.07.12
19:04
(10) 100% решение, на 7-ке там есть загрузка кода из файла, в первой строке как-то там записывалось )
13 rphosts
 
16.07.12
19:10
(8) в 8.3 этого нет...
14 izekia
 
16.07.12
19:12
15 rphosts
 
16.07.12
19:14
(0)
-Можно-ли поставить на комп 2 разных виндовс, например 7 и ХР?
-Да
-А зачем?

Зачем вам динамически модифицировать код?
16 izekia
 
16.07.12
19:14
(15) - (14)
17 rphosts
 
16.07.12
19:18
(14) курите зуп и РегистрыРасчета, к вопросу из (15) это никак неотносится
18 izekia
 
16.07.12
19:24
(17) я это использовал и на моих тестах это работало быстрее
автор правильными вопросами задается
19 izekia
 
16.07.12
19:25
(17) а Вы простите несете какой-то бред уже
20 mkostya
 
16.07.12
19:26
Видел я такую поделку причем работает на 500 пользователей. так вот там код хранить в справочнике Алгоритмы))) И на ходу изменяется и причем это работает))
21 izekia
 
16.07.12
19:32
(20) ну это надо оправдать, не всегда это так
22 jneo
 
17.07.12
02:19
[link]v8: Динамический код
в 1с семерке при дерективе #загрузкитьИзФайла(#LoadFromFile),
файл блокируеться на запись.имхо в 7-ке это Можно сделать только при помощи обработчика простоя ОбработкаОжидания() (IdlePrcessing()) , либо прикрутив свою библиотеку-объект. С 8-кой  хз %)
23 nicxxx
 
17.07.12
02:46
(22) в семерке для этого есть турбомд
24 i_rodionov
 
17.07.12
02:49
(0) (5) Полиморфизм в 1С еще не реализован. Вот когда появится наследование с виртуальными методами - тогда без проблем
25 rphosts
 
17.07.12
04:05
(0) Зачем? Зачем всё это? У 1С есть определённый круг задач который она прекрасно решает, нужен код который постоянно себя переписывает - изучайте асм.
26 VladZ
 
17.07.12
04:55
(0) В 7.7 это есть. Поставь - поиграйся...
И подумай: нахрена тебе это надо...
27 mehfk
 
17.07.12
06:51
(23) А еще там же formex с ДобавитьГлобальныйМодуль
28 Gepard
 
17.07.12
07:50
(8) открой для себя "События"
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший