Имя: Пароль:
1C
 
СтрШаблон. Не переваривает HTML?
☑
0 Lama12
 
30.10.26
✎
15:41
Платформа 8.5.1.1529.
Вот такой код

Процедура Команда1(Команда)
    А="<div><br>
|<table width=""100%"" rules=""all"" border=""1"">
|<tbody>
|<tr>
|<td height=""'30px'"" style=""text-align: center;""><b>%1</b></td>
|<td height=""'30px'"">
|<div style=""text-align: center;""><b>Сумма в валюте</b></div><b>
|<div style=""text-align: center;""><b>взаиморасчетов</b></div></b></td>
|<td height=""'30px'"" style=""text-align: center;""><b>Валюта</b></td></tr>";
    
    Б = СтрШаблон(А,"Привет");
    В = СтрЗаменить(А,"%1","Привет");
КонецПроцедуры

СтрШаблон выдает ошибку, мол не соблюден синтаксис, причем при выполнении. Не могу понять что не так?
1 Волшебник
 
30.10.26
✎
15:47
Спотыкается здесь: width=""100%""
2 Lama12
 
30.10.26
✎
15:51
Печаль 😢
3 Волшебник
 
30.10.26
✎
15:53
Выделите формирование <tr> в отдельную функцию
4 arsik
 
гуру
30.10.26
✎
16:04
(0) Через стили сделай. Еще и размер уменьшится.
5 Garykom
 
гуру
30.10.26
✎
16:15
(0) Пора начать продавать СП
Если в строке встречается символ % два раза подряд (%%), такая пара трактуется как одинарный процент, независимо от того, стоит ли сразу за ними цифра или не стоит.

В комплекте с ИИ
Для экранирования символа % в функции СтрШаблон() (или StrTemplate()) в 1С используется двойной знак процента — %%
6 Lama12
 
30.10.26
✎
16:21
(5) Читал. В первом случае описание только про два стоящих подряд процента, но ни про что другое. В (0) этого нет.
В справке (не говоря про СП) вообще про экранирование % ничего нет. Есть про ситуацию, когда нужно после % поставить цифру. Но со 100% это опять не тот случай.
7 Garykom
 
гуру
30.10.26
✎
16:47
(6) "Не читал но осуждаю"
"Смотрю в книгу но вижу фигу"

&НаКлиенте
Процедура Команда1(Команда)
	
	СтрокаHMTL = 
	"<div><br>
	|<table width=""100%%"" rules=""all"" border=""1"">
	|<tbody>
	|<tr>
	|<td height=""'30px'"" style=""text-align: center;""><b>%1</b></td>
	|<td height=""'30px'"">
	|<div style=""text-align: center;""><b>Сумма в валюте</b></div><b>
	|<div style=""text-align: center;""><b>взаиморасчетов</b></div></b></td>
	|<td height=""'30px'"" style=""text-align: center;""><b>Валюта</b></td></tr>";
	
	Текст1 = СтрШаблон(СтрокаHMTL,"Привет");
	Сообщить(Текст1);
	
	Текст2 = СтрЗаменить(СтрокаHMTL,"%1","Привет");
	Сообщить(Текст1);
	
КонецПроцедуры

Тебя не смущает удвоение кавычек в строке для экранирования?
Почему простую аналогию не вышло провести?
8 Lama12
 
30.10.26
✎
16:52
(7) 🤔 Таким образом, фразу из СП не воспринимал. Могли бы пример привести. Спасибо.