Как сформировать строку с выражениями

Статус
Закрыто для дальнейших ответов.

Дайнеко

Well-known member
19.11.2009
951
0
#1
Переискал функции 8-ки, а Шаблона() нетуть! Никто не встречал?

А как-то надо решить задачу расшифровать текст. В 7-ке лихо так было:
Код:
ТекстШаблона = "Ваш долг [Сумма] [Валюта]."
ТекстПримечания = Шаблон(ТекстШаблона);
Подскажите, А?
 

unknown181538

НеГуру
28.12.2008
1 417
0
#2
Никогда не пользовал в 7-ке. А что должно сделаться?

В данном случае можно просто сложить.
И, как я понял, шаблон в чем-то схож с Выполнить() и Вычислить().
 
M

Mirage

#3
Такого нет ничего - но что то простое можно запросто написать.
 

Дайнеко

Well-known member
19.11.2009
951
0
#4
Я так и думал! Нет, я точно знал!
Что мне предложат слепить выражение через плюсики и намекнут, что я не читал про Вычислить() и Формат(). (Выполнить() чуть не стой оперы).

unknown181538! Спасибо за реакцию, но проблема глубжее: я не знаю в момент написания программы, какой текст надо сформировать. Он достается из недр параметров программы (например, в константе, я еще писал во внешнем файле).

Один клиент мне говорит: я набрал сумму, а пусть программа в документе напишет:
"Пож. заплатите долг 500 руб.". Я пишу в константе: "Пож. заплатите долг [Сумма] [Валюта]." Где в скобках известные программе реквизиты документа или переменные.
А в другой базе будет текст: "[Клиент], зараза! Гони бабки [Сумма] и проценты на них [Сумма/100*Штраф]."

Вот так я решаю проблему генерации различных текстов не меняя программу.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#5
А если СтрЗаменить как-нибудь скобки на кавычки и плюсики, а затем вычислить?
 

Дайнеко

Well-known member
19.11.2009
951
0
#6
Да лишне заменять. Саму строку набирает программер-настройщик. Только что не в теле программы, в настройках. Поэтому просто будет набирать кавычками и плюсиками.

Я хотел убедится, что действительно есть такой регресс с функцией. Запись в старом виде намного нагляднее и проще, что даже в обычном модуле от лени писал фразы типа:
Заголовок = Шаблон("[ПарДанные.Клиент] ТН № [ПарДанные.НомерДок] от [ПарДанные.ДатаДок]");
Вывод = Шаблон("Npp1=[НомерСтроки]~Name1=[Сотрудник.Наименование] [Сотрудник.Имя] [Сотрудник.Отчество]~Nch1=[СокрП(Сотрудник.СчетКарт)]~Sum1=[Сумма]");
 

unknown181538

НеГуру
28.12.2008
1 417
0
#7
Можно создать функцию, и поместить в глобальный модуль.
Заголовок = Шаблон("[ПарДанные.Клиент] ТН № [ПарДанные.НомерДок] от [ПарДанные.ДатаДок]");
Вообще-то, действительно попроще писать, чем кучу кавычек. Надо взять на вооружение.
 

vbs

Well-known member
18.02.2007
1 708
1
#8
:) :) С плюсиками-то и кавычками покороче будет

Заголовок = Шаблон("[ПарДанные.Клиент] ТН № [ПарДанные.НомерДок] от [ПарДанные.ДатаДок]");

Заголовок = ПарДанные.Клиент+" ТН №"+ПарДанные.НомерДок+" от "+ПарДанные.ДатаДок;
 

Дайнеко

Well-known member
19.11.2009
951
0
#9
А представьте, что иногда программирую вывод на печать текста договора. Там по всему тексту разбросано пяток цифр. И плюсиками лепить строки целых абзацев никак не радует.

А вообще, я удручен восьмеркой в отношении макетов печати. Писал об этом: http://codeby.net/forum/threads/37922.html
А сегодня обнаружил, что понятие "Шаблон" совсем изничтожено как рудимент.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#10
Да, создавать макеты часто более трудоемко.
Понятие шаблона в какой-то степени сохранилось в макете.

По поводу макетов слышал, что это сделано, чтобы ускорить вывод.
 

vbs

Well-known member
18.02.2007
1 708
1
#11
Дискуссия перевалила далеко за полночь. Неужели многие, подобно мне, не спят до пяти часов ? :)
 
Статус
Закрыто для дальнейших ответов.