Имя: Пароль:
1C
1С v8
Передача HTML-текста с сервера на клиент
0 OneMan1
 
10.10.23
17:04
Собственно есть обработка, на форме которой лежит "Поле HTML документа".

Есть метод, который лезет на сервер, получает на нем данные, в т.ч. и строку которая содержит html текст - это Тело email сообщения.
Собираем все это в структуру и радостно отправляем обратно на клиент.

Периодически 1с-ка спотыкается и ругается на "Ошибка разбора XML: -[1,1]".

Я думаю, что это из-за того, что в строке с html текстом может быть куча всякой запрещенки, которую не может передать 1с-ка с сервера на клиент.

Что сделал я: На сервере строку html в ДвоичныеДанные потом в base64 - передал на клиент, там развернул все в обратную.
Пока вроде все работает, для теста нужно время.

Может кто с таким сталкивался уже и я придумываю велосипед?

И как лучше передавать, через хранилище или напрямую?
1 dmt
 
10.10.23
17:12
Если на форме лежит поле ХТМЛ документа, значит оно связано с реквизитом формы типа строка. Значит можно на сервере поместить свой текст хтмл в реквизит формы. Пока непонятно, зачем вручную тащить что-то на клиент.
2 ДедМорроз
 
10.10.23
19:26
Нужно только экранировать специальные символы < и &
3 Волшебник
 
10.10.23
19:28
Данные лучше передавать через сериализованное хранилище значений.

(2) Экранирование что-нибудь испортит.
4 OneMan1
 
11.10.23
08:50
(3) запихать строку в хранилище значений и потом сериализовать его xml (ЗаписатьXML())?
5 OneMan1
 
11.10.23
08:51
или так наверное - СериализаторXDTO.ЗаписатьXDTO(Значение)
6 H A D G E H O G s
 
11.10.23
11:08
В типовых это сделано так

СерверныйМетод(ПолучитьДвоичныеДанныеИзСтроки(СтрокаДанных));

На сервере:
СтрокаДанных=ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные);
7 OneMan1
 
11.10.23
12:18
(6) Отлично, спасибо. Сократил кусок кода )