Имя: Пароль:
1C
1С v8
TXT vs. XML
,
0 sanechichek
 
16.03.12
18:01
1. XML 81% (30)
2. TXT 19% (7)
Всего мнений: 37

Встала задача перед иностранным представительством сделать обмен данными 1с с их системой, то есть они присылают нам некие файлы мы их загружаем у себя, мы им высылаем файлы, они загружают у себя. Собственно, какой формат для этого обмена лучше всего выбрать?
31 VasilyKushnir
 
16.03.12
18:50
+ к 28 Сам использую
1. Для выгрузки в МеДок XML
2. Обмен с некоторыми клиентами MMO или его вариация EXT
3. С другими клиентами ТХТ (зараннее оговоренного вида) или DBF (в некоторых частных случаях применения = самый быстрый, особенно если к ДБФ-у присобачиваю индексный файл).
32 bahmet
 
16.03.12
18:51
(0) обмен чего? одна-две таблицы с простыми типами - TXT
иначе XML.
33 ShoGUN
 
16.03.12
18:54
Однохренственно.
34 Kuein
 
16.03.12
18:54
После нескольких случаев выгрузки контрагентов с непечатаемыми символами в названии (из Excel или с web-сайтов копировали при заведении) - только XML. Он их хоть как-то поедает.

XML
35 sanechichek
 
16.03.12
18:55
(32) обмен документами "поступление товаров и ислуг", а именно таб. частью "Товары"
36 VasilyKushnir
 
16.03.12
18:58
Небольшое пояснение к п.31_3: "ТХТ (зараннее оговоренного вида)" - имеется в виду строго фиксированный текстовый формат, где расписаны форматы как каждой строки так и последовательность строк.
Например:
1-я строка
поз. 1-7 - номер документа
поз. 8-16 дата
и т..д.
37 0xFFFFFF
 
16.03.12
19:04
(8)
"xml гумно жрет гигабайты памяти фстопку негодуэ"
Эксель гумно, жрет память, поэтому рисую таблицы в нотепаде.
Автокад гумно, поэтому проектирую в паинте.
38 0xFFFFFF
 
16.03.12
19:05
XML однозначно рулит
39 0xFFFFFF
 
16.03.12
19:06
да

XML
40 Vladal
 
16.03.12
19:08
(33) Ненаучно выражаешься. ПО-научному "монопенисуально".
41 Vladal
 
16.03.12
19:09
(37) Ну да. А 1С так вообще... на кривых запросах ложит сервер или сама выпадает.
42 ShoGUN
 
16.03.12
19:12
(40) Да изофаллически мне, "однохренственно" или "монопенисуально"...
43 vmv
 
16.03.12
19:12
XML - только потому что стандарт обменов самой 1С

Для своих уникальных обменов есть вагон и маленькая тележка вариантов вне XML

XML
44 Ахиллес
 
16.03.12
19:12
(35) На вопрос "В каком стандарте XML выгружает 1С" надо отвечать - Одинэс настолько крутая программа, что может выгружать в любом стандарте. В том числе и gs1. Пусть от зависти подавятся и не считают тут нас за лохов которые только с текстовыми файлами справится могут.

XML
45 Steel_Wheel
 
16.03.12
19:14
интересно, сможет ли буржуйская прога съексть то, что ей 1с нагенерит в xml. И vice versa (1с-овский xml не все парсеры понимают и в дерево развернуть могут)
46 Ахиллес
 
16.03.12
19:17
(45) Дело не в буржуйской проге, дело в радиусе кривизны рук топикстартера. Яндекс же смог сожрать иксымельку, которую, я ему подсунул и не подавился, хотя изначально 1С об Яндексе ни ухом ни рылом.
47 sanechichek
 
16.03.12
19:28
(45) вот и я подумал что с TXT будет намного проще и меньше рисков, а то сделаю а мне скажут что у них не грузится, в итоге вернемся к TXT, так еще и я буду в этом виноват.
48 vmv
 
16.03.12
19:39
(47) рассуждаешь как дилетант, с буржуями меншь разговоривай - мож накосишь пару сотен пока они не поймут что к чему)
49 zladenuw
 
16.03.12
19:47
(47) так у тебя же есть поля по которым ты должен выгружать.
Сделай более универсальным его, что бы можно было в хмл или в тхт :).

TXT
50 DrShad
 
16.03.12
19:48
фигли тут размышлять

XML
51 Ахиллес
 
16.03.12
19:56
http://www.gs1.org/ecom/xml Оно?
(47) Будь мужиком, блеать, сделай по человечески! Пусть буржуи описание стандарта скинут и всё. Ты же только табличную часть товаров передавать будешь, там всего то несколько полей, чё ты ссышь так.
52 AlexNew
 
16.03.12
20:24
(0) А чего не печатные копии? Проверять ту ли тебе txt прислали, тоже прикольно, а тупые xml схемы, чтобы код не писать - ацтой!
53 MRAK
 
16.03.12
21:11
(0) похрен
54 mkostya
 
16.03.12
21:20
не так давно сам стал делать

XML
55 siggoron
 
16.03.12
21:33
xml

XML
56 jsmith
 
16.03.12
21:46
иностранное или межпланетное? они по-моему грузят в XRVGTYUIOSD
57 cons74
 
16.03.12
21:59
ТС, тут ответа не дождешься, тем более с голосовалкой.
Каждый любит свои сигареты...
58 Steel_Wheel
 
16.03.12
22:15
тут дело в том, что
1. Структурированные данные удобнее обрабатывать XML
2. Чтение/ЗаписьXML генерят XML с тегами укороченной формы. Косяк (хотя фиг знает -- возможен ли) может быть в том, если буржуинам понадобятся непременно теги полной формы. Тогда XML надо будет генерить через простые текстовые файлы. Что уже сложнее, чем текстовый обмен
59 Steel_Wheel
 
16.03.12
22:17
Почему я так волнуюсь за буржуйскую прогу? Потому что 1с-ники бесплатны по сравнению с буржуями, и всю работу будет делать ТС. А некоторые файлы, которые генерит 1с через XML-запись НЕ открываются парсерами XML. Возможно, парсеры кривые... но проблема только с xml от 1с возникает, хотя и не всегда
60 ShoGUN
 
16.03.12
22:19
(58) За XML, генеренный через текст надо руки отрывать. Валидатор охреневать будет местами, и парсер вслед за ним.
61 milan
 
16.03.12
22:19
(59)  пример файла в студию
62 andrewks
 
16.03.12
22:20
(8) ну, никто не заставляет юзать ДОМ-модель
63 andrewks
 
16.03.12
22:22
(60) XML суть текст. а руки надо отрывать горе-писателям, которые не в состоянии сгенерить валидный хмл
64 artems
 
16.03.12
22:24
Проще так

XML
65 ShoGUN
 
16.03.12
22:24
(63) Чтобы сгенерить валидный XML в общем случае - надо учесть все нюансы и фактически написать абсолютно стандартные вещи заново.
66 andrewks
 
16.03.12
22:26
(65) дануна! и что же такого придётся писать? пару-тройку функций на 20-30 строк? экая задача
67 Steel_Wheel
 
16.03.12
22:26
(61) Это было около 3-ех лет назад. Из КД-2. Пробовал микрософтовским парсером, он выдал попап, что может открыть только как plain-текст.... не сохранился, к сожалению. Но случай запомнился
68 andrewks
 
16.03.12
22:27
(67) версия парсера, поди, 3-я была?
69 Steel_Wheel
 
16.03.12
22:28
(68) Я и не помню... оно в браузер встроено было, в ослик 6-ой
70 Steel_Wheel
 
16.03.12
22:30
Хотя, файлы xml обмена с логистикой акселотовской открывались нормально с сохранением структуры.

В чем дело -- не знаю, просто эту неприятную возможность я отметил
71 ShoGUN
 
16.03.12
22:30
(66) Я тоже так думаю. Но на практике, если уж генеришь XML как сырой текст - то хоть через валидатор пропусти после этого...
72 andrewks
 
16.03.12
22:31
(71) ну, это без базара. две лишних строчки в коде не помешают
73 andrewks
 
16.03.12
22:34
+(72) но после отладки их лучше убрать, ибо, если использовать их в повседневке, то смысл прямой записи хмл теряется
74 milan
 
16.03.12
22:38
(66) Хочешь сказать что твои строчки запишут хмл валиднее чем годами оттестированные библиотеки?

TXT
75 VasilyKushnir
 
16.03.12
22:39
(74) Библиотеки тоже люди писали...
76 andrewks
 
16.03.12
22:39
(74) посмотрю я на тебя, что ты будешь делать, когда годами оттестированные библиотеки отожрут всю память и вывалятся на самом интересном месте
77 Fragster
 
гуру
16.03.12
22:58
+ xsd

XML
78 SerMaxim
 
16.03.12
23:18
Аминь

XML
79 Лефмихалыч
 
16.03.12
23:19
чо тут думать?..

XML
80 Капитан Смоллет
 
16.03.12
23:27
(0) Чего тут думать? Если кодировка UTF-8 для простых типов данных - формат TXT. Если структурированные данные - XML.

XML
81 sanechichek
 
16.03.12
23:54
Всем спасибо за советы!
82 Kuzen
 
17.03.12
00:25
У xml есть символы которые 1с не читает и сваливается по ошибке к примеру "&". Делал обмен с интернет магазином столкнулся с таким.
83 Эмбеддер
 
17.03.12
07:18
(82) &amp
84 Sammo
 
17.03.12
08:27
Сделать схему и сообщения валидировать перед отправкой.

XML
85 Маленький Вопросик
 
17.03.12
08:35
У меня уже давно алгоритмы написаны чтения/записи XML или TXT - зачем такое обсуждать? Берешь, пользуешься.
В XML можно хранить несколько табличных частей...

XML
86 andrewks
 
17.03.12
09:08
(82) спасибо, поржал
87 experimentator76
 
17.03.12
09:34
XML - это все-таки стандарт

XML
88 ptrtss
 
17.03.12
10:09
Текстовый формат, разработанный под конкретные обменивающиеся системы может в десятки раз более экономичным, но требует некоторого времени на разработку и эксплуатационное тестирование (коллектив, готовься к глюкам то там то здесь, если по русски). С XML всем работать легче, но долго, и память жрет. Выбирайте что критичнее

Плюс, для определенных объемов передаваемых данных XML в принципе не подходит

TXT
89 bodri
 
17.03.12
10:31
CSV - там разделение вроде как ";"
и он открывается в екселе
и в итоге получается, что-то типа ДБФ
приходилось как-то для САПа делать.

TXT
90 bodri
 
17.03.12
10:33
(89) wiki:CSV
91 Упанишады
 
17.03.12
10:39
Фактический стандарт для 1С.

XML
92 Упанишады
 
17.03.12
10:39
(91)+ Отточишь навыки.
93 andrewks
 
17.03.12
10:49
(88) "Плюс, для определенных объемов передаваемых данных XML в принципе не подходит"  мягко говоря, неправда
94 Torquader
 
17.03.12
11:46
Начнём с того, что xml - это один из вариантов текстового файла, так как там внутри текст, только специально структурированный. Проблема в xml в том, что записывается очень много лишней информации, так как название каждого поля объекта пишется так, как оно указано.
Кажущая простота парсинга xml-файла упирается в то, что есть готовые парсеры, которые чаще всего загружают весь файл в память и там его разбирают, что иногда кончается нехваткой памяти. При изменении структуры xml-файла придётся также править программу, как и в случае с txt-файлами, а может быть, даже и больше.
Также для xml-файла оказывается смертельной вложенность другого файла во внутрь, так как может просто произойти нарушение дерева xml из-за одинаковых объектов.
Для txt-файла есть большая свобода размещения данных, а также возможность использования, например, php-сериализации, когда можно складывать ссылки между объектами, что напрямую в xml-файле не поддерживается.

Некоторые системы умеют выгружать xml-файлы, но половина свойств объектов оказывается в параметрах тега объекта, а другие - во вложенных тегах - сиё определяет выгружающая программа. А вот при "кормлении" 1С такими файлами возникает проблема, так как нужно точно и ясно оговаривать что и где будет.

В случае применения экранирования символов можно избежать наложения символов внутри блока данных с символами разделения блоков.

Построчное чтение txt-файла оказывается быстрее, чем чтение xml-файла.

TXT
95 zak555
 
17.03.12
11:50
(94) > есть готовые парсеры, которые чаще всего загружают весь файл в память и там его разбирают


не все же сразу в память
96 Torquader
 
17.03.12
12:04
(95) Дерево объектов строится в памяти - поэтому, файл чаще всего или целиком в памяти или читается много раз по кусочкам (что даже медленнее, чем файл в памяти).
97 Wern
 
17.03.12
12:31
Последовательное чтение хмл никто не отменял. Можно хоть по одной записи выдергивать если есть желание.
98 AlexNew
 
17.03.12
13:11
Настаиваю опять, только печатные копии и проверять руками структуру, каждый раз, или валиться по ошибке, если не та, или фигню в базу напихать! Адназначна (с).
99 SiAl-chel
 
17.03.12
14:05
ИМХО

XML
100 Упанишады
 
17.03.12
14:51
(100)
101 Dethmont
 
17.03.12
15:32
XML с использованием фабрикиXDTO

XML
102 AlexNew
 
17.03.12
15:38
(101) На больших файлах - нет!
103 Господин ПЖ
 
17.03.12
15:39
тупая ветка... пока нет внятных требований к носителю - все выборы бессмысленны
104 opty
 
17.03.12
15:41
(103) Угу
И вроде не раз обсуждали уже , например
Обмен в формате XML, DBF, TXT?
105 Злопчинский
 
17.03.12
15:45
Все равно - большую часть кода что в тексте, что в иксемеле  занимает не чтение и разбор данных а распихивание ппрочитанного по нужным местам/объектам - поэтому, в общем по барабану. иксемель может быть чуток понятнее за счет наличия тегов/атрибутов - ДА И ТО, В РЕДКИХ СЛУЧАЯХ. ну а так как периодически случается невозможность работы парсера - то приходится извращаться.. Текст - прочитается всегда.
.
так что - текст...
106 AlexNew
 
17.03.12
15:52
(105) Предлагаю и всякие SQL отменить, они ж на дисках хранятся.
107 Злопчинский
 
17.03.12
15:54
(106) а фигли делать.. грузиишь например v7+ - 1ска падает... и вместо того, чтобы грузить данные - кучу времени убиваешь на поиски бодяги...
.
хотя мну пофиг.. обменов у меня мало - что наружу что внуть - отдам/загружу в каком надо формате...
все равно - что под каждый текстовик, что под каждый иксемель - писать свою загрузку данных...
108 Kuzen
 
19.03.12
22:43
(83) И что это?
(86) Смари не абассыся от смеха.

Как передать наименование товара которое содержит данный символ к примеру "проктер & гэмбэл"
109 Kuzen
 
19.03.12
23:05
(86) Дерзай http://zalil.ru/32909240

   ЧтениеXML = Новый ЧтениеXML;
   ЧтениеXML.ОткрытьФайл("c:/1.xml");
   Пока ЧтениеXML.Прочитать() Цикл
   // Обработка узла XML
   КонецЦикла;
110 serffer
 
19.03.12
23:18
мой опыт говорит, что если вам сказали выбрать формат, то потом вы еще долго будете утверждать формат,содержание, структуру

XML
111 serffer
 
19.03.12
23:24
сейчас выбираете формат.
потом наверняка будете утрясать содержание, состав, структуру обмена.
иногда бывают и случаи когда "нужно было вчера".
ТХТ придется переделывать на отдельном, более низком уровне логики. я бы не связывался. боюсь "бессонных ночей".

XML
112 Balabass
 
20.03.12
01:10
Голосую за:

TXT
113 Balabass
 
20.03.12
01:11
+ Сам разрабатываешь структуру файла. Используешь спец знаки в строке.
Потом разбираешь строку по этим знакам и получаешь все что необходимо.
116 Kuzen
 
20.03.12
08:29
(109) Ну где же дерзкий чел из (89)?
117 Адинэснег
 
20.03.12
08:34
3. Вэб-сервис
118 badboychik
 
20.03.12
08:38
3. JSON
4. YAML
119 Злопчинский
 
20.03.12
08:48
(114) а как делсть схему?
120 Kuzen
 
20.03.12
09:01
(86) ANDREWKS ответь на (109)
121 stix2010
 
20.03.12
09:11
объемы данных не указаны

XML
122 stix2010
 
20.03.12
09:12
в голосовалке нет кг/ам
123 _Atilla
 
20.03.12
09:28
(121) Согласен.

XML
124 х86
 
20.03.12
09:35
имхо проще

XML
127 pumbaEO
 
20.03.12
11:51
(125) у тебя не валидный xml, это тоже самое что в dbf запишешь в заголовок мусор всякий, а потом жалуешься, что не открывает.  http://screencast.com/t/05jb8LDWeqO
128 Kreont
 
20.03.12
11:53
Без вариантов, сам боялся, но уже теперь нравиться после N-выгрузок/загрузок в налоговую :)))

Насчет спец.символов, учите мат.часть ХМЛ-а:
& ==== &

XML
129 andrewks
 
20.03.12
11:57
(120) почитай-ка здесь: wiki:XML, раздел "Спецсимволы"
130 DMLangepas
 
20.03.12
12:01
привычно да и лучше

XML
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс