Если известны только ссылки? ref

1. TVA_11 11.11.22 14:23 Сейчас в теме
Добрый день!

Сохранились только ссылки ?ref, а метаданные не сохранены.

Есть ли возможность найти собственно куда ссылается ref программным перебором?
По теме из базы знаний
Найденные решения
19. TVA_11 14.11.22 09:52 Сейчас в теме
(18)

Так ведь мы получили не обычную ссылку, а текстовую типа УИД, это не объект, чтобы у него ссылку пробовать получить.

"e1cib/data/" + Перебор.ТипОбъектаДокументооборота + "?ref=" + НавигационныйУИД

Это же все равно обычная текстовая строка, ее надо как-то в объект пробовать преобразовать.

ПерваяТочка = Найти(НС, "e1cib/data/");
ВтораяТочка = Найти(НС, "?ref=");

ПредставлениеТипа = Сред(НС, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НС, ВтораяТочка + 5));
Ссылка = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);

Проверю.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 11.11.22 14:45 Сейчас в теме
(1)
Есть ли возможность найти собственно куда ссылается ref программным перебором?

Если найти в базе, откуда они были выгружены, то можно (правда не всегда - теоретически guid разных объектов может быть задублирован).
Если эти "ссылки" нужно загрузить в другую базу, то нет
2. ImHunter 325 11.11.22 14:28 Сейчас в теме
(1) Можно... Наверняка тут (на ИС) есть уже готовые внешки.
3. Ivan_Sol 19 11.11.22 14:33 Сейчас в теме
Добрый день. Ссылка вида
?ref=8ca0000d8843cd1b11dc8d043d71007f.
? Если да тогда никак
5. TVA_11 11.11.22 14:35 Сейчас в теме
(3) Да, именно так.

А почему?
6. user1278383 5 11.11.22 14:35 Сейчас в теме
4. user1278383 5 11.11.22 14:34 Сейчас в теме
перевести GUID в UUID, затем для каждого документа или справочника получить ссылку методом .ПолучитьСсылку()
8. Ivan_Sol 19 11.11.22 15:51 Сейчас в теме
(4) Так данных в базе нет что можно вытащить по 8ca0000d8843cd1b11dc8d043d71007f ?
10. user1278383 5 11.11.22 15:54 Сейчас в теме
(8) я не думал, что можно было бы задать настолько глупый вопрос, чтобы по одной лишь строке "8ca0000d8843cd1b11dc8d043d71007f" получить контрагента, например :) Поэтому предположил, что у тс есть строка с ref и он хочет найти ссылку
11. TVA_11 11.11.22 16:13 Сейчас в теме
(10) Данные в базе есть.

УИД = ДанныеДляИнтеграциииСДО.ИдентификаторОбъекта;

НавигационныйУИД = Сред(УИД,20,4)+Сред(УИД,25,12)+Сред(УИД,15,4)+Сред(УИД,10,4) + Сред(УИД,1,8);
*******

Но для программы, это чем может помочь?
9. Ivan_Sol 19 11.11.22 15:51 Сейчас в теме
12. user1203706 14 11.11.22 16:34 Сейчас в теме
(11) дык перебирай метаданные и формируй ссылку из уида, если не пустая - бинго..
13. user1863362 12.11.22 03:01 Сейчас в теме
(12) Битая ссылка всегда непустая. Так-то!
Ваш К.О.
17. TVA_11 14.11.22 08:17 Сейчас в теме
(12)
Возможно, чего-то не понимаю.
Ссылку для УИДа я сформирую, и руками ее даже запустить смогу.

А как программно это сделать?
18. user1863362 14.11.22 08:36 Сейчас в теме
(17) Запустить цикл по всем метаданным сылочного типа. Внутри - построить ссылку нужного типа через .ПолучитьСсылку и твою строку с представлением уникального идентификатора. Выполнить запрос к базе на проверку существования такой ссылки или вызвать БСПшный метод СсылкаСуществует. Для оптимизации можно обрабатывать в запросе несколько метаданных через объединение таблиц, в каждой - отбор по равенству ссылки параметру.

Или за тебя, беспомощного, надо все написать и зарплату твою получить?
19. TVA_11 14.11.22 09:52 Сейчас в теме
(18)

Так ведь мы получили не обычную ссылку, а текстовую типа УИД, это не объект, чтобы у него ссылку пробовать получить.

"e1cib/data/" + Перебор.ТипОбъектаДокументооборота + "?ref=" + НавигационныйУИД

Это же все равно обычная текстовая строка, ее надо как-то в объект пробовать преобразовать.

ПерваяТочка = Найти(НС, "e1cib/data/");
ВтораяТочка = Найти(НС, "?ref=");

ПредставлениеТипа = Сред(НС, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НС, ВтораяТочка + 5));
Ссылка = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);

Проверю.
14. user1203706 14 12.11.22 09:19 Сейчас в теме
(13)
 .ПолучитьОбъект() 
у ссылки и сравнить с
Неопределенно
, это прям не так сложно, mr. КО ? RTFM
15. user1863362 12.11.22 12:57 Сейчас в теме
(14)
.ПолучитьОбъект()
Слабак!
Тут же недавно в одной соседней теме выяснили, что надо приводить к строке и сравнивать её с представлением битой ссылки!
16. user1203706 14 12.11.22 13:32 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот