Получение 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();
Сообщить(стр);
КонецПроцедуры
|