В процессе программирования в 1С порою возникает необходимость выполнять модуль с измененным кодом не пере открывая формы. Например, часть вычислений мы уже сделали если мы закроем форму, то потеряем эти вычисления...
Поэтому хотелось бы менять код, и тут же, нажав на кнопку, получать новую реакцию ...
Конечно, тот кто знает про выполняемый модуль ... скажет это сделать легко ...
Да это сделать действительно так ...
Нам нужно просто вставить в нашу процедуру код:
Перем Путь,ИмяФайла;РасположениеФайла (Путь,ИмяФайла);//НеВключатьВМодуль
ФайлERT=Путь+ИмяФайла;//НеВключатьВМодуль
СписокПараметров=СоздатьОбъект"СписокЗначений");//НеВключатьВМодуль
СписокПараметров.ДобавитьЗначение(х);//НеВключатьВМодуль
Результат=глВыполнитьМодульФайлERT,"Пример",СписокПараметров);//НеВключатьВМодуль
Возврат Результат;//НеВключатьВМодуль
и все.
Здесь "пример" это название нашей процедуру
глВыполнитьМодуль - вспомогательная функция, которая и выполняет наш модуль.
СписокПараметров- список значений параметров нашей функции.
В случае текстового файла (на пример для турбо Мд ).
вставка примет вид:
СписокПараметров=СоздатьОбъект("СписокЗначений");//НеВключатьВМодуль
СписокПараметров.ДобавитьЗначение(z); //НеВключатьВМодуль
Результат=глВыполнитьМодуль("D:\Bazi\1SBDemo\unpack\Журнал\Общий\Форма\ФормаСписка\Модуль.txt",
"Пример3",СписокПараметров);Возврат; //НеВключатьВМодуль
Предполагается, что библиотека 1Cpp уже загружена, или может быть загружена(то есть она есть в системе).
Возможно, аналогичного результата легко добиться другими способами, если это так, прошу показать как.
В случае возникновения ошибок пишите постараюсь исправить.
Для упрощения ввода вышеописанных строк сделаны два скрипта для быстрой вставки и удаления перезагрузки.
В дальнейшем возможен скрипт для массовой перезагрузки (сразу для всех процедур модуля).
Таким образом вся операция перезагрузки после введения нужных процедур в глобальный модуль сведется к нажатию двух комбинаций.