Имя: Пароль:
1C
1С v8
Как получить GUID из файла выгрузки, созданного сериализатором, до записи?
0 Vasilisk
 
11.03.13
13:26
Как получить GUID из файла выгрузки, созданного сериализатором, до записи загружаемого объекта(Документ)
При загрузке файла XML с выгруженными документами необходимо получить GUID (в файле он есть). Обращение к тегу REV(в нем содержится нужное мне значение) возвращает неизвестный GUID который вообще ничему не соответствует.
1 H A D G E H O G s
 
11.03.13
13:28
кто все эти люди?
2 mikecool
 
11.03.13
13:32
(0) т.е. последовательно читая хмл ты находишь гуиды, которых нет в базе?
3 Vasilisk
 
11.03.13
13:37
Мне нужно получить гуид объекта в другой базе этот гуид в файле есть но при обращении выводит вообще не понятно что


Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
   Данные = ПрочитатьXML(ЧтениеXML);
   Сообщить(ЗначениеВСтрокуВнутр(Данные.Ссылка));
КонецЦикла;
4 mikecool
 
11.03.13
13:38
(3) купи у меня запятых, сотню за 50р отдам.
и что это за кусочек кода?
5 Vasilisk
 
11.03.13
13:39
Это тот кусок который считывает файл
6 Maxus43
 
11.03.13
13:40
Сообщить(ЗначениеВСтрокуВнутр(Данные.Ссылка.УникальныйИдентификатор()));
7 Maxus43
 
11.03.13
13:40
Сообщить(Данные.Ссылка.УникальныйИдентификатор());
8 Vasilisk
 
11.03.13
13:45
Он равен 00000000-0000-0000-0000-000000000000
9 Vasilisk
 
11.03.13
13:45
Объект еще не записан, а он не должен быть записан
10 mikecool
 
11.03.13
13:46
(8) Ессно, потому как в Данные не понятная херь может быть
чему тип Данные равен?
11 Maxus43
 
11.03.13
13:46
в файле указана нормальная ссылка? не 00000000-0000-0000-0000-000000000000?
12 Vasilisk
 
11.03.13
13:47
- <DocumentObject.ПКО>
 <Ref>cf97dac2-84a5-11e2-8b0e-b870f48c2e03</Ref>
 <DeletionMark>false</DeletionMark>
 <Date>2013-03-04T12:30:47</Date>
 <Number>000000001</Number>
 <Posted>true</Posted>
 <СтатьяДвиженийДенежныхСредств>ОткрытиеКассовойСмены</СтатьяДвиженийДенежныхСредств>
 <Организация>3c13e46c-798e-11e2-b43f-b870f48c2e03</Организация>
 <Касса>3c13e46d-798e-11e2-b43f-b870f48c2e03</Касса>
 <Сумма>0</Сумма>
 <Контрагент>b5f837f3-84a4-11e2-8b0e-b870f48c2e03</Контрагент>
 <Автор>940c401d-84a4-11e2-8b0e-b870f48c2e03</Автор>
 <Комментарий />
 </DocumentObject.ПКО>
- <DocumentObject.ПКО>
13 Vasilisk
 
11.03.13
13:48
Вот этот Rev надо достать.
14 Vasilisk
 
11.03.13
13:49
Сообщить(Данные.Ссылка.УникальныйИдентификатор());
А она говорит что там нули
15 mikecool
 
11.03.13
13:49
(13) в упор не вижу поля Rev )
я не пойму - если у тебя есть xsd схема, то в чем проблема создавать объекты по этой схеме?
16 mikecool
 
11.03.13
13:49
лан.. .автор на своей волне, пошел я мимо
17 Maxus43
 
11.03.13
13:50
НачатьТранзакцию()
данные.Записать();
Сообщить(Данные.Ссылка.УникальныйИдентификатор());
ОтменитьТранзакцию();
18 Vasilisk
 
11.03.13
13:51
Rev это первый тег. Транзакция не применима скорость загрузки упадет
19 Maxus43
 
11.03.13
13:52
читай xml построчно тогда, выцепляй тэги ref
20 Sammo
 
11.03.13
13:54
(18) 1. Не Rev, а Ref
2. В данном поле как раз указан уникальный идентификатор документа, который будет создан.
21 Reset
 
11.03.13
13:56
Я не до конца понимаю о чем речь, но, может надо Данные.ПолучитьСсылкуНового().UUID()?
22 Vasilisk
 
11.03.13
13:56
Построчно читать не реально структура не однородна. Мне нужно получить идентификатор до записи объекта
23 Maxus43
 
11.03.13
13:57
(21) чот боюсь он будет отличаться от указанного в файле, хотя хз, надо проверить
24 Vasilisk
 
11.03.13
13:58
Помогло он самый. Спасибо Reset.
25 Defender aka LINN
 
11.03.13
13:59
(23) скуяли?
26 Maxus43
 
11.03.13
14:00
(25) хз, было опасение)
27 skunk
 
11.03.13
14:00
ты не сможешь гуид этот присвоить ...
28 Defender aka LINN
 
11.03.13
14:01
(26) Бросай это дело, опасаться всякого :)
29 Serg_1960
 
11.03.13
14:05
А ведь не зря он опасается. Работать будет только если в текущем чтении объект. А если в "Данные" не объект тогда как? Имхо, без проверки что именно считано - не дело сразу лезть получать ссылку.
30 Sammo
 
11.03.13
14:06
(25) Я в одной нетленке натыкался, на установку нового гуида при определенных условиях. В результате обмен мягко говоря был несколько забавен...
31 Maxus43
 
11.03.13
14:07
я то собсно опасался что 1с воспримет его именно как новый объект, а не десериализованый, что приведёт к получению совершенно нового гуида
32 cw014
 
11.03.13
14:08
В файле поле ref - Это UUID документа базы источника. В базе приемника этот ref (до загрузки документа) ничему соответствовать не будет
33 Vasilisk
 
11.03.13
14:09
Проверка есть. Без нее там никак. Объект в текущем чтении всегда.
34 Defender aka LINN
 
11.03.13
14:15
(29) Вообще-то, там всегда будет объект. Другой вопрос - КАКОЙ. Может быть и набор записей, к примеру.
(31) А какие были основания для таких опасений?
35 Maxus43
 
11.03.13
14:17
(34) Туманный СП, где указано что ПолучитьСсылкуНового возвращает значение, установленное ранее другим методом, чего в явном виде нету.
Хотя с другой стороны при записи поставит именно из файла... Понедельник короче
36 Serg_1960
 
11.03.13
14:31
(34) "там всегда будет объект"... хмм.. говоря "объект" - я думал об "ссылочном объекте" базы данных... и, строго говоря, "объект" неприемлемо в данном контексте - скорее "значения"... типа как-то так :)
37 Defender aka LINN
 
11.03.13
15:04
(36) Чего это "неприемлимо"? По мне, так все нормально :)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн