|
v7: OpenXML.dll от x-romix - Кодировка | ☑ | ||
---|---|---|---|---|
0
Palll
12.08.15
✎
15:32
|
Как создать xml файл в кодировке UTF-8 используя OpenXML.dll?
|
|||
1
Ёпрст
12.08.15
✎
15:37
|
задать это в параметрах вестимо
|
|||
2
romix
12.08.15
✎
15:37
|
Вот это, кажется: КодировкаПоУмолчанию
|
|||
3
Palll
12.08.15
✎
15:41
|
(2) пишу
xml.КодировкаПоУмолчанию = "UTF-8"; xml создается в windows-1251. |
|||
4
romix
12.08.15
✎
15:45
|
(3) И правда - нету. В 7-ке было неактуально, в принципе все программы читают кодировку 1251. Она в 2 раза компактнее. :-)
|
|||
5
Palll
12.08.15
✎
15:48
|
(4) Ну, это не моя прихоть. Нужна xml именно в UTF-8. Какую тогда внешнюю компоненту посоветуете? Стандартный парсер не подходит из-за невозможности создания объемного файла.
|
|||
6
romix
12.08.15
✎
15:49
|
У меня там еще есть перекодировщик (запускается без черного консольного окошка).
UTF8_1251.rar (27K) - программа для перекодировки между UTF8 и 1251. http://x-romix.narod.ru/ (перекодирует в обоих направлениях, там их две по-моему). Чтение-запись происходит построчно, т.е. память есть не должно. |
|||
7
Palll
12.08.15
✎
15:52
|
(6) Перекодировщик я видел. Xml будет автоматом отправляться на почту и перекодировать его каждый раз руками не вариант.
|
|||
8
romix
12.08.15
✎
15:52
|
А хм первая строка же будет неправильная.
Я предлагаю забить и выдавать в этой кодировке 1251, кому там еще она не подходит то. Объемный файл будет в 2 раза менее объемным. |
|||
9
romix
12.08.15
✎
15:53
|
Все парсеры же читают 1251, Микрософт точно должна читать.
|
|||
10
Boroda
12.08.15
✎
15:53
|
Вот, нашел у себя одну обработку:
Анализатор = СоздатьОбъект("AddIn.XMLParser"); мЗаписьXML = Анализатор.СоздатьПоследовательноЗаписываемыйДокумент(); мЗаписьXML.ИмяФайла = ИмяФайла; мЗаписьXML.Кодировка = "UTF-8"; мЗаписьXML.ОткрытьЭлемент("INVOICE");//INVOICE |
|||
11
Palll
12.08.15
✎
15:55
|
(9) Я это понимаю. Кодировка UTF-8 требование ТЗ.
|
|||
12
Boroda
12.08.15
✎
15:59
|
Вот еще в просторах интернета нашел: "B_UTF8_3_0.ert"
|
|||
13
romix
12.08.15
✎
15:59
|
(11) Да проигнорировать наверное можно, тем более что в 1С 7.7 кодировка внутри самой системы 8-битная, UTF ничего нового не добавляет.
Еще есть вариант - если какая-то скриптовая компонента (FileSystemObject) позволяет писать текст UTF-8, то ей можно прямо руками создавать теги (они легко создаются) вот по этому образцу: Книга знаний: Чтение и запись текстовых файлов XML средствами 1С:Предприятие 7.7 |
|||
14
romix
12.08.15
✎
16:00
|
Кусок кода начиная со слов
"А теперь приведу пример записи того же самого файла XML." |
|||
15
romix
12.08.15
✎
16:01
|
Память грузить не должно, т.к. пишет строки построчно.
|
|||
16
igork1966
12.08.15
✎
16:01
|
(11) Требование к кодировке файла XML выглядят странно.
|
|||
17
Palll
12.08.15
✎
16:04
|
(10),(13) Буду пробовать.
(16) В этом ТЗ много странных требований, можно конечно подсунуть 1251 и посмотреть что будет . |
|||
18
igork1966
12.08.15
✎
16:08
|
(17) Случайно нет еще: определенный порядок атрибутов... контрольные суммы из содержимого атрибутов (полагаясь на порядок)? => вывод:
Допустили альтернативно разумного до составления ТЗ? |
|||
19
Palll
12.08.15
✎
16:13
|
(18) Есть что-то похожее, особенно удивила система проверки остатков по формуле "НачОстаток + Закупка - Продажа = КонОстаток"
|
|||
20
Palll
12.08.15
✎
16:17
|
(13) В примере есть Процедура xml_ЗаписатьАтрибут, но нет процедуры для присвоения значения атрибуту.
|
|||
21
igork1966
12.08.15
✎
16:20
|
(20) А зачем? ;-0
|
|||
22
Palll
12.08.15
✎
16:22
|
(21) Вот такую конструкцию сделать
<attribute name="distribId">ЦБ00100</attribute> |
|||
23
igork1966
12.08.15
✎
16:25
|
(22) Это не "присвоения значения атрибуту"
Напиши сам, по аналогии это же просто |
|||
24
Serginio1
12.08.15
✎
16:28
|
(0) Если, что то можешь использовать XmlWriter, XmlTextWriter
https://msdn.microsoft.com/ru-ru/library/system.xml.xmlwritersettings.encoding(v=vs.110).aspx NetObjectToIDispatch - Ошибка при вызове конструктора (COMОбъект) |
|||
25
Palll
12.08.15
✎
16:29
|
(23) Лень матушка, быстрее воспользоваться готовым механизмом. Сейчас попробую СоздатьПоследовательноЗаписываемыйДокумент().
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |