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

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

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

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

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

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