1с создать объект по битой ссылке

Обновлено: 07.07.2024

Поиск битых ссылок с выбором объектов метаданных, в таблице данных которых нужно найти битые ссылки.

Удобное представление результата поиска битых ссылок с настройкой группировки данных.

Вывод найденных битых ссылок в табличный документ (СКД).

Могут возникнуть ошибки при выполнении обработки на клиент-серверном варианте ИБ, связанные со сложностью запросов для поиска битых ссылок.

Обработка позволяет проводить некоторые манипуляции с битыми ссылками.

Функции:

1. восстановление объектов битых ссылок из резервной копии с возможностью выбора объектов для восстановления;

2. замена битых ссылок пустыми;

3. пометка на удаление ссылочных объектов с битыми ссылками;

4. удаление объектов с битыми ссылками.

Обработку можно использовать как источник полезных функций для поиска битых ссылок и некоторых манипуляций с ними.

Имеются следующие полезные экспортные функции:


// Возвращает таблицу битых ссылок
// МассивМетаданных - массив метаданных, в которых нужно искать битые ссылки
// ИсключитьМетаданные - массив метаданных для исключения
// Таблица - объект таблицы значений в который нужно поместить данные (таблица очищается полностью)
// ИсточникПодробно - (истина/ложь) расшифровка источника до ссылки или ключа записи
Функция ПолучитьТаблицуБитыхСсылок ( ОбъектыМетаданных = Неопределено, ОбъектыМетаданныхИсключить = Неопределено, Таблица = Неопределено, ИсточникПодробно = Ложь, ПоказатьИндикатор = Истина) Экспорт

// Свойства (структура):
// Реквизиты - соответствие (ОбъектМетаданных - СтрокаРеквизитов)
// ПоказатьИндикатор (Булево)
// РежимЗагрузкиПриОбменеДанными (Булево),
// МетодыОчисткиРегистровСведений (Соответствие), Методы: "Перезапись", "УдалениеПоЗаписям"
// ОчищатьРегистрыПоРеквизитуРегистратор (Булево)
Функция ОчиститьДанныеОтБитыхСсылок ( ОбъектыМетаданных = Неопределено, ОбъектыМетаданныхИсключить = Неопределено, ТаблицаБитыхСсылок = Неопределено, Свойства = Неопределено) Экспорт

// Восстанавливает битые ссылки в массиве из внешней информационной базы
// Свойства - структура:
// РежимЗагрузкиПриОбменеДанными (Булево)
Функция ВосстановитьБитыеСсылкиИзВнешнейИнформационнойБазы ( МассивБитыхСсылок , Соединение , Свойства = Неопределено) Экспорт

Обработка проверена на конфигурациях: УПП, БП, ЗУП, УТ и проч.

Исправлены найденные ошибки. См. комментарии.

Оптимизированы запросы поиска битых ссылок.

06.04.2012. Исправлена ошибка с переменной "глОбщиеЗначения". Добавлена возможность установки владельца при создании элемента по битой ссылке с владельцем.

Возьмем ДокументОбъект и ДокументСсылка. Будем, например, смотреть на флаг ОтражатьВБухгалтерскомУчете. Событие - ПередЗаписью.
Я завел две переменные ОбъектОтражатьВБухгалтерскомУчете и СсылкаОтражатьВБухгалтерскомУчете. И вычислил их значения, остановившись на точке останова в обработчике события.

Нарисовал себе табличку:

1. Документ уже проведен. В нем взведен флаг отразить в БУ.
ОбъектОтражатьВБухгалтерскомУчете - Истина.
СсылкаОтражатьВБухгалтерскомУчете - Истина.

2. Документ был проведен, в нем БЫЛ взведены флаг отразить в БУ. Сняли флаг БУ.
ОбъектОтражатьВБухгалтерскомУчете - Ложь.
СсылкаОтражатьВБухгалтерскомУчете - Истина.

3. Документ был проведен, в нем не был взведен флаг отразить в БУ.
ОбъектОтражатьВБухгалтерскомУчете - Ложь.
СсылкаОтражатьВБухгалтерскомУчете - Ложь.

4. Новый документ. Накинута галка отразить в БУ.
ОбъектОтражатьВБухгалтерскомУчете - Истина.
СсылкаОтражатьВБухгалтерскомУчете - Ложь.

5. Новый документ. Нет галки отразить в БУ.
ОбъектОтражатьВБухгалтерскомУчете - Ложь.
СсылкаОтражатьВБухгалтерскомУчете - Ложь.

Вот сижу и смотрю на эту табличку. И не могу понять 2 и 4-й случаи. Был бы очень признателен за комментарий.

Вообще, хочу понять - новый документ заводится, или редактируется старый. И что-то из этих выкладок ничего не приходит на ум.

Очень интересное исследование, знать бы только смысл.

"Итак дети, все прочитали произведение великого пейсателя и готовы ответить мне, что же хотел сказать автор."

ЭтоНовый()
Возвращаемое значение:

Тип: Булево.
Истина - изменяется еще ни разу не записанный документ; Ложь - документ уже записан.
Описание:

Определяет, записан ли документ в базу данных.

Сервер, толстый клиент, внешнее соединение.

А мое исследование - оно совсем не имеет смысла?
Но почему-то же поведение таково.

(4) Я сомневаюсь, что кто-то захочет вникать в твою таблицу.

(0) Чувак, реально не понимаешь что такое ссылка на объект и сам объект.
Что такое объектные блокировки? Ой, о чем это я.

Смотри, есть квартира (объект) и адрес в каталоге, который модно по телефону продиктовать (ссылка), есть разница?

То есть обращаясь к обьекту при вычислении ты каждый раз заставляешь считывать актуальное значение из базы

А ссылка на то она и ссылка тире в ней же нигде не уакзпно что должно соответствовать состоянию объекта в базе

Поэтому ссылку следует использовать для ССЫЛКИ на объект

А объект для получения актуальных зачений реквизитов объекта

Жесть. Че реально много одинэсников, котрые даже Си не изучали?
(0) Молодец. Не обращай внимание на жесткую критику. Системный подход к изучению 1С. Пытливый ум даст свои плоды. Так держать!.

(9) Обращаясь к Объекту, ты считываешь поля объекта, такие, какие они там есть, такие, какие ты мог в него раньше присвоить.

Обращаясь к ссылке, ты всегда получишь то, что в базе, даже если реквизиты ссылки кешированы (обращался чуть раньше, менее 20 секунд назад) - 1С все равно запросит в базе поле _version и сравнит его со значением в кеше.

(8) Ладно, пусть квартира.
Второй случай:
Ссылка в каталоге: в квартире есть душ.
Объект: в квартире ванна. Т.е. после публикации объявления успели переделалать.

Это более-менее понятно.

Четвертый случай (новый объект):
Объект: в квартире душ. Вот он - можно потрогать.
Ссылка в каталоге: . Почему должна ложь-то стоять?

В четвертом случае по ссылке ложь.

(14) Я изучал си. Если будет разъясняющий пример на си, буду рад посмотреть.
(18) тогда считывая реквизит через ссылку и через обект -получим одинаковые значения?
(20) не помню, в Си уже были объекты?
докОбъект - это классический экземпляр класса. докСсылка -грубо говоря идентификатор в БД.
ПолучитьОбъект() -конструктор по идентификатору, при котором в переменные считываются данные с базы. Потом идет работа с уже считанными значениями. С докСсылка все не так "привычно". Фактически при обращении докСсылка.реквизит каждый раз идет считывание с БД.

Спасибо всем. Разобрался. У меня в четвертом случае некорректно было все.

У нового ссылка пустая. А от пустой ссылки я получил значение свойства. Ну, и получил ложь.

(24) щас кэширование развито. обычно уже не идёт считывание. имхо
такая длинная полоска под ником и такие детские вопросы по 1с. ты чем на досуге занимался

(18) прошу сделать поправку на мою неснеговитость-клюшечност и пояснить азы
Объект тире это копия записи базы в оперативной памяти слэш кеше вопрос

Потому как для меня-клюшечника объект это актуальный экземпляр записи.

(24) причем гуру говорят что при обращении к реквизиту ссылки тащатся все реквизиты, что некошерно. v8: обращение к реквизиту vs запрос
(0) Ссылка.Реквизит - обращение к ЗАПИСАННЫМ данных из ИБ
Объект.Реквизит - обращение к текущим данным и не факт записанны
Даже в семерке неявно существуют объекты и ссылки. СоздатьОбъект("Справочник.XXX") - гибрид объекта с менеджером. А вот .ТекущийЭлемент() - ссылка в чистом виде.
(32) Считывается весь объект из памяти, что естественно может повлиять на производительность. Работайте с запросами
(35) Выразился не правильно.
Считывается весь объект в память из базы данных, что естественно Может повлиять на производительность, если получать данные всего объекта не требует алгоритм. Работайте с запросами.
(0) у вас не Ссылка или Объект конфликт - а проведен/не проведен.
Пока док не был проведен - объект давал картину "я снял /поставил флаг", а ссылка - давала данные БД, которые еще не изменились.
После проведения - объект записался в БД, по ссылке снова стали актуальные данные.
(32)>>что при обращении к реквизиту ссылки тащатся все реквизиты,
- да, все ссылочные.
(20) ссылки 1С к ссылкам остальных языков отношения не имеют - там ссылка на область памяти (сам объект), тут - ссылка это уникальный индекс, по которому 1С ищет у себя что-то в таблицах.
(18) вот вроде все правильно написал, но из-за незнания ООП - путаешь объекты и Объекты.
С большой буквы - это, конечно же, в 1С ))
(21) если "объект" обновил свое альтер-эго в базе, то ссылка и объект возвратят одно и то же.
Если нет - то ссылка возвратит то, что в БД, а обращение к объекту (это "объект" 1С, не забываем! он вообще ничего общего не имеет с объектами ООП!) даст некое содержимое некоего кэша в 1С, куда она временно спихнула содержимое блока памяти (отвечающего за отображение на экране - если угодно, "скриншот" экрана в виде "объектов") и держит свой "объект".
понакрутили
раньше помню на фоксе работаешь с курсором в форме и знаешь
- дважды неправильно. Считывается весь объект и ссылочные "продолжения" его реквизитов.
Отсюда и ранее распространенная ошибка SQL "превышено 256 таблиц".
Когда такое неявное "разъименование" тащило за собой чуть не всю базу.
И плюс один раз неправильно - в запросах 1С тоже такое возможно: неявное разъменование и дополнительные "явно не указанные" соединения "ссылочных" таблиц между собой.
(41) тем, кто программит не только на 1С, это давно понятно ))
(37)>>теперь пойди книгу почитай или к (8) на курсы
- они там сами не знают, как у них эта вся "система ниппель" работает ))
(8)>>реально не понимаешь что такое ссылка на объект и сам объект.
+ 42
SQL-ю указывают ссылку на другие таблицы ("дай мне весь объект вместе со значением реквизита "СправочникСсылка"!"), он и возвращает все ссылочные таблицы. А уже 1С отбирает из этого то, что "нужно" для 1С-запроса (значения полей, интерпретацию ссылок и т.д.), и отбрасывает "лишнее".
(22)>>Нет. Объект может:
1) Устареть.
- как "объет" может "устареть", не модифицируясь при этом в своих остальных "реинкарнациях"? Разве что только испортится в БД ))
(24)>>не помню, в Си уже были объекты?
- напоминаю: в С++ появились объекты. Но еще не ООП.
>>докОбъект - это классический экземпляр класса. докСсылка -грубо говоря идентификатор в БД.
- нет.
докОбъект "в Си" - это не класс, а сам объект. С "ручками"-методами, и "ножками"-свойствами.
А класс - это описание поведения объекта. Его "ручек" и "ножек". А еще и событий.
докСсылка "в Си" - это ссылка (почти указатель, но менее "опасный") на область памяти, где содержится в данный момент считанный из БД нужный объект.
Т.е. ссылка в Си сродни ярлыку на папку (объект), которая физически находится на диске по такому-то указателю. Это "безопасное" звено между вызовом из интерфейса и физическим содержимым памяти.
К 1С все выше перечисленное не имеет ровным счетом никакого отношения.
(0)Про то, что у нового объекта у .Ссылка все поля пустые и все булево = ложь говорили уже?
А у Объекта могло и при создании сделать Истина
(24)>>ПолучитьОбъект() -конструктор по идентификатору, при котором в переменные считываются данные с базы.
- вы путаете получение объекта (из базы), и работу с этим объектом.
При обращении/изменении к реквизиту/та (до записи в БД) уже полученого объекта - никакого "нового" считывания объекта из БД нет, поэтому и получается расхождение между "объектом", и тем, что по ссылке в БД.
>>Фактически при обращении докСсылка.реквизит каждый раз идет считывание с БД.
- да, Ссылке и неоткуда больше брать данные - только считывать их снова и снова из БД (она же в 1С прсото "ссылка", и больше ничего не умеет, как только указать на данные в ТАБЛИЦЕ БД, чтобы их оттуда могли забрать).
(50)>>Про то, что у нового объекта у .Ссылка все поля пустые
- ссылка на <Новый> формируется на оснвое скрипта-"класса в 1С". Если разработчик заложит в платформе какое-то поле "Истина" - то ссылка тоже будет с полем Истина сразу.
>>А у Объекта могло и при создании сделать Истина
- потому что "объект" - уже не детерменирован "классом-скриптом", жесткая, как у <новой> ссылки, связь с "классом" разрушена-оторвана, т.е. сам объект уже может успеть поменяться после того, как 1С его сгенерировала из своих "скриптов-классов".
+ . как 1С его сгенерировала из своих "скриптов-классов", и запустила в "свободное" плавание по таблицам БД ))
(51)
Че это я путаю?
ПолучитьОбъект() - обычный конструктор. При котором как раз данные и считываются по ссылке.
Никто не мешает получить два объекта по одной ссылке :)
(54)>>Че это я путаю?
- путаете понятия объекта в ООП (Си), и "объекта" в 1С.
"ПолучитьОбъект()" - это в 1С не "конструктор", а "отделение "самостоятельного" объекта, если новый/получение существующего по ссылке".
(54)>>Никто не мешает получить два объекта по одной ссылке :)
- в 1С это невозможно ))
Ссылка - это не "класс", а "выхлоп" скрипта-класса. И не ссылка формирует объект 1С, а этот скрипт-класс, а ссылка идет как "бесплатное приложение", однозначно уникально идентифицирующее объект внутри отдельно взятой БД ))
(56)
Невозможно два Объекта по одной Ссылке получить?
Т.е. два экземпляра класса по одному идентификатору в базе? (это если нормальным языком).
Да легко.
Ссылка не формирует Объект, я этого не писал. Конструктор формирует новый экземпляр класса(Объект), получая в качестве параметра идентификатор в базе(Ссылку).
Когда начинают объектную модель 1с натягивать на ООП - ни к чему хорошему это привести не может.
(58)>>Невозможно два Объекта по одной Ссылке получить?
- невозможно
>>Т.е. два экземпляра класса по одному идентификатору в базе? (это если нормальным языком).
- конструктор в 1С - это команда, которая и запускает скрипт-класс. На выходе - не "экзепляр класса", а "объект 1С", т.е. "собранный" из кусочков "объект 1С". assembling руками "робота"-скрипта.
>>получая в качестве параметра идентификатор в базе(Ссылку).
- ссылка не параметр, а скорей свойство. Параметр можно менять в широких пределах, чтобы получить разные реакции "объекта", а ссылку - только сгенерировать на точно такую же ссылку, т.е. ни для объекта, ни, тем более, для программиста - ничего в этом случае не меняется ))
(61)
"выхлоп", "скрипт класса", "отделение объекта" - вот это нормальный язык :)
(59)>>Когда начинают объектную модель 1с натягивать на ООП
- гораздо чаще путают их между собой. А 1С делает вид, что ничего не происходит, называя каждый раз заново собираемый платформой монолитный кусок (объекты Документ и Справочник - не потомки "одного класса", как может показаться, а совершенно разные по происхождению) - "объектом" ))
(62)>>"выхлоп", "скрипт класса", "отделение объекта" - вот это нормальный язык :)
- у 1С нет своей терминологии, а где есть - она крайне нечеткая.
Поэтому это наиболее близкие, в моем понимании, термины, описывающие взаимодействие сущностей внутри 1С.
Но это взаимодействие - точно не ООП ))
Поэтому и термины ООП к 1С не должны применяться, либо - с гигансткими оговорками, о чем, собственно (об этих оговорках), и вся текущая тема.
(63) Ну, формально они "потомки" одного абстрактного базового класса "ссылочный объект" )
(64) Слово "класс" в применении к прикладным объектом 1с следует признать нецензурным

Что такое "ссылка" - это некоторый специальный объект в системе, в котором хранится информация о том, как найти объект в базе данных и какой объект найти.
Если мы у ссылки запрашиваем какие-то данные объекта, то система считывает данные из базы или из кеша и отдаёт их нам, но реально в самой ссылке они не хранятся.

"Объект" же - это объект в системе, где хранятся данные объекта из базы данных. То есть уже внутри самого объекта будут хранится все данные, считанные из базы, также допускается изменение этих данных с возможностью последующего сохранения в базу.
Несколько разных объектов, полученных из одной ссылки, могут содержать совершенно разные данные.
Кроме того, у объекта есть модуль, где можно определить некоторые процедуры и функции, выполняемые при некоторых системных событиях или вызываемые в коде для самого объекта (если они описаны с модификатором "Экспорт").

Что касается ООП в 1С, то есть только иллюзия ООП, так как есть общие свойства у всех объектов, а также у объектов одного типа (документы, справочники, регистры).
Но реально никакого наследования нет, каждый объект описывается самостоятельно.
Программист в конфигураторе может создать объект только определённого типа и никак иначе.

Для начала приведем пример как выглядит эта ошибка:

Данная ошибка может проявляться в любом документе, в любой базе. В наименовании этой ошибки могут быть любые символы (буквы/цифры). Главное – это название «Объект не найден».

Каким образом эта ошибка себя проявила?

После устранения сбоя, описанного нами ранее, программа открывается и работает, но ведет себя странно. В отчетах отображается информация, а первичный документ пользователь не может найти. В частности, начисление зарплаты по сотруднику. При вводе начисления еще раз документ формируется пустым. И ведь верно – зарплата то ему уже начислена. И это «подтверждают» отчеты. Посмотрим более внимательно.

Сформировав отчет «Полный свод начислений и удержаний», мы видим, что начисление есть.

Попытаемся разобраться, какой документ зафиксировал это начисление. Дальше мы наблюдаем за этой суммой…

Чтобы посмотреть, каким документом введена сумма, нажмите на ней правой кнопкой мышки и выберите команду «Расшифровать».

В открывшемся окне выберите «Регистратор».

Регистратор – это и есть документ, зафиксировавший запись, на основании которой формируется данный отчет и выбранная сумма.

Открываем расшифровку и что мы видим: «Объект не найден» и наша сумма.

В среде программистов это называется «битая ссылка», т.е. в отчете данные отображены (данные в таблицах программы зафиксированы), а сам объект отсутствует. Соответственно, это не дает нам дальше работать, вводить документы, плюс это отображает некорректную информацию.

Все отчеты показывают, что сумма есть. А первичный документ (в нашем случае – начисление зарплаты) мы найти не можем.

Рассмотрим, как выйти из такой ситуации.

Удаление битых ссылок. Тестирование информационной базы.

Шаг 1. Запустите программу в режиме «Конфигуратор».

Шаг 2. Выберите в разделе «Администрирование» пункт «Тестирование и исправление…».

Еще раз напоминаем, что при любых действиях с информационной базой, рекомендуется сначала сделать ее резервную копию. И если вы сомневаетесь в ваших действиях, обратитесь к специалисту за помощью.

Шаг 3. Сделайте резервную копию информационной базы.

В окне настройки тестирования много галочек и каждое действие выполняется при разного рода ошибках. В нашем случае нарушена ссылочная целостность информационной базы. И далее все зависит от варианта решения проблемы. В нашем случае произошла потеря данных, создать объект не получится. Потому, чтобы избавиться от «битой ссылки», ее просто надо удалить.

Шаг 4. Установите галочку «Проверка ссылочной целостности» и «Проверка логической целостности». Установите переключатель в положение «Очищать ссылки» и «Удалять объект».

Т.е. при обнаружении таких несуществующих объектов, система их удалит.

Установка других галочек, в принципе, не помешает. Подробно мы их рассматривать в данной статье не будем. Единственное, некоторые процессы могут занять длительное время.

Наша ошибка исправлена.

Шаг 5. Проверим базу.

Сумма с «битой ссылкой» исчезла из отчета «Полный свод начислений и удержаний».

Программа дает заполнить документ «Начисление зарплаты и взносов» корректно.


Когда мы встречаемся с битой ссылкой в Предприятии 8, иногда возникает необхоимость создать объект с её идентификатором. Однако строка идентификатора и текст битой ссылки в предприятии различаются, но легко восстановить одно зная другое.

Определимся с обозначениями:

UUID - это подстрока, которую мы видим в режиме предприятия в представлении битой ссылки

Объект не найден (N: UUID );

где N - номер таблицы таблицы в базе данных, например, _ReferenceN - это таблица справочника в базе данных.

Для документа такая таблица будет иметь имя _Document N , разглядеть имена этих таблиц можно, если имеется клиент-серверный вариант информационной базы 1С:Предприятия (см. рис.).

GUID - это строка, которую мы используем для создания объекта "УникальныйИдентификатор":

Вот две простые функции, которые легко составить по предложенному рисунку:

Функция UUIDToGUID ( UUID ) Экспорт

Возврат Прав ( UUID , 8 ) + "-" + Сред ( UUID , 21 , 4 ) + "-" + Сред ( UUID , 17 , 4 ) + "-" + Лев ( UUID , 4 ) + "-" + Сред ( UUID , 5 , 12 );

Функция GUIDToUUID ( GUID ) Экспорт

Возврат Сред ( GUID , 20 , 4 ) + Прав ( GUID , 12 ) + Сред ( GUID , 15 , 4 ) + Сред ( GUID , 10 , 4 ) + Лев ( GUID , 8 );

Исходя из смысла числа N в строке битой ссылки Объект не найден (N:UUID), это число можно считать идентификатором типа.

Для определения типа можно заполнить заранее, например, соответствие (Число N - ТипОбъекта). А N определять из представления битой ссылки.

Вот функции модуля обработки для определения типа (всего одна экспортная функция для рашифровки битой ссылки):

// Представление битой ссылки: Объект не найден (TypeID:UUID)
// TypeID - идентификатор типа
// UUID - глобальный идентификатор
Функция СтруктураПредставленияБитойСсылки ( ПредставлениеБитойСсылки )

// Ищем позицию скбоки
Поз1 = Найти ( ПредставлениеБитойСсылки , "(" );
Поз2 = Найти ( ПредставлениеБитойСсылки , ":" );

Если Поз1 > 0 И Поз2 > 0 И Поз2 > Поз1 Тогда
TypeID = Сред ( ПредставлениеБитойСсылки , Поз1 + 1 , Поз2 - Поз1 - 1 );
UUID = Сред ( ПредставлениеБитойСсылки , Поз2 + 1 , 32 );
Иначе
TypeID = "" ;
UUID = ПредставлениеБитойСсылки ;
КонецЕсли;

Возврат Новый Структура ( "TypeID, UUID" , TypeID , UUID );

КонецФункции
// Возвращает соответствие: Идентификатор типа (строка) - Строка определения типа
Функция СоответствиеИдентификаторовТипов ()

Соответствие = Новый Соответствие ;

МассивКоллекцийМенеджеровСсылочныхОбъектов = Новый Массив ;
МассивКоллекцийМенеджеровСсылочныхОбъектов . Добавить ( Справочники );
МассивКоллекцийМенеджеровСсылочныхОбъектов . Добавить ( Документы );
МассивКоллекцийМенеджеровСсылочныхОбъектов . Добавить ( ПланыВидовХарактеристик );
МассивКоллекцийМенеджеровСсылочныхОбъектов . Добавить ( ПланыСчетов );
МассивКоллекцийМенеджеровСсылочныхОбъектов . Добавить ( БизнесПроцессы );
МассивКоллекцийМенеджеровСсылочныхОбъектов . Добавить ( Задачи );
МассивКоллекцийМенеджеровСсылочныхОбъектов . Добавить ( ПланыОбмена );

Для Каждого КоллекцияМенеджеровСсылочныхОбъектов Из МассивКоллекцийМенеджеровСсылочныхОбъектов Цикл
Для Каждого МенеджерСсылоногоОбъекта Из КоллекцияМенеджеровСсылочныхОбъектов Цикл
БитаяСсылка = МенеджерСсылоногоОбъекта . ПолучитьСсылку (Новый УникальныйИдентификатор );
Соответствие . Вставить ( СтруктураПредставленияБитойСсылки ( Строка ( БитаяСсылка )). TypeID , СтрЗаменить ( БитаяСсылка . Метаданные (). ПолноеИмя (), "." , "Ссылка." ));
КонецЦикла;
КонецЦикла;

КонецФункции
// Возвращает структуру: "TypeID, UUID, Тип, GUID"
Функция РасшифровкаПредставленияБитойСсылки ( ПредставлениеБитойСсылки ) Экспорт

Если мСоответствиеИдентификаторовТипов = Неопределено Тогда
мСоответствиеИдентификаторовТипов = СоответствиеИдентификаторовТипов ();
КонецЕсли;

СтруктураПредставления = СтруктураПредставленияБитойСсылки ( ПредставлениеБитойСсылки );

СтрокаТипа = мСоответствиеИдентификаторовТипов [ СтруктураПредставления . TypeID ];
Если СтрокаТипа = Неопределено Тогда
СтрокаТипа = "Неопределено" ;
КонецЕсли;

Возврат Новый Структура ( "TypeID, UUID, Тип, GUID" , СтруктураПредставления . TypeID , СтруктураПредставления . UUID , СтрокаТипа , UUIDToGUID ( СтруктураПредставления . UUID ));

Читайте также: