Имя: Пароль:
1C
 
УниверсальныйОбменДаннымиXML 8.3 Многострочные строки
0 almyaev
 
12.02.15
08:20
Если переносить многострочные строки (с энтерами) с помощью обработки УниверсальныйОбменДаннымиXML, то добавляются лишние переносы строк.
Если выгрузить и загрузить такой реквизит, то каждый перенос строки задвоится. Если посмотреть на уровне котов символов, то при редактировании в поле ввода перенос сохраняется как символ #10, после выгрузки загрузки в ещё добавляется №13. Ещё раз выгрузить, загрузить добавиться ещё #13. Отладка показала что они так читаются при чтении XML, но повторить это просто с помощью ЗаписьXML и ЧтениеXML на простом примере не удалось.

Версия платформы 8.3.5.1443, УниверсальныйОбменДаннымиXML взят из последней БСП 2.2.4.45. Правила обмена сделаны на КД 2.1.8.2

Может кто сталкивался и знает как лечить
1 ShoGUN
 
12.02.15
08:50
(0) Эта проблема не в 1С зародилась:
https://ru.wikipedia.org/wiki/Перевод_строки#.D0.A0.D0.B0.D0.B7.D0.BD.D0.B8.D1.86.D0.B0_.D0.BF.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B9

Могу предложить только заменять обратно при загрузке.
2 almyaev
 
12.02.15
11:03
Но на платформе 8.2 такого не проявлялось. Самое интересное что не понятен механизм появления. Почему только при использовании КД? Сохраняю и читаю xml таким же способом как в УниверсальныйОбменДаннымиXML, не проявляется. Что влияет то?
3 ShoGUN
 
12.02.15
11:55
(2) Надо смотреть обработку выгрузки/загрузки, скорей всего там не в сохранении XML дело, смотри обработку формирования узла в случае типа данных "строка".
4 almyaev
 
12.02.15
12:16
(3) смотрел, при сохранении записывается в xml ййй#10ййй, читается ййй#13#10ййй. Если повторно тот же реквизит выгрузить и загрузить: записывается ййй#13#10ййй, читается ййй#13#13#10ййй. И так далее при каждой записи/чтении добавляется #13.
5 almyaev
 
12.02.15
12:51
Но это проявляется только в УниверсальныйОбменДаннымиXML. Если тоже самое делать с помощью ЗаписьXML и ЧтениеXML (они же используются в УниверсальныйОбменДаннымиXML), то такого (4) эффекта нет.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший