Как получить текущее время с милисекундами? В Платформе 8.2.17 реализована возможность получения числа миллисекунд, прошедших с 1 января 0001 года, 0:00:00 UTC с помощью функции
Код 1C v 8.2 УП ТекущаяУниверсальнаяДатаВМиллисекундах( )
Код 1C v 8.х
ДатаИсх = ТекущаяДата( ) ;
ДатаНов = ДатаИсх + 0.567 ;
Миллисекунды = ( ДатаНов - ДатаИсх) * 1000 ;
Код 1C v 8.х Функция ПолучитьТекущееВремяВМиллисекундах() Экспорт
Если JavaScript = Неопределено Тогда
Попытка
JavaScript = Новый COMОбъект( "MSScriptControl.ScriptControl" ) ;
Исключение
Сообщить( ОписаниеОшибки( ) , СтатусСообщения. Внимание) ;
Возврат 0 ;
КонецПопытки ;
JavaScript. Language = "javascript" ;
КонецЕсли ;
Время = JavaScript. Eval( "new Date().getTime()" ) ;
Возврат Время;
КонецФункции
Код 1C v 8.х // Как быстрее получить время в миллисекундах?
Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
ServicesSet = Locator.ConnectServer(".");
Для а=1 по 100 цикл
pEnum = ServicesSet.InstancesOf ("Win32_OperatingSystem");
Для каждого Object Из pEnum Цикл
сообщить(сред(Object.LocalDateTime,13,6));
Прервать;
КонецЦикла;
КонецЦикла;
Код 1C v 7.x
Scr= СоздатьОбъект( "MSScriptControl.ScriptControl" ) ;
Scr. Language = "javascript" ;
d= Scr. Eval( "new Date();" ) ;
Сообщить( d. getTime( 0 ) ) ;
Сообщить( d. getHours( 0 ) ) ;
Сообщить( d. getMinutes( 0 ) ) ;
Сообщить( d. getSeconds( 0 ) ) ;
Сообщить( d. getMilliseconds( 0 ) ) ;
Категория:
Работа с Датами (Временем) Получение локальных, сетевых, сменных (флешек) дисков компьютера При разработке отчетов или обработок рано или поздно приходится сталкиваться с необходимостью определения имени локального диска, сменного накопителя (флешки), сетевого диска. В данной статье представлены 3 способа получения списка дисков компьютера:
Примеры для 8-ой версии, для того чтобы заработало в 7-ой замените:
Код 1C v 8.х Новый COMОбъект(
на
Код 1C v 7.x СоздатьОбъект(
1-вый способ:
Код 1C v 8.х FSO = Новый COMОбъект( "Scripting.FileSystemObject" ) ;
Для каждого Диск Из FSO. Drives Цикл
Стр = Диск. DriveLetter;
Если Диск. DriveType = 3 Тогда
Стр = Стр + " - " + Диск. ShareName;
ИначеЕсли Диск. IsReady Тогда
Стр = Стр + " - " + Диск. VolumeName;
Иначе
Стр = Стр + " - [Диск не найден]" ;
КонецЕсли ;
Сообщить( Стр) ;
КонецЦикла ;
2-ой способ:
Код 1C v 8.х
Попытка
ScrptCtrl = Новый COMОбъект( "MSScriptControl.ScriptControl" ) ;
ScrptCtrl. Language= "vbscript" ;
ScrptCtrl. addcode( "
|Function GetComputers()
| Set objWMIService = GetObject("" winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"" )
| Set colDisks = objWMIService.ExecQuery ("" Select * from Win32_LogicalDisk"" )
| For Each objDisk in colDisks
| disk = disk & objDisk.DeviceID & "" ;"" & objDisk.DriveType& "" ;""
| Next
| GetComputers = disk
|End Function
|" ) ;
Текст= СокрЛП( ScrptCtrl. Run( "GetComputers" ) ) ;
Исключение
Предупреждение( ОписаниеОшибки( ) ) ;
КонецПопытки ;
ТабДисков = Новый ТаблицаЗначений;
ТабДисков. Колонки. Добавить( "Диск" ) ;
ТабДисков. Колонки. Добавить( "Описание" ) ;
Пока СтрДлина ( Текст) > 0 Цикл
Строка = ТабДисков. Добавить( ) ;
Строка. Диск = Лев( Текст, 2 ) ;
Строка. Описание = Сред( Текст, 4 , 1 ) ;
Текст = Сред( Текст, 6 , СтрДлина ( Текст) - 5 ) ;
КонецЦикла ;
Сообщить( "Флешки:" ) ;
Для Каждого Элемента Из ТабДисков Цикл
Если Элемента. Описание = "2" Тогда
Сообщить( Элемента. Диск) ;
КонецЕсли ;
КонецЦикла ;
3-ий способ:
Код 1C v 8.х //Попытка подключения к WMI на локальном компьютере
Попытка
Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
ServicesSet = Locator.ConnectServer(".");
//Извлечение экземпляров класса Win32_LogicalDisk
ObjectSet = ServicesSet.InstancesOf ("Win32_LogicalDisk");
Для каждого Item Из ObjectSet Цикл
Сообщить("Имя: " + Item.Caption);
Сообщить("Описание: " + Item.Description); // здесь выводится тип диска
Сообщить("Файловая система: " + Item.FileSystem);
Сообщить("Свободное место: " + Item.FreeSpace);
Сообщить("Метка диска: " + Item.VolumeName);
Сообщить ("=======================") ;
КонецЦикла;
Автор:
Мигачев Евгений Категория:
COM-объекты, WMI, WSH