Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0
Уважаемые форумчане. Я давно работаю с 1с 7.7 и родился вопрос- есть ли возможность догружать исполняемый код (функции и процедуры) в модуль документов из внешних файлов. И конечно выполнять их после загрузки. Может ктото это знает или есть написанная компонета, что это раелизует. Большое спасибо. Надеюсь на помощь.
На самом деле модуль перед исполнением компилируется. И менять модуль из самого себя без пересоздания экземпляра объекта (перекомпиляции) я думаю нельзя. (Сорри если программерские термины попутал). Но можно менять модуль, потом "переоткрывать" документ - и тогда будет другой модуль.
Внешний модуль можно тянуть штатными средствами или например крутой компонентой "turboMD".
==== А чтобы что-то сгенерировать и выполнить из самого модуля можно передавать контекст в обработку. Модуль которой во внешнем текстовом файле.
Назначение: Переключение загрузки программного модуля на загрузку из текстового файла. Параметры: <ИмяФайла> - имя файла, содержащего исходный текст программного модуля (записывается без кавычек и скобок). Замечание: Конструкция
#ЗагрузитьИзФайла
должна записываться в первой строке программного модуля с первой позиции. Подробнее см. в документации, глава 'Управляющие операторы'
Группа: Пользователи
Сообщений: 24
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(mister-x @ 10.02.11, 13:53)
Із синтакс-помічника:
#ЗагрузитьИзФайла <?>
Синтаксис:
#ЗагрузитьИзФайла <ИмяФайла>
Назначение: Переключение загрузки программного модуля на загрузку из текстового файла. Параметры: <ИмяФайла> - имя файла, содержащего исходный текст программного модуля (записывается без кавычек и скобок). Замечание: Конструкция
#ЗагрузитьИзФайла
должна записываться в первой строке программного модуля с первой позиции. Подробнее см. в документации, глава 'Управляющие операторы'
Насколько я понимаю, в таком случае код выполняется только из файла, а не догружается, как хотел автор первого поста. Поправьте, если ошибаюсь... Интересно попробовать...
Насколько я понимаю, в таком случае код выполняется только из файла, а не догружается, как хотел автор первого поста. Поправьте, если ошибаюсь... Интересно попробовать...
Це директива препроцесору - ось напр., при провірці на синтакс в модулі форми/об'єкту спочатку загружається код из файлу і тоді вже відбуваються провірка на синтаксис (номер стрічки із помилкою шукаємо у зовнішньому файлі, який підгружаємо). В самому зовн. файлі Ви таку провірку не зробите.
Группа: Пользователи
Сообщений: 24
Спасибо сказали: 2 раз
Рейтинг: 0
Сделал маленький эксперимент, результаты рассказываю. Скопировал код модуля формы во внешний файл. При открытии документа считывался и выполнялся код именно из внешнего файла, а код самого модуля не выполнялся. При этом код во внешнем файле можно менять "на лету"... При открытии документа повторно, выполняется уже новый код внешнего файла. У изменении одного реквизита вызывалась процедура. Я удалил эту процедуру во внешнем файле, но оставил её в модуле формы. В результате 1С выдала ошибку, что процедура не найдена, следовательно в таком случае код модуля формы не выполняется, а выполняется только код из внешнего файла. Из вышесказанного следует что нельзя во внешнем файле использовать только часть кода, а нужно в нём располагать весь код модуля.
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Цитата(wasdik @ 10.02.11, 14:37)
Из вышесказанного следует что нельзя во внешнем файле использовать только часть кода, а нужно в нём располагать весь код модуля.
Господа, читайте сообщение 2 от Ardi.
Хотите вписать в модуль нечто, выполняющее наряду с кодом модуля фрагмент динамически изменяемого кода? Почему это не может быть вызов обработки(тот же ПодборНоменклатуры вызывается из нескольких документов)? ЗЫ. Создать/отредактировать текстовый файл программно тоже никто не запрещает)
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!