Имя: Пароль:
1C
1С v8
Уникальный идентификатор & Соответствие объектов для обмена
0 kn
 
09.10.14
12:38
Приветствую, форумчане.
В РС <Соответсвие объектов для обмена> есть запись с таким значением поля <Ссылка в другой информационной базе>
{"#",44a01d39-c2b6-4751-85e6-06fdc2f23043,70:a571001cf0d5dd3911e219a6be707a92}
как по этому строковому значению можно определить сам объект в базе источнике?
1 PR
 
09.10.14
12:40
Найди по гуиду.
При создании объекта и подстановке гуида объект уже либо будет существовать либо новый.
Если не новый, значит оно.
2 johnny17
 
09.10.14
12:40
Объект = НовыйИдентификатор(ТвояСтрокаКода);
ТипЗнч(Объект)...

Не пробовал, мож прокатит...
3 PR
 
09.10.14
12:42
(2) Что такое НовыйИдентификатор?
4 Галахад
 
гуру
09.10.14
12:42
ИзСтрокиВнутр
5 johnny17
 
09.10.14
12:44
(3) Бр, сорри, = Новый УникальныйИдентификатор(Строка)
6 kn
 
09.10.14
12:44
пробую так

НовыйGUID = Новый УникальныйИдентификатор(МойУникальныйИдентификатор);
    СсылкаНоменклатура = Справочники.Номенклатура.ПолучитьСсылку(НовыйGUID);
    Сообщить("СсылкаНоменклатура = " + СсылкаНоменклатура);

где МойУникальныйИдентификатор = "a571001cf0d5dd3911e219a6be707a92", что не так, подскажите?
7 johnny17
 
09.10.14
12:45
Попробуй (4), должно помочь...
8 PR
 
09.10.14
12:45
(5) И что это даст?
9 PR
 
09.10.14
12:45
(6) СсылкаНоменклатура.ЭтоНовый()
10 johnny17
 
09.10.14
12:46
Даст ссылку на объект, а уж по типу разобраться можно...
11 Skylark
 
09.10.14
12:47
МойУникальныйИдентификатор = "44a01d39-c2b6-4751-85e6-06fdc2f23043"
12 PR
 
09.10.14
12:47
(10) Да ладно! А может просто тупо даст уникальный идентификатор?
13 johnny17
 
09.10.14
12:52
(12) Точная ф-ция ЗначениеИзСтрокиВнутр
Описание:

Преобразует значение из строкового системного представления во внутреннее.

обратная ЗначениеВСтрокуВнутр...
14 kn
 
09.10.14
12:53
Код в (6) выдает ошибку
{Форма.Форма.Форма(7)}: Ошибка при вызове конструктора (УникальныйИдентификатор)
    НовыйGUID = Новый УникальныйИдентификатор(МойУникальныйИдентификатор);
по причине:
Недопустимое значение параметра (параметр номер '1'),
15 PR
 
09.10.14
12:58
(13) Блин, я про новый вообще-то, а не про ЗначениеВСтрокуВнутр
16 kn
 
09.10.14
13:07
(11)вот так ошибку не выдает(объекта нет выдает), но если посмотреть в этот регистр, то там все записи для спр Номенклатуры начинаются с 44a01d39-c2b6-4751-85e6-06fdc2f23043, поэтому подумалось что это сам справочник, а вот вторая часть разная у записей.
Хотя судя по описанию конструктора УникальныйИдентификатор, строка должна быть вида (11). Поясните пжл-та, почему так
17 kn
 
09.10.14
13:09
Результат работы такой - сообщилось

СсылкаНоменклатура = <Объект не найден> (110:85e606fdc2f230434751c2b644a01d39)
18 Skylark
 
09.10.14
14:40
(16) Посмотри внимательнее, возможно в они отличаются в одном символе
Это вот одинаковые строки или разные?
44a01d39-c2b6-4751-85e6-06fdc2f23043
44a01d39-c2b6-4751-85e6-06fda2f23043
19 Skylark
 
09.10.14
14:41
(17) Значит нет такого элемента номенклатуры.
20 Skylark
 
09.10.14
14:44
(16) Лучше всего поищи в конфигурации код, которым формируются записи в этом регистре - как получается строка вида {"#",44a01d39-c2b6-4751-85e6-06fdc2f23043,70:a571001cf0d5dd3911e219a6be707a92}
Где-то рядом наверняка есть обратный код, для получения ссылки из этой строки.
21 kn
 
09.10.14
14:49
(18) не вижу различий
(19)да видимо нет
(20)спасибо за совет
Не могу понять влияют ли запись этого регистра на синхронизацию и можно ли его почистить, если синхронизация планируется по коду
22 Skylark
 
09.10.14
14:52
(21) >не вижу различий
а вот так:

44a01d39-c2b6-4751-85e6-06fd__c__2f23043
44a01d39-c2b6-4751-85e6-06fd__a__2f23043
23 Skylark
 
09.10.14
14:58
(21) Не могу точно сказать, как оно сейчас, я с подобным обменом занимался давно, но по-моему синхронизация хоть по коду, хоть по наименованию, хоть по чему - а как только объект нашли, то суют его в регистр и дальше всё по регистру.

Вот если объекта в регистре нет, то ищут его по полям синхронизации, а как найдут опять же помещают в регистр.
Видимо поиск объекта это существенно медленнее, чем получение объекта по идентификатору. Поэтому объекты сначала пытаются получить по регистру и идентификатору, и только если их там нет, то ищут по полям и как находят то помещают в регистр про запас.
24 1C_v8
 
09.10.14
15:18
Если УИД взят из регистра сведений Соответствие объектов ИБ, то его точно нет в данной базе. Ссылку необходимо искать в корреспонденте.
25 kn
 
09.10.14
17:22
(22)теперь вижу, спасибо.
(24)В Источнике и искалось.