gifts2017

Как получить GUID без v7plus.dll в Предприятии 7.7

Опубликовал Александр (prolancer) в раздел Программирование - Практика программирования

Часто в терминальных сессиях у пользователю Windows не хватает прав на регистрацию v7plus.dll. Соответственно нельзя воспользоваться, например методом СоздатьGUID() класса V7SysInfo.

 

Поэтому предлагаю в таких случаях использовать альтернативу в виде функции:

 

 

Функция СоздатьGUID() Экспорт
    Перем Результат, ScrptCtrl;

    Попытка

        ScrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl");
        ScrptCtrl.Language = "VBScript";
        ScrptCtrl.AddCode(
                            "Function CreateGUID()
                            |    Set TypeLib = CreateObject(""Scriptlet.TypeLib"")
                            |    CreateGUID = TypeLib.Guid
                            |End Function
                            |"
                        );
       
        Результат = ScrptCtrl.Modules("Global").CodeObject.CreateGUID();
        Результат = СтрЗаменить(СтрЗаменить(Результат, "{", ""), "}", "");
   
    Исключение
       
    КонецПопытки;
       
    Возврат Результат;
КонецФункции

 

Данную функцию можно вставить в любой модуль. Вставив в глобальный модуль данную функцию можно вызывать везде, где Вам может понадобиться GUID.

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Иван Берездецкий (berezdetsky) 12.05.10 15:10
Оно и без ScriptControl работает:
Процедура Сформировать()
    TypeLib = CreateObject("Scriptlet.TypeLib");
    CreateGUID = TypeLib.Guid;
	Message(CreateGUID);
КонецПроцедуры
...Показать Скрыть
Shrike; venger; marsohod; +3 Ответить 1
2. Вячеслав Кадацкий (marsohod) 19.05.10 01:23
(0) Спасибо за наводку :)
(1) У Вас короче :) Но все равно придется от скобок { и } избавляться.
3. Иван Берездецкий (berezdetsky) 19.05.10 12:37
(2) Это зависит от назначения функции. К примеру, я получаю гуиды средствами класса GUID компоненты 1С++ (он работает быстрее, чем TypeLib). И там мне приходится отдельно добавлять эти самые скобки { и } для вставки значения в поле типа uniqueidentifier в MS SQL Server.
4. Иван Сафронов (djolejek) 05.05.12 10:27
А зачем избавляться от скобок {} ?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа