Имя: Пароль:
1C
 
Существуют ли задачи в которых не обойтись без 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
Коллеги, спасибо за дискуссию
Тема стала намного понятнее
Независимо от того, куда вы едете — это в гору и против ветра!