Имя: Пароль:
1C
1С v8
Обмен, ПрочитатьXML
0 lizergin
 
27.02.12
18:00
хитрый обмен между двумя идентичными базами

выгрузил из одной один объект для загрузки в другую, пусть это будет элемент справочника "Банки":
<CatalogObject.Банки>
           <Ref>41d450fa-7094-11e0-ab52-001e0bda27ec</Ref>
           <IsFolder>false</IsFolder>
           <DeletionMark>false</DeletionMark>
           <Parent>35af4782-7094-11e0-ab52-001e0bda27ec</Parent>
           <Code>047719001</Code>
           <Description>ГРКЦ ГУ БАНКА РОССИИ ПО ЧУКОТСКОМУ АО</Description>
           <КоррСчет>                    </КоррСчет>
           <Город>Г. АНАДЫРЬ</Город>
           <Адрес>ж%па</Адрес>
           <Телефоны/>
       </CatalogObject.Банки>

в принимающей базе читаю это методом Объект = ПрочитатьXML(ЧтениеXML)
получаю СправочникОбъект с заполненными значениями из файлика.
внимание вопрос -  как мне получить гуид (тот что в файлике между <Ref> и </Ref>) ДО того как записать этот объект?
Объект.УникальныйИдентификатор не катит
Объект.ПолучитьСсылкуНового не катит
ЗначениеВСтрокуВнутр(Объект) не катит

пожалуйста подскажите
1 lizergin
 
28.02.12
11:48
никак?
2 Maxus43
 
28.02.12
11:49
Объект.Ссылка.УникальныйИдентификатор() ?
3 Maxus43
 
28.02.12
11:59
или XMLСтрока(Объект) попробуй
4 ЧеловекДуши
 
28.02.12
12:06
А что вам подсказывает отладчик?
5 Широкий
 
28.02.12
12:07
XMLСтрока(Объект.Ссылка)
6 lizergin
 
28.02.12
12:27
в ответ на это 00000000-0000-0000-0000-000000000000
7 lizergin
 
28.02.12
12:40
но когда делаешь Объект.Записать() то гуид у него точь в точь как в файле между <Ref> и </Ref>
8 asady
 
28.02.12
12:41
(7) так и есть - это штатно - что-то не устраивает?
9 Нуф-Нуф
 
28.02.12
12:41
(7) объект не записан - нет гуида
10 lizergin
 
28.02.12
12:51
(8) да всё устраивает, но мне нужно узнать гуид ДО момента записи, я поэтому вопрос и задаю как это сделать. в файле то гуид есть. и после записи он дает ссылке гуид такой как в файле. значит он его где то помнит. вопрос - где?
11 asady
 
28.02.12
12:54
(10) вытащить можно - тупым Найти(ТвойТекст,"<Ref>")
12 Kashemir
 
28.02.12
14:19
Объект.ПолучитьСсылкуНового()
13 Kashemir
 
28.02.12
14:20
+(12) ЗаписанноеЗначение.ПолучитьСсылкуНового().УникальныйИдентификатор()
14 lizergin
 
28.02.12
14:44
не короче..всё не то
15 Kashemir
 
28.02.12
14:53
(14) Что не то ? у тебя готовое решение, ид загруженного но не записанного объекта. Что еще хотел то ?
16 Широкий
 
28.02.12
14:57
Запиши в транзакции а потом ее отмени :))
17 Широкий
 
28.02.12
14:57
почему именно нужно в перед записью ГУИЛ узнать? Два раза записать нельзя?
18 lizergin
 
28.02.12
14:57
ваааа, широкий, красиво!! спасибо!!)))

(15) где готовое решение то ты видишь? ни одно из них результата не даёт
19 ЧеловекДуши
 
28.02.12
14:58
(15)Телепата по гуиду надо.
Он заранее хочет ;)
20 lizergin
 
28.02.12
14:58
не, когда узнаем гуид там будем уже решать, записывать его или нет
21 ЧеловекДуши
 
28.02.12
14:59
(20)Ну, узнал, что твой гуид левый и что?
Что тебе это даст?
22 Kashemir
 
28.02.12
14:59
(18) Ты хоть попробовал то ?
23 asady
 
28.02.12
14:59
(16) настоящий одноэсник!
24 Kashemir
 
28.02.12
15:00
(23) Да не, какой-то редкий вид одинэсников, некоторые долбят пока совсем не разжуют. А тут даже разжеванное есть не хочет :(
25 lizergin
 
28.02.12
15:37
(24) да че ты разревелся, разобиделся, я же смотри в первом еще сообщении все твои методы перечислил и сказал что не работают, не расстраивайся, я обещаю тебе много программировать чтобы когда-нибудь стать таким же умным и внимательным как ты
26 Kashemir
 
28.02.12
15:47
(25) Жаль что твоя собственная убежденность в правоте мешает тебе банально перепроверить информацию, ведь набрать строчку кода ой как тяжело. Удачи в карьере программиста.
27 lizergin
 
28.02.12
16:04
(26) пасиба)
(21) если левый тогда в обратном сообщении для той базы откуда он пришел шлём убедительную просьбу удалить объект с таким гуидом
28 Широкий
 
28.02.12
16:19
(0) Так ведь работает. А ты говоришь что нет
XMLСтрока(Объект.ПолучитьСсылкуНового())
29 ЧеловекДуши
 
28.02.12
16:21
(27)О_о... кого удалить :D...
У тебя элемент просто под другим гуидом создался, дальше что...
Если элемент создан не с моим гуидом, то его не должно быть вовсе :DDDD

...Однако ПятницО...
30 lizergin
 
28.02.12
16:30
(29) если там гуид которого нет в базе приемнике, то элемент не создается, а в другую базу идет письмо удаляющее элемент, который пришел в обмене с гуидом, которого нет в базе приемнике) сечешь?)
(28)а хмлстрока(объект.получитьссылкунового()) работает, да. а просто объект.получитьссылкунового() не работает, не. спасибо еще раз
31 Kashemir
 
28.02.12
16:41
(30) Получитьссылкунового() возвращает ссылку. Чтобы получить ИД ссылки требуется применить метод УникальныйИдентификатор()

Читай (13)
32 lizergin
 
28.02.12
16:46
(31) да хорош уже, я же объясняю - вне конструкции XMLСтрока()  ЗаписанноеЗначение.ПолучитьСсылкуНового().УникальныйИдентификатор() в моём случае не работает, не веришь - сам проверь. говорит объект не найден и привет
33 Serginio1
 
28.02.12
16:58
34 Kashemir
 
28.02.12
16:59
(32) Конечно не верю. Потому что это противоречит логике. И у меня все прекрасно работает http://s017.radikal.ru/i417/1202/ee/7faba6247e93.jpg
35 lizergin
 
28.02.12
17:24
ай люди добрые, видать я дурака где-то свалял
прости за резкость, кашемир, ты оказался прав
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.