PORTA.ru - on-line магазин ПОРТАтивной техники.PORTA.ru - on-line магазин ПОРТАтивной техники.

Новости
Мои разработки
FAQ
Ссылки
Форум

Недокументированные возможности функции Шаблон

// Присвоить значение переменной по ее имени.
// в глоб.модуль:
Функция Присвоить(Чему,Что) Экспорт
     Чему = Что;
     Возврат "";
КонецФункции
// варианты вызова:
// Шаблон("[Присвоить("+ИмяПеременной+",ПеременнаяСоЗначением)]");
// Шаблон("[Присвоить("+
ИмяПеременной+","+ИмяПеременнойСоЗначением+")]");
// Пример: пусть у нас на форме есть 5 числовых реквизитов К1, К2, ... К5
Для н=1 по 5 Цикл
     Шаблон("[Присвоить("+("К"+н)+","+(н)+")]");
КонецЦикла;

Если в качестве параметров ф-ии Присвоить() могут передаваться ТаблицаЗначений или СписокЗначений, то нужно её изменить на:
Функция Присвоить(Чему,Что)
     Если Найти(ТипЗначенияСтр(Что),"Значений")>0 Тогда
          Чему=СоздатьОбъект(ТипЗначенияСтр(Что));
          Что.Выгрузить(Чему);
     Иначе
          Чему = Что;
     КонецЕсли;
     Возврат "";
КонецФункции

<сообщил Gosha>


См. также:
19 Будень Dag'a


Попытаюсь обобщить полученную инфу у Dag'a:
Итак:
В глобальном модуле доступны все переменные, функции и реквизиты вызывающей формы!
При этом даже не требуется передавать Контекст формы!

Пример:

// помещаем в глобальный модуль процедуру
//_____________________________________________________________________________
Процедура глТест() Экспорт
     сообщить(Шаблон("[ПеременнаяМодуля]"));      // получаем переменную модуля
     сообщить(Шаблон("[РеквизитФормы]"));           // получаем переменную модуля формы 
     сообщить(Шаблон("[ФункцияМодуля()]"));           // вызываем функцию модуля формы 
КонецПроцедуры //глТест()         

// создадим внешнюю обработку
// не забудьте добавить на форму реквизит "РеквизитФормы" тип "Строка",30
// текст модуля внешней обработки:
Перем ПеременнаяМодуля;
//_____________________________________________________________________________
Функция ФункцияМодуля()
     Сообщить("Сработала функция модуля");
КонецФункции
 
//_____________________________________________________________________________
Процедура Сформировать()
     глТест(); // вызываем глоб процедуру и смотрим ...
КонецПроцедуры
//_____________________________________________________________________________
ПеременнаяМодуля="Это значение ПеременнойМодуля";
РеквизитФормы=
"Это значение РеквизитаФормы";


- Наверх -

В качестве благодарности за решение проблемы, щелкните здесь.
Поддержите развитие сайта.
Спасибо!
Автор и разработчик: Кайгородов Андрей aka mszsuz. mszsuz@online.sinor.ru ICQ#33993114. Дата последнего обновления страницы: Friday 09.04.2004 16:52
1C:TOP-100 Рейтинг ресурсов 1С
Hosted by uCoz