Книга знаний

1С:Предприятие / Приемы программирования / Обмен данными, УРБД

Получение GUID в 1С

Статья описывает способы получения GUID (глобального уникального идентификатора) в 1С:Предприятие. GUID-ы полезны для однозначной идентификации объектов (например, справочников или документов) в распределенных информационных базах.Автор статьи: jbond | Редакторы: Волшебник, romix
Последняя редакция №14 от 27.09.07 | История
URL: http://kb.mista.ru/article.php?id=84

Ключевые слова: глобальный, уникальный, идентификатор, значение, GUID, УникальныйИдентификатор, ПолучитьGUID, FormEx, УРБД, WSCript


Через v7plus.dll


(Лёвыч, 27.09.07)

Инфо = СоздатьОбъект("AddIn.V7SysInfo");
ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID();


Через WScript


(добавлено 27.09.2007 - romix)

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

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



1С++ или FormEx



Для получения GUID в 7.7 требуется 1С++ или FormEx последних версий:

Существует несколько способов.

Самый простой:

Сервис = СоздатьОбъект("Сервис");
Сообщить(Сервис.ПолучитьGUID());


в 8.0 все делается штатными средствами:

Уник = Новый УникальныйИдентификатор();
УникСтрокой = Строка(Уник);



Генерация GUID из внешней компоненты


(добавлено 16.02.2006 - romix)

Из внешней компоненты, написанной, в частности, на Delphi, GUID можно сформировать при помощи API-вызова CoCreateGuid:

///////////////////////////////////////////////////////////////
function CreateGuid: string;
var
  ID: TGUID;
begin
  Result := '';
  if CoCreateGuid(ID) = S_OK then
    Result := GUIDToString(ID);
end;


Внешняя компонента с исходным кодом и тестовым примером конфигурации:
http://x-romix.narod.ru/EventMaker.rar
(60K, скачивать ЛЕВОЙ кнопкой мыши)

Для тестирования компоненты активизируйте пункт меню Обработки-Тест GUID.
Компонента выдаст в окно сообщений строку наподобие:
{71602BEA-1BEA-4FB8-B03F-6C2E3390C748}

В коде на языке 1С обращение к этому методу выглядит очень просто:
///////////////////////////////////////////////////////////////
Процедура Выполнить()
        стр=events.CreateGUID();
        Сообщить(стр);
КонецПроцедуры



Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика