![]() |
|
Получение типа из уникального идентификатора | ☑ | ||
---|---|---|---|---|
0
ДНН
13.06.19
✎
14:47
|
В текстовый файл были выгружены уникальные идентификаторы справочников из одной базы.
Для получения ссылки делаю так: Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(УИДСтрокой)); Но это в том случае если я знаю какой тип был выгружен в файл. А если не знаю? Есть файл в котором значения субконто, тип может быть и номенклатура и контрагенты и даже документы. Как по уникальному идентификатору получить ссылку на объект, если я не знаю тип? Спасибо. |
|||
1
vicof
13.06.19
✎
14:48
|
Никак. Выгружай в файл тип еще.
|
|||
2
fisher
13.06.19
✎
14:54
|
Нету там типа.
Можешь примерять туфельку к каждому, если деваться совсем некуда. |
|||
3
Юрий Лазаренко
13.06.19
✎
14:56
|
(0) Если есть возможность повлиять на выгрузку, то можно заменить уникальный идентификатор на ЗначениеВСтрокуВнутр(). В нем есть и тип, и ссылка.
|
|||
4
ИУБиПовиц
13.06.19
✎
14:58
|
(2) Угу, и пока не окажется что туфелька подходит к нескольким ногам:)
у разных типов ж не запрещается одни ГУИДы иметь.. |
|||
5
RomanYS
13.06.19
✎
14:59
|
(3) А зачем, если в любой стандартной выгрузке будет предусмотрена выгрузка типа в такой ситуации?
|
|||
6
lodger
13.06.19
✎
15:00
|
(4) это когда неизвестно зачем ты ищешь ссылку.
если тебе только подобрать и заполнить ссылку, то пофиг ко скольки типам подходит - должна найтись живая ссылка. |
|||
7
fisher
13.06.19
✎
15:02
|
(4) Не запрещается. Но если в базе не было фокусов с "ручным" назначением ссылок, то такая ситуация фактически исключена самим алгоритмом генерации гуидов.
|
|||
8
ДНН
13.06.19
✎
15:06
|
Для ЗначениеВСтрокуВнутр в примечании написано
Примечание: Используется для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать для других целей не рекомендуется. Почему не рекомендуется использовать для других целей? Чем это грозит? |
|||
9
RomanYS
13.06.19
✎
15:14
|
(8) >> Чем это грозит?
Тем что в другой базе обратная операция не сработает. Разработчик в обновлениях платформы оставляет за собой право сделать так что и в одной базе не загрузится выгруженное ранее. Реальная вероятность этого конечно исчезающе мала. |
|||
10
fisher
13.06.19
✎
15:18
|
(8) Да ничем не грозит. Теоретически могут в 1С:Предприятие 9.0 выпилить как атавизму.
|
|||
11
fisher
13.06.19
✎
15:22
|
(8) Православная сериализация типа на 8-ке делается примерно так: XMLТипЗнч(Ссылка).ИмяТипа
Вернет наподобие "CatalogRef.Номенклатура" |
|||
12
fisher
13.06.19
✎
15:32
|
А полный аналог семерочного ЗначениеВСтрокуВнутр() и обратно выглядит примерно так:
Функция СериализацияXML(Значение) ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение); Возврат ЗаписьXML.Закрыть(); КонецФункции Функция ДесериализацияXML(СтрокаXML) ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(СтрокаXML); ЧтениеXML.Прочитать(); Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML); КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |