helpf.pro
Регистрация
 0 
Распечатать

1С 7.x : Недокументированные возможности функции Шаблон

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

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

В глобальном модуле доступны все переменные, функции и реквизиты вызывающей формы! При этом даже не требуется передавать Контекст формы!
Пример:
Код 1C v 7.x
 // помещаем в глобальный модуль процедуру
//_____________________________________________________________________________
Процедура глТест() Экспорт
сообщить(Шаблон("[ПеременнаяМодуля]")); // получаем переменную модуля
сообщить(Шаблон("[РеквизитФормы]")); // получаем переменную модуля формы
сообщить(Шаблон("[ФункцияМодуля()]")); // вызываем функцию модуля формы
КонецПроцедуры //глТест()

// создадим внешнюю обработку
// не забудьте добавить на форму реквизит "РеквизитФормы" тип "Строка",30
// текст модуля внешней обработки:
Перем ПеременнаяМодуля;
//_____________________________________________________________________________
Функция ФункцияМодуля()
Сообщить("Сработала функция модуля");
КонецФункции
//_____________________________________________________________________________
Процедура Сформировать()
глТест(); // вызываем глоб процедуру и смотрим ...
КонецПроцедуры
//_____________________________________________________________________________
ПеременнаяМодуля="Это значение ПеременнойМодуля";
РеквизитФормы="Это значение РеквизитаФормы";
Разместил:   Версии: | 7.x |  Дата:   Прочитано: 8167
 0 
Распечатать
Возможно, вас также заинтересует
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 2
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р,...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура...
Алгоритм шифрования RC4 0
Для решения некоторых задач, иногда требуется имееть возможность шифровать и дешифровывать, какие-то данные. Но при этом нет возможности использовать стороние внешнии компоненты. Предлагаем пример реализации...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.