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