|
Существуют ли задачи в которых не обойтись без XDTO-пакетов ? | ☑ | ||
---|---|---|---|---|
0
vi0
27.02.17
✎
12:18
|
Собственно, вопрос в заголовке.
Что это за задачи? |
|||
1
Fragster
гуру
27.02.17
✎
12:26
|
нет таких задач. но с пакетами лучше.
|
|||
2
Вафель
27.02.17
✎
12:34
|
обмен через кд3
|
|||
3
DrShad
27.02.17
✎
12:37
|
(1) +1
|
|||
4
Dotoshin
27.02.17
✎
12:38
|
(0) Если не секрет, откуда такой вопрос возник?
|
|||
5
vi0
27.02.17
✎
13:35
|
имею ввиду свои пакеты, не встроенные
|
|||
6
vi0
27.02.17
✎
13:37
|
(4) назрел
|
|||
7
Cyberhawk
27.02.17
✎
13:37
|
Смотря чего на вход ожидает другая сторона, либо чего она выплевывает. Сделать или распарсить текстовый файлик требуемой структуры можно и без ХДТО, так что ответ "Нет"
|
|||
8
vi0
27.02.17
✎
13:39
|
(7) если обе стороны 1с то и парсить не нужно
|
|||
9
DrShad
27.02.17
✎
13:40
|
(8) а если это разные 1С?
|
|||
10
vi0
27.02.17
✎
13:41
|
(9) это какие разные?
|
|||
11
vi0
27.02.17
✎
13:45
|
(2) согласен, но кд3 это уже прикладная задача
т.е. там по умолчанию используется пакет |
|||
12
h-sp
27.02.17
✎
13:47
|
(10) ну допустим спец с африки написал программу, ты ее используешь. Как ты узнаешь параметры, которрые передавать на вход? из XDTO-пакета. Незаменимая вещь.
|
|||
13
vi0
27.02.17
✎
13:55
|
(12) а конкретнее, в чем проблема?
ты же не будешь использовать веб-сервис, заведомо не зная его параметров? |
|||
14
Вафель
27.02.17
✎
14:30
|
(11) Если с 0 писать то можно любой обмен через текстовый файлы написать. хоть это будет и позороное решение, но без всяких пакетов
|
|||
15
Fragster
гуру
27.02.17
✎
14:35
|
(13) по сути XDTO пакет - это хранилище схем XSD. для работы с таможней у меня используется макет с зип архивом, в котором лежит набор схем. потому что грузить в программу 400 пакетов - нецелесообразно. Но сериализатором всё равно пользуюсь, как и с пакетами.
|
|||
16
Fragster
гуру
27.02.17
✎
14:35
|
||||
17
vi0
27.02.17
✎
15:45
|
(14) все таки, у меня конкретный вопрос в (0)
|
|||
18
vi0
27.02.17
✎
15:48
|
(15) можешь привести пример, как используешь одну из этих схем?
|
|||
19
vi0
27.02.17
✎
15:50
|
(4) а если точнее, то нужно понять, где при разработке использовать пакеты однозначно, а где можно обойтись и без них
|
|||
20
Fragster
гуру
27.02.17
✎
16:38
|
(18) когда загружаю в базу XMLки из таможенной программы. когда формат меняется - сразу узнаю - перестает загружаться :)
|
|||
21
Fragster
гуру
27.02.17
✎
16:39
|
Функция ПолучитьФабрику(ИмяМакета = "Schemas_out_5_9_0") Экспорт
ДанныеМакета = ПолучитьМакет(ИмяМакета); ИмяВременногоФайла = ПолучитьИмяВременногоФайла("zip"); ДанныеМакета.Записать(ИмяВременногоФайла); Чтение = Новый ЧтениеZipФайла(ИмяВременногоФайла); ИмяВременногоКаталога = ПолучитьИмяВременногоФайла(""); СоздатьКаталог(ИмяВременногоКаталога); Чтение.ИзвлечьВсе(ИмяВременногоКаталога, РежимВосстановленияПутейФайловZIP.НеВосстанавливать); Файлы = НайтиФайлы(ИмяВременногоКаталога, "*.xsd", Истина); МассивСхем = Новый Массив(); Для каждого Файл Из Файлы Цикл МассивСхем.Добавить(Файл.ПолноеИмя); КонецЦикла; Фабрика = СоздатьФабрикуXDTO(МассивСхем); УдалитьФайлы(ИмяВременногоФайла); УдалитьФайлы(ИмяВременногоКаталога); Возврат Фабрика; КонецФункции |
|||
22
vi0
27.02.17
✎
16:51
|
(21) это ты получил
а используешь как/для чего? |
|||
23
Fragster
гуру
27.02.17
✎
16:54
|
(22) Фабрика.ПрочитатьXML и далее работаю с объектомXDTO
|
|||
24
vi0
27.02.17
✎
17:01
|
(23) понятно
значит в данном случае ответ на мой вопрос будет такой: и здесь можно было бы обойтись без пакетов, но грех не использовать их, т.к. поставщих xml предоставляет и схемы xsd |
|||
25
Serginio1
27.02.17
✎
17:12
|
(24) С пакетами проще в том, что типы данных такие как прописаны в пакете. Иначе все строки.
Кроме того нужен определенный формат при выгрузке сторонним организациям или при обмене между конфигурациями |
|||
26
vi0
27.02.17
✎
17:15
|
(25) в первом случае, все таки, не однозначно
если говорить, можно обмениваться сериализованными коллекциями, к примеру СериализаторXDTO.ЗаписатьXDTO(Новый ТаблицаЗначений). |
|||
27
vi0
27.02.17
✎
17:16
|
(25) + но в случае с примером (21) согласен - пакет устанавливает типы
|
|||
28
Fragster
гуру
27.02.17
✎
17:22
|
(25) да, гуиды - гуиды, числа - числа, булево - булево, даты - даты. нет гемора с "списокXDTO/объектXDTO/пусто"
|
|||
29
Fragster
гуру
27.02.17
✎
17:23
|
(26) такая запись будет работать, но про самодокументируемость я уже писал.
|
|||
30
Fragster
гуру
27.02.17
✎
17:24
|
это как делать документ документ с реквизитами "реквизит1...n" с типом "типвсессылки+строка+дата+будево+число"
|
|||
31
Вафель
27.02.17
✎
17:25
|
если только читать то можно и без схем
|
|||
32
Fragster
гуру
27.02.17
✎
17:28
|
(31) даты/числа/списки не западло разбирать?
|
|||
33
vi0
27.02.17
✎
17:29
|
(30) почему так?
конкретно почему "реквизит1.." ? |
|||
34
Вафель
27.02.17
✎
17:29
|
(32) Пишешь
Док.Реквизит = вЧисло(Объект.Парам) |
|||
35
Вафель
27.02.17
✎
17:30
|
У этого подхода есть плюс: не нужно следить за актуальностью и валидностью схемы
|
|||
36
Fragster
гуру
27.02.17
✎
17:30
|
(34) и так - для каждого реквизита...
|
|||
37
Fragster
гуру
27.02.17
✎
17:31
|
а для списков - проверяешь наличие , проверяешь тип, если список - то обходишь, если объект - напрямую заполняешь...
|
|||
38
Fragster
гуру
27.02.17
✎
17:32
|
(33) потому что "плюс" (35) еще и "минус"
|
|||
39
Вафель
27.02.17
✎
17:32
|
(37) Для списков
Список = получитьСписок(Объект.ПараметрМожетБытьСписок) Для каждого Элемент из Список |
|||
40
Вафель
27.02.17
✎
17:33
|
(38) не на много сложней
|
|||
41
vi0
27.02.17
✎
17:33
|
(38) я не понял твоего комментария в (30)
|
|||
42
vi0
27.02.17
✎
17:33
|
про "реквизит"
|
|||
43
Fragster
гуру
27.02.17
✎
17:34
|
(39) и получаем при пустом списке ошибку.
|
|||
44
Вафель
27.02.17
✎
17:34
|
Если схему предоставляют, то грех ей не воспользоваться.
А если нет, то я бы сам ее делать не стал |
|||
45
Вафель
27.02.17
✎
17:35
|
(43) Список = получитьСписок(Объект, "ПараметрМожетБытьСписок")
|
|||
46
Вафель
27.02.17
✎
17:35
|
Ибо апдейт схемы - это тот еще гемор
|
|||
47
Fragster
гуру
27.02.17
✎
17:36
|
(45) -> (1)
|
|||
48
Fragster
гуру
27.02.17
✎
17:36
|
(46) в чем там гемор? не нравится хранить в конфе, храни в справочнике/константе/РС/еще где...
|
|||
49
Вафель
27.02.17
✎
17:38
|
(48) гемор в том, что это нужно делать самому руками.
в 1с средств для этого нет. нужно какието программы искать. Если нужно обрабатывать несколько версий файлов, то нужно как-то сопоставлять вресию файла и версию схемы |
|||
50
Serginio1
27.02.17
✎
17:38
|
(46) Храни ввиде текста и используй через СоздатьФабрикуXDTO
|
|||
51
vi0
27.02.17
✎
17:41
|
(49) а разве экспорт пакета из дерева не подходит?
и далее удалить пакет |
|||
52
Вафель
27.02.17
✎
17:44
|
(51) Из какого дерева?
Тебе приходит xml файл. У тебя естьвариант запилить схему самому или без нее |
|||
53
Вафель
27.02.17
✎
17:45
|
(51) А редактор схемы от 1с - это вообще у..ще
|
|||
54
Fragster
гуру
27.02.17
✎
17:45
|
(52) или потребовать схему с того, кто выплевывает файл.
|
|||
55
Fragster
гуру
27.02.17
✎
17:45
|
а когда кому-то выгружаешь - сделать схему или потребовать схему с него, чтобы не было вопросов потом
|
|||
56
Вафель
27.02.17
✎
17:46
|
(54) потребовать всегда можно, но не всегда можно получить ответ
|
|||
57
Вафель
27.02.17
✎
17:46
|
(55) когда сам, тут вопросов вообще нет
|
|||
58
vi0
27.02.17
✎
17:47
|
(53) ты выше написал, что у 1с нет средств
|
|||
59
Fragster
гуру
27.02.17
✎
17:49
|
(56) если та сторона выгружает непонятно что, то что ты будешь фиксировать в ТЗ, договоре и акте? или дорабатывать обработку загрузки бесконечно, потому что в ТЗ формат данных не зафиксирован, и любые "незагрузки" идут как ошибки?
|
|||
60
Вафель
27.02.17
✎
17:50
|
(58) теперь поробуй стравнить текущую схему и новую
|
|||
61
Вафель
27.02.17
✎
17:52
|
Давеча выгружал данные в астра раскрой. Без всяких схем.
|
|||
62
Fragster
гуру
27.02.17
✎
17:53
|
(61) мы все рады за тебя
|
|||
63
zak555
27.02.17
✎
17:54
|
(4) видимо изучать или нет
|
|||
64
Вафель
27.02.17
✎
17:57
|
(62) Это как раз был тот случай когда поставщик не предоставляет схемы.
Заниматься бюррократией или пилить схему самому - не интересно |
|||
65
Жан Пердежон
27.02.17
✎
18:00
|
(0) сабж похож на вопрос школьника, который не выучил домашку и теперь пытается найти причину, по которой её учить вообще и не надо было.
Так-то xml - это текст, а значит и без него спокойно можно обойтись: XML = Новый ТекстовыйДокумент(); //и погнал. А всякие там XML, XSLT, DOM - ересь и вообще от дела отрывают. |
|||
66
Serginio1
27.02.17
✎
18:02
|
(64) Но при том, что схема есть и она не изменяется зачем от неё отказываться?
|
|||
67
vi0
27.02.17
✎
18:03
|
(65) Новый ТекстовыйДокумент() //и погнал.
ну, удачи тебе в этом увлекательном деле |
|||
68
Fragster
гуру
27.02.17
✎
18:07
|
(67) если ты не можешь нарисовать машину состояний для ручного парсинга XML, то из программистов пора валить
|
|||
69
Жан Пердежон
27.02.17
✎
18:08
|
(67) сори, забыл табличку "сарказм";
ты вот точно так же и будешь выглядеть: имея на руках xsd, пользуясь при этом только ЗаписьXML/ЧтениеXML. |
|||
70
vi0
27.02.17
✎
18:08
|
(68) круто, и к чему ты написал это?
|
|||
71
vi0
27.02.17
✎
18:09
|
(69) твой сарказм понятен, но неинтересен в этой ветке
|
|||
72
Жан Пердежон
27.02.17
✎
18:19
|
(71) лучше поздно, чем никогда
|
|||
73
vi0
28.02.17
✎
04:46
|
Коллеги, спасибо за дискуссию
Тема стала намного понятнее |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |