Имя: Пароль:
1C
1С v8
РИб: Ссылки на узлы плана обмена?!
,
0 Тим
 
05.09.11
19:48
Коллеги, пособите любезно!!

Завел регистр сведений, при записи доков и справочников сохраняю
ссылку на объект (измерение) и на текущий узел (ресурс).
При просмотре всё показывает правильно - узел как узел,
соответсвующий текущей БД. Делаю выгрузку изменений в другой узел,
и...ссылка в записях регистра указывает на узел, соответсвующий
этой БД?! То есть я создал документ в БД, соответствующей
узлу 01, выгрузил изменения в узел 02, и после этого при просмотре
регистра сведений отображается как ссылка на узел 02...
Что за чёрт?
1 hhhh
 
05.09.11
20:05
ну правильно. При загрузке изменений ведь тоже процедура ПриЗаписи отрабатывает. Юмористы вы.
2 Тим
 
05.09.11
20:09
Почтенный, что за презумпция виновности - это
обстоятельство несомненно было учтено.
Собственно, копание пришло к простейшему:
делается ручное изменение записи регистра сведений -
указывается иной узел. Обмен. И чушь.
Вместо указанного узла - ссылка на узел собственной БД :(
3 hhhh
 
05.09.11
20:13
(2) При загрузке изменений ведь тоже процедура ПриЗаписи отрабатывает
4 Тим
 
05.09.11
20:16
Ещё раз отмечу - отключена вся механика. Код
закомментирован. Есть регистр сведений, измерение - ссылка на док/справочник, ресурс - ссылка на узел плана обмена.
Записи вносятся вручную, после обмена в БД-приёмнике -
вместо указанного в источнике узла ссылка на собственный узел.
5 Тим
 
05.09.11
20:23
1С:Предприятие 8.2 (8.2.13.219)
6 MikleV
 
05.09.11
20:25
выход прост - использовать коды узлов, а не узлы в прикладной логике.
7 Тим
 
05.09.11
20:31
(6)
меня уже терзает эта нехорошая догадка :(
да уж...б..ть. Не ожидал.
То есть нет понятия "ссылка на узел", есть только ссылка
на план обмена, несмотря на видимость якобы узлов?

В хмл:
<РесурсУзел xsi:type="ExchangePlanRef.ПланОбмена01">217ee0f6-d8c7-4ffc-bf4b-8d1f6166dc74</РесурсУзел>

и не важно, какой именно узел был указан.
8 hhhh
 
05.09.11
20:37
(7) всё там есть, все понятия, Может вы названия и коды узлов вручную вбивали и все ссылки перепутали?
9 Тим
 
05.09.11
20:37
Внутри одного экземпляра БД, кстати, узлы очень даже
замечательно идентифицированы. Какой узел указал, тот и
сохраняется, и отображается. Но как только перевалка
данных в другой экземпляр, всё - "минимум ссылка на объект не найдена". Свои внутренние идентификаторы узлов,
собственные. О, боги...
10 Тим
 
05.09.11
20:39
(8)

готов подкрепить картинками - уверяю. делать фальшивки мне будет в лом :)

Нет, увы - может быть это проблема конкретного релиза, но всё так и есть. Хотя как - не до конца понятно. Один из
обменов показал в приёмнике "битые" ссылки в поле узла.
11 MikleV
 
05.09.11
21:01
(9)все верно.
собственно,
<v8de:Nodes>
           <v8de:Node>
              <v8de:DeletionMark>false</v8de:DeletionMark>
              <v8de:Code>001</v8de:Code>
              <v8de:Description/>
           </v8de:Node>
           <v8de:Node>
              <v8de:DeletionMark>false</v8de:DeletionMark>
              <v8de:Code>002</v8de:Code>
              <v8de:Description>бла</v8de:Description>
           </v8de:Node>
        </v8de:Nodes>
ни на что не намекает?=)
12 Тим
 
05.09.11
21:09
(11)

наверное, такой подход облегчает произвольное жонглирование
узлами. Но всё равно - чорд! чорд! :)
13 Икогнито
 
05.09.11
21:16
(0) Черт в том, что ты пишешь в регистро ЭтотУзел()

В каждой из баз ЭтотУзел есть ссылка на предопределенный узел. Вот тебе и отображается в регистро предопределенный узел той базы, куда запись попала.
14 Икогнито
 
05.09.11
21:18
+(13) Идынтификатор ЭтогоУзла в Главной базе = Идынтификатору НЕ Этого узла в подчиненной базе.

Если попроще выразиться.
15 Икогнито
 
05.09.11
21:20
+(14) И ваще, кто тебя учил узлы в документы записывать?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан