Имя: Пароль:
1C
1С v8
Как сравнить ссылки по COM?
0 DTX 4th
 
11.01.17
16:09
http://i.imgur.com/cbV55mf.png

Банк.Родитель <> Банк.Родитель...
Банк - СправочникСсылка.Банки
1 Любопытная
 
11.01.17
16:12
уиды получи и сравни
2 Жан Пердежон
 
11.01.17
16:12
или на ком-сервере
3 DTX 4th
 
11.01.17
16:25
(1) Дороговато по времени выходит.

(2) Это как?

http://i.imgur.com/gl12Jgp.png
4 H A D G E H O G s
 
11.01.17
16:27
(3) Дороговато выходить из-за
Банк.Родитель
5 H A D G E H O G s
 
11.01.17
16:28
Заведи и удаленной базе процедуру СравнитьСсылки(Ссылка1, Ссылка2) и вызывай ее.
6 Любопытная
 
11.01.17
16:30
(3) то, что коды совпадают, еще не значит, что это одна и та же ссылка. Но если этого достаточно, тогда зачем еще какие-то трудности?
7 DTX 4th
 
11.01.17
16:32
(4) Так он есть и там и там.

Вдогонку. Вот тут сколько обращений к серверу будет?
Эл = Справочник.Банки.НайтиПоКоду("123");
Р = Эл.Родитель;

Два?

(5) Типовые базы.

(6) Про гуиды можно так же сказать)
Интересно, как это сделать быстрее всего.
8 Guk
 
11.01.17
16:37
а что мы хотим получить от сравнения родителей банка? тут кроме как по наименованию, сравнивать вообще ни по чему не имеет смысла, кмк...
9 Torquader
 
11.01.17
17:03
Там же есть встроенный объект для сравнения, в который можно передать не только ссылки, но и любые значения из базы OLE и он вернёт результат сравнения.
10 Torquader
 
11.01.17
17:06
То бишь:

Сравнилка=БазаТам.NewObject("СравнениеЗначений");
Результат=Сравнилка.Сравнить(Значение1ИзБазыТам,Значение2ИзБазыТам);
Если Результат=0 Тогда
Сообщить("Значения совпали");
КонецЕсли;
11 DTX 4th
 
11.01.17
17:31
(8) Что ссылки совпадают

(4) Да, ты был прав.
http://i.imgur.com/bmdg5kU.png

(10) Идеально, спасибо :)
12 DTX 4th
 
11.01.17
17:35
При обращении к базе за одним реквизитом остальные подтягиваются?
Или вот это связано с кэшем БД?
http://i.imgur.com/i0qEoMM.png
13 Провинциальный 1сник
 
11.01.17
17:39
А можно через сериализацию. Интересно, что будет быстрее.

Если БазаТам.ЗначениеВСтрокуВнутр(Значение1ИзБазыТам)=БазаТам.ЗначениеВСтрокуВнутр(Значение2ИзБазыТам) Тогда // равны
Иначе
// не равны
КонецЕсли;
14 Провинциальный 1сник
 
11.01.17
17:39
(12) Это фича.
15 DTX 4th
 
11.01.17
17:44
(13) http://i.imgur.com/Xl43c17.png

(14) Скорее интересно, как она работает. При обращении к реквизиту подтягивается только он? Или сразу все?
Т.е. при обращении к другим реквизитам будет происходить обращение к БД?
16 Провинциальный 1сник
 
11.01.17
17:46
(15) А затраты на создание объекта Сравнилка где?
17 youalex
 
11.01.17
17:46
(15) получается весь объект (с ТЧ втч), данные объекта кэшируются
18 DTX 4th
 
11.01.17
17:48
(15) 000,00%
У меня строк много. Сравнилка одна.

(17) Спасибо
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн