Ну, собственно вопрос в теме..
Как получить УникальныйИдентификатор документа через COM соединение?
---
Так подойдет?

```1c
    // Возвращает ГУИД документа
    //
    // Параметры
    // <пСсылка> - <ДокументСсылка> - ссылка на документ Ком соединения
    // <пВнешняяБаза> - <COM-соединение> - внешнее соединение
    //
    // Возвращаемое значение:
    // <Строка> - строковое представление ГУИД
    //
    Функция ПолучитьГУИДОбъектаВнешнегоСоединения(пВнешняяБаза, пСсылка)

    УИД = пВнешняяБаза.String(пСсылка.UUID());
    Возврат пВнешняяБаза.String(УИД);

    КонецФункции // ПолучитьГУИД()
```
---
посмотреть, какой тип у ВнешнийДОк и понять, что это не ДокументОбъект.

```1c
    Уи = ВНешБаза.XMLСтрока(ВНешБаза.Документы.МойДокумент.НайтиПоНомеру());
```
---
Во-первых, метод УникальныйИдентификатор() есть у типа "ДокументСсылка" и отсутствует у типа "ДокументОбъект".
Во-вторых, при работе через COM строковые представления объектов базы-корреспондента и получать нужно на стороне базы-корреспондента.

```1c
    ВнешнийДОк= ВНешБаза.Документы.МойДокумент.НайтиПоНомеру();
    УИ = ВНешБаза.String(ВнешнийДОк.УникальныйИдентификатор());
```

Но лучше, конечно же, как в (13)
---
Так подойдет?

```1c
    // Возвращает ГУИД документа
    //
    // Параметры
    // <пСсылка> - <ДокументСсылка> - ссылка на документ Ком соединения
    // <пВнешняяБаза> - <COM-соединение> - внешнее соединение
    //
    // Возвращаемое значение:
    // <Строка> - строковое представление ГУИД
    //
    Функция ПолучитьГУИДОбъектаВнешнегоСоединения(пВнешняяБаза, пСсылка)

    УИД = пВнешняяБаза.String(пСсылка.UUID());
    Возврат пВнешняяБаза.String(УИД);

    КонецФункции // ПолучитьГУИД()
```
---
Возврат пВнешняяБаза.String(УИД);
Я бы лучше сказал XMLString()...
---
В данном случае - без разницы. XMLСтрока для УникальногоИдентификатора возвращает строковое представление уникального идентификатора. То же самое, вид сбоку.
(1) посмотрите мою обработку - там все эти функции есть.
---
XMLСтрока работает быстрее.
---
Есть какие-то подтверждения, ссылки?
---
https://forum.infostart.ru/forum15/topic178829/
---
27 секунд против 133.
---
Давайте сравнивать одинаковые вещи, как у меня на картинке. Согласен, что сериализация XMLСтрока(КомСтр.Регистратор) происходит намного быстрее, чем XMLСтрока(КомСтр.Регистратор.УникальныйИдентификатор()) или String(КомСтр.Регистратор.УникальныйИдентификатор()). Очевидно, значительное время тратится на выполнение метода УникальныйИдентификатор().
---
Спасибо, код подошел.
---
Плюс XMLСтрока - это сериализация по установленным правилам, а Строка() - просто строковое представление. Хоть на практике этот момент и не играет роли, но завязывать алгоритмы на представления - непрофессионально. Прецеденты их изменений между версиями 1С уже были.
---
Сейчас проверил - XMLСтрока(КомСтр.Регистратор) будет правильным ответом, ибо возвращается то же строковое представление уникального идентификатора.
---
Не работает, ничего не понимаю((
Делаю так:
ВнешнийДОк= ВНешБаза.Документы.МойДокумент.НайтиПоНомеру().ПолучитьОбъект();
УИ = Строка(ВнешнийДОк.УникальныйИдентификатор());//по итогу болт..ничего нет
---
посмотреть, какой тип у ВнешнийДОк и понять, что это не ДокументОбъект.

```1c
    Уи = ВНешБаза.XMLСтрока(ВНешБаза.Документы.МойДокумент.НайтиПоНомеру());
```
---
Уи = ВНешБаза.XMLСтрока(ВНешБаза.Документы.МойДокумент.НайтиПоНомеру());

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

Уи = ВНешБаза.XMLString(ВНешБаза.Документы.МойДокумент.НайтиПоНомеру());
---
Во-первых, метод УникальныйИдентификатор() есть у типа "ДокументСсылка" и отсутствует у типа "ДокументОбъект".
Во-вторых, при работе через COM строковые представления объектов базы-корреспондента и получать нужно на стороне базы-корреспондента.

```1c
    ВнешнийДОк= ВНешБаза.Документы.МойДокумент.НайтиПоНомеру();
    УИ = ВНешБаза.String(ВнешнийДОк.УникальныйИдентификатор());
```

Но лучше, конечно же, как в (13)
---
Уважаемые программисты.
Мне нужно идентифицировать с помощью GUID три файла. Помогите, кто это может сделать. Не безвозмездно.
---
Есть различие, в случае когда Ссылка это удаленный объект во внешней базе в этом случае ВнешняяБаза.String(Ссылкаа.UUID()) отработает, а XMLСтрока вызовет ошибку.
---
Вот это
```1c
    ВнешняяБаза.String(Ссылка.UUID())
```
 в разы медленнее, чем
```1c
    ВнешняяБаза.XMLСтрока(Ссылка)
```
 уже 100 раз обмусолено. Приведите доказательство, что последний вариант вызывает ошибку.
---
XMLСтрока
Могу описать ситуацию, в которой у меня вызывает ошибку метод XMLСтрока. Делаю выборку из таблицы изменений документа, подключение к внешней базе через COM. Когда ссылка удалена во внешней базе, но естественно остались записи в таблице изменений по такой ссылке. При использовании метода XMLСтрока будет ошибка, если не верите, проверьте. Версия платформы 8.3.20.2180
Мой коммент не про скорость выполнения методов, а про ошибку.
---
что-то не то делаете. Все должно отрабатывать.
Попробуйте:

```1c
    Соединитель = Новый COMОбъект("V83.COMConnector");
    Соединение = Соединитель.connect(СтрокаСоединения);
    Ссылка = Соединение.Справочники.Номенклатура.ПолучитьСсылку(Соединение.NewObject("УникальныйИдентификатор"));
    Сообщить(Соединение.XMLСтрока(Ссылка));
```

Пример получение XMLСтрока по битой ссылке отрабатывает.
8.3.22.1750. Режим совместимости: Версия 8.3.20