| 
    
            
         
         | 
    
    
  | 
Странный xml файл | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        shira84    
     07.06.24 
            ✎
    10:22 
 | 
         
        Какой-то странный файл получаю на выходе из тсд, хочу товары загрузить в 1С, но естественно он не читается никак. Пробелы (скорее всего даже спецсимволы) почему-то после каждой буквы. Может кто-то подскажет что с ним можно сделать? Пример файла:
 
        < ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 8 " ? > < T a b l e D o c u m e n t I d = " 2 8 9 9 9 c e 4 - f 8 d a - 1 1 e e - a 1 c 4 - 0 0 1 5 5 d 7 5 9 a 5 4 " D o c u m e n t N a m e = " =25=B0@870F8O !, , #0 0 - 0 0 0 0 0 1 >B 2 8 . 0 5 . 2 4 " D o c u m e n t T y p e = " =25=B0@870F8O!" > < R e c o r d B a r C o d e B a s e 6 4 = " M j A 4 M T A 0 N z U 3 O D U x N A = = " N a m e = " @>5:B>@ B e n Q W 6 0 0 8=2: 1 1 0 1 3 4 0 5 0 0 0 0 1 " A r t i c l e = " " U n i t O f M e a s u r e m e n t = " " C h a r a c t e r i s t i c O f N o m e n c l a t u r e = " " S e r i e s O f N o m e n c l a t u r e = " " B a r C o d e S e r i e s O f N o m e n c l a t u r e = " " N u m b e r O f B a r C o d e s = " 1 " Q u a n t i t y = " 1 " / > < / T a b l e >  | 
|||
| 
    1
    
        Тихий омут    
     07.06.24 
            ✎
    10:29 
 | 
         
        BOM в начале файла есть?     
         | 
|||
| 
    2
    
        steep1    
     07.06.24 
            ✎
    10:30 
 | 
         
        (0) двойные кавычки, открывайте сначало файл как текстовый документ вносите правки и потом только открывайте как хмл     
         | 
|||
| 
    3
    
        Мультук    
     гуру 
    07.06.24 
            ✎
    10:37 
 | 
         
        (0) 
 
        P.S. Да, время бежит. hex-коды, Hiew, Far: F3 а потом F4 Кодировки, перекодировщики. Строка by default уже набор символов, а не байтов.  | 
|||
| 
    4
    
        shira84    
     07.06.24 
            ✎
    10:41 
 | 
         
        (2) пробовал СтрНайти() СтрЗаменить() бесполезны, т.к. там какието неведомые спецсимволы а не пробелы     
         | 
|||
| 
    5
    
        Chai Nic    
     07.06.24 
            ✎
    10:42 
 | 
         
        Выложите лучше этот xml в виде файла. А то гадать, что изначально в файле, а что нафантазировал движок форума, неблагодарное дело..     
         | 
|||
| 
    6
    
        Тихий омут    
     07.06.24 
            ✎
    10:45 
 | 
         
        (4) Проверь в начале файла любым hex редактором наличие трёх байт - EF BB BF. Если их нет - добавь     
         | 
|||
| 
    7
    
        shira84    
     07.06.24 
            ✎
    10:53 
 | 
         
        вот сам файл https://disk.yandex.ru/d/p6jcZt52fuB9VA     
         | 
|||
| 
    8
    
        shira84    
     07.06.24 
            ✎
    10:55 
 | 
         
        (6) присутствуют     
         | 
|||
| 
    9
    
        shira84    
     07.06.24 
            ✎
    11:05 
 | 
         
        ЧтениеТекста в кодировке UTF-16 более менее нормально сработало, куча иероглифов конечно, но хоть позволяет работать как со строкой. Мне по сути штрихкод оттуда нужен и количество.     
         | 
|||
| 
    10
    
        Лирик    
     07.06.24 
            ✎
    11:13 
 | 
         
        Такое ощущение что либо ТСД либо драйвер либо обработчик получает данные в виде массива символов и "собирает" их в строку с разделителем который "скорее всего даже спецсимволы". Копайте от настроек ТСД. Можно попробовать сбросить до заводских настроек.     
         | 
|||
| 
    11
    
        Chai Nic    
     07.06.24 
            ✎
    11:17 
 | 
         
        Да, похоже что реально там UTF16 LE, а в теге encoding указано неверное значение UTF-8. Поэтому его и не открывает парсер нормально.     
         | 
|||
| 
    12
    
        Тихий омут    
     07.06.24 
            ✎
    11:18 
 | 
         
        Действительно странный файл. Поставил BOM от UTF16LE - часть файла стала читаемой, часть - превратилась в хз что... Как будто там куски в разных кодировках     
         | 
|||
| 
    13
    
        Djelf    
     07.06.24 
            ✎
    11:40 
 | 
         
        Декодированный
 
        <?xml version="1.0" encoding="UTF-8"?> <Table DocumentId="28999ce4-f8da-11ee-a1c4-00155d759a54" DocumentName="Инвентаризация ОС, НМА, НПА БУ00-000001 от 28.05.24" DocumentType="ИнвентаризацияОС"> <Record BarCodeBase64="NDYwMTU0NjA4MDg3NQ==" Name="Компьютер ACER (комплект) инв:1101340300001" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="1" Quantity="1"/> <Record BarCodeBase64="MjA4MTA0NzU3ODUzOA==" Name="Компьютер ACER (комплект) инв:1101340300002" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="0" Quantity="0"/> <Record BarCodeBase64="MjA4MTA0NzU3ODUyMQ==" Name="Компьютер ACER (комплект) инв:1101340300003" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="0" Quantity="0"/> <Record BarCodeBase64="MjA4MTA0NzU3ODUxNA==" Name="Проектор BenQ W600 инв:1101340500001" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="1" Quantity="1"/> </Table>  | 
|||
| 
    14
    
        Тихий омут    
     07.06.24 
            ✎
    11:44 
 | 
         
        (13) Респект👍. Поделитесь секретом     
         | 
|||
| 
    15
    
        shira84    
     07.06.24 
            ✎
    11:52 
 | 
         
        (13) как? Средствами 1С это можно как-то программно сделать?     
         | 
|||
| 
    16
    
        Тихий омут    
     07.06.24 
            ✎
    11:56 
 | 
         
        (15) Похоже, там кривые переносы строк - 0d 0a 00. Ну или не кривые, а в формате, мне ещё неизвестном. Первое, что в голову приходит - побайтовый разбор файла и исправление этой бурды с переносами, но надо пробовать     
         | 
|||
| 
    17
    
        trad    
     07.06.24 
            ✎
    11:59 
 | 
         
        (14) (15) как выше сказано там BOM UTF-8, хотя реально UTF-16 причем перемешано BE и LE. Перенос строк - однобайтовый. Франкенштейн.
 
        Руками надо байты туда сюда подвигать  | 
|||
| 
    18
    
        trad    
     07.06.24 
            ✎
    12:00 
 | 
         
        Попытаться поправить источник такого файла     
         | 
|||
| 
    19
    
        trad    
     07.06.24 
            ✎
    12:13 
 | 
         
        (15) в начале EF BB BF заменить на FF FE
 
        далее 0D 0A заменить на 0D 00 0A https://www.dropbox.com/scl/fi/240i65osmjdp1g94kiift/TSDData.xml  | 
|||
| 
    20
    
        Djelf    
     07.06.24 
            ✎
    12:07 
 | 
         
        Штирлицом:
 
        wiki:Штирлиц_(программа) https://www.softportal.com/software-3560-shtirlits.html Кодировка вроде UTF-16 LE, но действительно дебильная. Перед "<" в самом начале нет 0x00, переносы строк пишутся как 0x00 0x0D 0x0A, а в этой кодировке должны быть 0x00 0x0D 0x00 0x0A  | 
|||
| 
    21
    
        Garykom    
     гуру 
    07.06.24 
            ✎
    12:11 
 | 
         
        (0) Что за ТСД такое выдает?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |