В любой конфигурации 1С 8 у каждого объекта(документа, элемента справочника, элемента плана видов характеристик и т.п.) есть уникальный идентификатор(УИН). При помощи него можно переносить объекты между базами РИБ не боясь задвоения данных, быстро находить элемент справочника или документ и т.п.
Как получить уникальный идентификатор из ссылки? При помощи свойства ссылки УникальныйИдентификатор(). Пример 1:
Уникальный идентификатор в 1С 8 имеет тип УникальныйИдентификатор, но его можно преобразовать и в строковое значение(получится строка вот такого вида: 9712e912-d0b9-11e1-b37b-0050568458ce).
Как получить ссылку имея уникальный идентификатор? При помощи метода ПолучитьСсылку( ) менеджера справочника, документа и т.п.
Пример 4 (Здесь УИН — значение типа УникальныйИдентификатор):
Пример 5(Здесь СтрокаУИН — переменная со строковым значением уникального идентификатора):
В примере 5 уникальный идентификатор получается из строкового значения при помощи конструктора Новый УникальныйИдентификатор( )
Для получения уникального идентификатора объекта, используйте код вида:
Код 1C v 8.х
Как с помощью запроса получить уникальный идентификатор:
Код 1C v 8.х
В 1С 7.7 можно получить так
Через v7plus.dll
Код 1C v 7.x
Через WScript
Код 1C v 7.x
при OLE доступе:
Код 1C v 7.x
Еще посмотрите метод:
ЗначениеВСтрокуВнутр( );
Синтаксис:
ЗначениеВСтрокуВнутр( )
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
— значение объекта агрегатного типа данных которое нужно преобразовать.
Если Вам встречались в базе записи » «, то значит настала пора познакомитсья с Уникальным идентификатором .
Уникальный идентификатор — это уникальный набор символов который характерезует экземпляр метаданных объектного типа в 1С(Напрмимер, элемент справочника или документ). По сути ссылка и является уникальным идентификатором, причем даже у разных видов объектов он не может быть похож. Выглядит он примерно так:
de80b7c8-aa22-11dc-a0f4-0011d85708ff
Т.е. это набор из 32 шестнадцатеричных цифр разделенных дефисами.
Надпись появляется в базе когда есть ссылка(уникальный идентификатор) на объект, а объекта в базе нет. Такое может возникнуть или при удалении объектов без проврки ссылочной целостности или при обмене между базами.
Разберем для примера надпись: (36:9c4e0022642fda9811e10393c0d776fd)
Для начала узнаем какой тип объекта был удален, для этого используем метод ПолучитьСтруктуруХраненияБазыДанных(), он возвращает таблицу значений(по умолчанию в формате SDBL) где указано соответсвие внутренних идентификаторов и объектов метаданных.
Например можно написать такой код:
В ней мы находим идентификатор который в конце содержит 36 (цифры до двоеточия), но только не в составе числа( Document2836 ), а точное соответсвие. В нашем случае это следующая строка:
Reference36 | Справочник.Номенклатура |
Значит удаленный элемент был элементом справочника «Номенклатура».
Как Вы заметили внутри скобок находится тип объекта и уникальный идентификатор строкой.
Теперь мы можем на одной из архивных копий найти удаленный элемент, добавив дефисы в имеющуюся у нас строку идентификтора:
Зная все значения полей мы можем вручную или с помощью обработок воссоздать удаленный элемент, но у них будет одно главное отличие — разные Уникальные идентификаторы. А если мы хотим восстановить элемент, то и идентификатор нужно восстановить тот же. Для этого нужно использовать метод «УстановитьСсылкуНового«, например так: