Имя: Пароль:
1C
1С v8
ЗначениеНеНайдено. Как получить ссылку?
0 bolobol
 
09.03.17
12:21
добрый день!

Имеется строка ЗначениеНеНайдено <132:bb530015170eeeb611dd97911478ed0e> - как определить можно по "132:", что это именно Справочник.СтатьиЗатрат? Не перебором же всех метаданных, я надеюсь?

Хелп, плиз.
1 Fragster
 
гуру
09.03.17
12:30
проще всего не из строки. но можно и из строки, например через ЗначениеИзСтрокиВнутр()
2 1dvd
 
09.03.17
12:30
ТипЗнч(БитаяСсылка) что даёт?
3 Fragster
 
гуру
09.03.17
12:31
подсказка - сделай значениевстрокувнутр и посмотри, что получается. Функцию, которая делает из (0) строку для ЗначениеИзСтрокиВнутр - напиши самостоятельно
4 youalex
 
09.03.17
12:36
По "132" - вряд ли.
Например, ЗначениеВСтрокуВнутр(Справочники.Номенклатура.НайтиПоКоду("00000000180")) - получается
{"#",44a01d39-c2b6-4751-85e6-06fdc2f23043,73:82afe069959a26f711e5d61c65003b3f}

Здесь 44a01d39-c2b6-4751-85e6-06fdc2f23043 - идентификатор типа, причем он же получается при ЗначениеВСтрокуВнутр(Тип("СправочникСсылка.Номенклатура"))

"73:" - вообще можно менять,  ЗначениеИзСтрокиВнутр() - будет все равно возвращать эту ссылку
5 Рэйв
 
09.03.17
12:42
(0)вот обработка которая преобразует строку как в сабже в нормальный УИД и находит тип.
Покопайся в коде
https://yadi.sk/d/nv6FAFno3FLNj7
6 Fragster
 
гуру
09.03.17
12:53
(4) в клюшках прокатывало. на самом деле 72 - это какой-то внутренний номер.

Стр = ЗначениеВСТрокуВнутр(Справочники.Валюты.RUB); //{"#",41dbb66b-ff77-4b8f-aaf8-0ca2012d3a6f,72:9e58113bdf0666d5448fd8521666af1b}
Стр2 = ЗначениеВСТрокуВнутр(Справочники.Валюты.ПустаяСсылка()); //{"#",41dbb66b-ff77-4b8f-aaf8-0ca2012d3a6f,72:00000000000000000000000000000000}

и можно обходом метаданных (затем с заменой 00000 на штуку из "объект не найден") получить искомую ссылку
7 youalex
 
09.03.17
13:33
(6) судя по (5) - это номер в имени реальной таблицы, т.е. в моем случае - "Reference73"
8 bolobol
 
09.03.17
13:36
(7) Да, так работает.
(5) Спасибо за обру!

Всем спасибо за идеи! Колдую))