Имя: Пароль:
1C
 
GUID
0 Voffka
 
27.09.07
10:22
Как сгенерировать GUID в 7.7, в WSH пока ничего не нашел, подскажите. ВК не хочу использовать.
2 Voffka
 
27.09.07
10:33
up
3 romix
 
модератор
27.09.07
10:39
4 romix
 
модератор
27.09.07
10:42
If you are on Windows, you can use the simple VBScript below to generate a UUID. Just save the code to a file called createguid.vbs, and then run cscript createguid.vbs at a command prompt.


Set TypeLib = CreateObject("Scriptlet.TypeLib")
NewGUID = TypeLib.Guid
WScript.Echo(left(NewGUID, len(NewGUID)-2))
Set TypeLib = Nothing


If you have the Microsoft SDK installed on your system, you can use the utility uuidgen.exe, which is located in the "C:\Program Files\Microsoft SDK\Bin" directory.
5 Voffka
 
27.09.07
10:47
Спасибо!
6 romix
 
модератор
27.09.07
10:54


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


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

Инфо = СоздатьОбъект(''AddIn.V7SysInfo'');
ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID();
8 romix
 
модератор
27.09.07
11:02
Дополнил я статью.
9 PVasili
 
27.09.07
11:06
(6)А можно ли из коммандлайн windows получить? Желательно без внешних exe?
10 romix
 
модератор
27.09.07
11:09
(9) Тебе же не командные файлы писать, скрипт vbs или js удобнее.
А там см. (4).
11 PVasili
 
27.09.07
11:11
(10)Именно в cmd нужно. Или как в (4) сделать тихий вывод в поток?
12 Лефмихалыч
 
27.09.07
11:15
(11) хочешь имя файла для бэкапа получить?
13 PVasili
 
27.09.07
11:27
(12)Не совсем(в бэкап я дату сую), ну типа того. Нужно большое и длинное слово.
14 Лефмихалыч
 
27.09.07
11:36
(11) можно при помощи команды

cmd.exe /c cscript.exe script_get_GUID.vbs


выполнить такой скрипт

   TypeLib = CreateObject("Scriptlet.TypeLib");
   WScript.StdOut.Write(TypeLib.Guid());


не проверял, просто подумалось чо-та
15 romix
 
модератор
27.09.07
11:37
(13) В rar.exe есть ключ -ag, он генерит имя файла архива на основе даты-времени.
Нетрудно и свою прогу или скрипт, которые это делают, написать.
16 Лефмихалыч
 
27.09.07
11:42
+(14) только по уму бы все, что ты делаешь, далеть скриптом, чтобы такой мороки не было
17 PVasili
 
27.09.07
11:52
(14)C:\script_get_GUID.vbs(1, 44) Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции
(15)Мне дата не нужна, тем более из rar. Я её из cmd получаю. См.(13)Нужен GUID
(16)Нужно большое и длинное слово.
18 smaharbA
 
27.09.07
13:11
Вы о чем ?
19 PVasili
 
27.09.07
13:16
Сдул UUIDGEN.EXE, но хотелось бы только скриптом, без сторонних exe-ников
20 PVasili
 
27.09.07
13:17
(18)О, кто нам поможет.... :)  
Нужно из скрипта сделать GUID и засунуть его в поток(файл).
21 smaharbA
 
27.09.07
13:35
(2) а че не как в (14)
или я не понял

echo off
set file=%temp%\%random%.js
echo TypeLib = new ActiveXObject("Scriptlet.TypeLib");WScript.StdOut.Write(TypeLib.Guid);> %file%
cscript //b %file%
del /q %file%
22 smaharbA
 
27.09.07
13:36
Извращенный вариант ))

Перем Стр;
//*******************************************
Процедура Сформировать()
   Файл=КаталогВременныхФайлов()+_GetPerformanceCounter();
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(Файл);
   КомандаСистемы("C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe " + Файл+".txt & "+Файл + " "+Файл+".txt");
   Текст.Открыть(Файл);
   Сообщить(Текст.ПолучитьСтроку(1));
   ФС.УдалитьФайл(Файл+".txt");
   ФС.УдалитьФайл(Файл+".exe");
КонецПроцедуры

//*******************************************
//*******************************************
Процедура Сформировать2()
   Файл=КаталогВременныхФайлов()+_GetPerformanceCounter();
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(Файл);
   ШелСкрипт=СоздатьОбъект("WScript.Shell");
   ШелСкрипт.Run("C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe " + Файл+".txt ",0,-1);
   ШелСкрипт.Run(Файл + " "+Файл+".txt",0,-1);
   Текст.Открыть(Файл);
   Сообщить(Текст.ПолучитьСтроку(1));
   ФС.УдалитьФайл(Файл+".txt");
   ФС.УдалитьФайл(Файл+".exe");
КонецПроцедуры

Процедура Сформировать3()
   Файл=КаталогВременныхФайлов()+_GetPerformanceCounter();
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(Файл);
   ШелСкрипт=СоздатьОбъект("WScript.Shell");
   ШелСкрипт.Run("C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe " + Файл+".txt ",0,-1);
   Процесс=ШелСкрипт.Exec(Файл);
   Сообщить(Процесс.StdOut.ReadAll());
   ФС.УдалитьФайл(Файл+".txt");
   ФС.УдалитьФайл(Файл+".exe");
КонецПроцедуры

Стр="Imports Microsoft.VisualBasic
   |module newguid
   |    sub main (ByVal Args() As String)
   |        Dim c As String
   |          For Each c In Args
   |            FileOpen(1, c, OpenMode.Output)
   |            Print(1,System.Guid.NewGuid().toString())
   |            FileClose(1)
   |          Next
   |        if ubound(Args)=-1 then
   |            System.Console.Write(System.Guid.NewGuid().toString())
   |        end if
   |    end sub
   |end module";
23 smaharbA
 
27.09.07
13:46
Даже так ))

????? ???;
//*******************************************
????????? ????????????()
   ????=??????????????????????()+_GetPerformanceCounter();
   ?????=?????????????("?????");
   ?????.??????????????(???);
   ?????.????????(????);
   ??????????????("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.exe /target:winexe " + ????+".txt /out:"+????+" & "+???? + " "+????+".txt");
   ?????.???????(????);
   ????????(?????.??????????????(1));
   ??.???????????(????+".txt");
   ??.???????????(????+".exe");
??????????????

//*******************************************
//*******************************************
????????? ????????????2()
   ????=??????????????????????()+_GetPerformanceCounter();
   ?????=?????????????("?????");
   ?????.??????????????(???);
   ?????.????????(????);
   ?????????=?????????????("WScript.Shell");
   ?????????.Run("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.exe /target:winexe " + ????+".txt /out:"+????,0,-1);
   ?????????.Run(???? + " "+????+".txt",0,-1);
   ?????.???????(????);
   ????????(?????.??????????????(1));
   ??.???????????(????+".txt");
   ??.???????????(????+".exe");
??????????????

????????? ????????????3()
   ????=??????????????????????()+_GetPerformanceCounter();
   ?????=?????????????("?????");
   ?????.??????????????(???);
   ?????.????????(????);
   ?????????=?????????????("WScript.Shell");
   ?????????.Run("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.exe /target:winexe " + ????+".txt /out:"+????,0,-1);
   ???????=?????????.Exec(????);
   ????????(???????.StdOut.ReadAll());
   ??.???????????(????+".txt");
   ??.???????????(????+".exe");
??????????????

???="Imports Microsoft.VisualBasic
   |module newguid
   |    sub main (ByVal Args() As String)
   |        Dim c As String
   |          For Each c In Args
   |            FileOpen(1, c, OpenMode.Output)
   |            Print(1,System.Guid.NewGuid().toString())
   |            FileClose(1)
   |          Next
   |        if ubound(Args)=-1 then
   |            System.Console.Write(System.Guid.NewGuid().toString())
   |        end if
   |    end sub
   |end module";
24 smaharbA
 
27.09.07
13:48
Опять русский не включил :(

Перем Стр;
//*******************************************
Процедура Сформировать()
   Файл=КаталогВременныхФайлов()+_GetPerformanceCounter();
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(Файл);
   КомандаСистемы("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.exe /target:winexe " + Файл+".txt /out:"+Файл+" & "+Файл + " "+Файл+".txt");
   Текст.Открыть(Файл);
   Сообщить(Текст.ПолучитьСтроку(1));
   ФС.УдалитьФайл(Файл+".txt");
   ФС.УдалитьФайл(Файл+".exe");
КонецПроцедуры

//*******************************************
//*******************************************
Процедура Сформировать2()
   Файл=КаталогВременныхФайлов()+_GetPerformanceCounter();
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(Файл);
   ШелСкрипт=СоздатьОбъект("WScript.Shell");
   ШелСкрипт.Run("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.exe /target:winexe " + Файл+".txt /out:"+Файл,0,-1);
   ШелСкрипт.Run(Файл + " "+Файл+".txt",0,-1);
   Текст.Открыть(Файл);
   Сообщить(Текст.ПолучитьСтроку(1));
   ФС.УдалитьФайл(Файл+".txt");
   ФС.УдалитьФайл(Файл+".exe");
КонецПроцедуры

Процедура Сформировать3()
   Файл=КаталогВременныхФайлов()+_GetPerformanceCounter();
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(Файл);
   ШелСкрипт=СоздатьОбъект("WScript.Shell");
   ШелСкрипт.Run("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.exe /target:winexe " + Файл+".txt /out:"+Файл,0,-1);
   Процесс=ШелСкрипт.Exec(Файл);
   Сообщить(Процесс.StdOut.ReadAll());
   ФС.УдалитьФайл(Файл+".txt");
   ФС.УдалитьФайл(Файл+".exe");
КонецПроцедуры

Стр="Imports Microsoft.VisualBasic
   |module newguid
   |    sub main (ByVal Args() As String)
   |        Dim c As String
   |          For Each c In Args
   |            FileOpen(1, c, OpenMode.Output)
   |            Print(1,System.Guid.NewGuid().toString())
   |            FileClose(1)
   |          Next
   |        if ubound(Args)=-1 then
   |            System.Console.Write(System.Guid.NewGuid().toString())
   |        end if
   |    end sub
   |end module";
25 Адинэсник
 
27.09.07
13:55
(23) Вот этот вариант особо хорош! Немедленно в КЗ! )
26 Лефмихалыч
 
27.09.07
14:01
(17) это надо скрипт с текстом

   TypeLib = CreateObject("Scriptlet.TypeLib");
   WScript.StdOut.Write(TypeLib.Guid());

сохранить под именем script_get_GUID.vbs

Хотя (21) универсальней
27 Gepard
 
27.09.07
14:05
http://forum.d01-soft.ru/dload.php?action=file&file_id=5

Внешняя компонента для 1С v7.7

Добавляет следующие функции:

1. Пауза

2. Генерирование GUID

3. Идентификатор процесса 1С

4. Определение простоя 1С

5. Мониторинг файловой системы

6. MD5 хеш файла

7. Монитор новых заявок для AMSD Full

8. Hash код строки (Функция int ПолучитьУникальныйКодСтроки(Строка))

Системные требования:

Microsoft Windows, Microsoft .Net Framework 2.0
28 PVasili
 
27.09.07
14:07
(21)То что нужно(проктически. Только нужно @echo off
И не получается отрезать скобки
echo TypeLib = new ActiveXObject("Scriptlet.TypeLib"); NewGUID=TypeLib.Guid; WScript.StdOut.Write(left(NewGUID, len(NewGUID)-2));> %file%  пусто :(
29 smaharbA
 
27.09.07
14:50
echo off
set file=%temp%\%random%.js
echo TypeLib = new ActiveXObject("Scriptlet.TypeLib");WScript.StdOut.Write(TypeLib.Guid.substr(1,36));> %file%
cscript //b %file%
del /q %file%
30 PVasili
 
27.09.07
14:59
Ещё первой строкой:
@ echo off
Или форматер съел? Спасибо, то что нужно :)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой