helpf.pro
Регистрация
 +6 
Распечатать

Как получить уникальный идентификатор объекта, GUID?

GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,402 * 10в38), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала.

Для получения уникального идентификатора объекта, используйте код вида:
Код 1C v 8.х
 ГУИДССЫЛКИ	= СсылкаНаОбъект.УникальныйИдентификатор();
// или
НоменклатураСсылка = Справочники.Номенклатура.НайтиПоКоду("00013");
Если НЕ НоменклатураСсылка.Пустая() Тогда
   Сообщить("GUID = " + НоменклатураСсылка.УникальныйИдентификатор());
КонецЕсли; 
   


Как с помощью запроса получить уникальный идентификатор:
Код 1C v 8.х
  Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ
                        |    Номенклатура.НаименованиеПолное,
                        |    Номенклатура.ЕдиницаИзмерения,
                        |    Номенклатура.СтавкаНДС,
                        |    Номенклатура.НоменклатурнаяГруппа,
                        |    Номенклатура.СчетУчетаЗапасов,
                        |    Номенклатура.СчетУчетаЗатрат,
                        |    Номенклатура.Ссылка, 
                        |    Номенклатура.ЭтоГруппа
                        | ИЗ
                        |    Справочник.Номенклатура КАК Номенклатура"; 
       РезультатЗапроса = Запрос.Выполнить();
       СпрОбъект = РезультатЗапроса.Выбрать();    
       Пока СпрОбъект.Следующий()  Цикл
          СтрокаУИ = Объект.XMLСтрока(СпрОбъект.Ссылка);
          GUID = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СокрЛП(СтрокаУИ)));          
        КонецЦикла;
   



В 1С 7.7 можно получить так

Через v7plus.dll
Код 1C v 7.x
 Инфо = СоздатьОбъект("AddIn.V7SysInfo");
ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID();


Через WScript
Код 1C v 7.x
 Функция СоздатьGUID()
    TypeLib = CreateObject("Scriptlet.TypeLib");
    NewGUID = TypeLib.Guid();
    TypeLib = "";
    Возврат NewGUID;
КонецФункции    

//******************************************* 
Процедура Сформировать()
    g=СоздатьGUID();
    Сообщить("Создан GUID: "+g);
КонецПроцедуры


при OLE доступе:
Код 1C v 7.x
 Если Док_Источник.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода) = 1 Тогда
    Пока Док_Источник.ПолучитьДокумент() = 1 Цикл
Объект = БазаОле.ЗначениеВстрокуВнутр(Док_Источник.ТекущийДокумент());
ИдентификаторДокумента = СокрЛП(ПолучитьИД(Объект));

//   Для примера Объект возвращает {"O","0","0","3114","0","0","    258156CB "}, 
//   а ПолучитьИД(объект) = 258156CB
КонецЦикла; 


Еще посмотрите метод:
ЗначениеВСтрокуВнутр(<?>);
Синтаксис:
ЗначениеВСтрокуВнутр(<Объект>)
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
<Объект> - значение объекта агрегатного типа данных которое нужно преобразовать.
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 273736
 +6 
Распечатать
Возможно, вас также заинтересует
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С Предприятие что это? 13
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
COM-подключение к базе 7.7 из 8.2 1С 7
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь=
Excel файл как Внешний источник данных 17
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img
Посмотреть все результаты поиска похожих
Комментарии
ab
14.06.2015 21:49Комментарий: 2
ab

А ещё было бы не плохо пример для 1С 8.х - получения GUID при OLE доступеУИД = ВнешняяБД.Ссылка.УникальныйИдентификатор();

ГУИД = ВнешняяБД.String(УИД);

ab
14.06.2015 21:41Комментарий: 1
ab

А ещё было бы не плохо пример для 1С 8.х - получения GUID при OLE доступе

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!