WMI-обозреватель

05.06.13

База данных - Инструменты администратора БД

Небольшая обработка для отладки WQL запросов WMI.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
WMIОбозреватель.epf
.epf 17,71Kb
55
55 Скачать (1 SM) Купить за 1 850 руб.

WMI-обозреватель

Что такое WMI?

Windows Management Instrumentation (WMI) в дословном переводе — это инструментарий управления Windows. Если говорить более развернуто, то WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. Звучит страшно, а на самом деле это достаточно богатый набор инструментов, основные функции которого:

  • Получать данные о системах (диски, процессоры, процессы, журналы событий и многое-другое)
  • Выполнять широкий спектр административные задачи: от завершения процесса, до управления DHCP и DNS
  • Создавать скрипты, срабатывающие при наступлении каких-либо событий в системе
  • Получать данные счетчиков производительности 

В WMI есть иерархическая адресация всех ресурсов - что-нибудь типа WinMgmts:{impersonationLevel=impersonate}!//myServer/root/cimv2:Win32_LogicalDisk), но вместе с иерархическим доступом к ресурсам есть и SQL-подобный язык получения данных. Этот язык обычно называется WQL и в сети есть множество примеров его использования. На инфостарте можно обратить внимание на следующие статьи:

В MSDN можно ознакомиться начиная со следующих статей:

Типичный запрос WQL выглядит так:

SELECT CommandLine, Handle, Name FROM Win32_Process

Результатом этого запроса будет табличка, начинающаяся примерно так:

CommandLine Handle Name
  0 System Idle Process
  4 System
  224 smss.exe
  320 csrss.exe
  372 csrss.exe
  380 wininit.exe
  412 winlogon.exe
  476 services.exe
  484 lsass.exe
  492 lsm.exe
  588 svchost.exe
  656 svchost.exe
  744 svchost.exe
  792 svchost.exe
  840 svchost.exe
  880 svchost.exe
  920 svchost.exe
  508 svchost.exe
  1096 spoolsv.exe
  1156 hasplms.exe
  1236 svchost.exe
  1316 vmtoolsd.exe
  1680 TPAutoConnSvc.exe
  1900 dllhost.exe
  1980 msdtc.exe
taskhost.exe 1724 taskhost.exe
TPAutoConnect.exe -q -i vmware -a COM1 -F 30 616 TPAutoConnect.exe

Зачем нужен WMI-обозреватель?

WMI документирована хорошо, но отлаживать WQL запросы непосредственно в 1С не было возможности, а пользоваться внешними утилитами ради пары строк запроса вовсе не хочется. Для этой цели я сделал простенький WMI-обозреватель.

Пользовательский интерфейс WMI-обозревателя

Интерфейс состоит из 2 закладок: Запрос и Настройки. На закладке Запрос есть только поле для ввода запроса. По умолчанию запрос выполняется на текущем ПК в файловой версии и на сервере предприятия (от имени rphost) в клиент-серверной версии. По кнопке "Выполнить запрос" появляется таблица с результатами.

Если настройки по умолчанию не устраивают, переходим на вторую закладку. Там можно настроить:

  • Имя сервера с которого снимаются данные
  • Если установлен флажок "Собирать системные свойства", то в таблице будут выданы внутренние свойства каждой записи. Обычно это не требуется.
  • Если установлен флажок "Получать путь", то в таблице будут выдана колонка с иерархическим путём записи. Имеет смысл, если этот путь нужен для отладки запроса.
  • Если установлен флажок "Собирать методы", то в таблице первой колонкой будет поле "Methods". Если два раза кликнуть мышкой или нажать Enter на этой колонке, то будет выдан табличный документ с методами, которые можно применять в программном коде к значению WMI данной строки

Картинки:

 

Как можно использовать WMI-обозреватель?

Здесь я приведу просто набор запросов и пояснение, что можно получить этим запросом. Проверяйте, экспериментируйте.

Запрос Пояснение
SELECT Handle, Name, VirtualSize FROM Win32_Process WHERE VirtualSize>100000000 AND CreationDate > "20130604000000.000000+420" Выводится ID процесса, название процесса, размер адресуемого пространства для процессов, созданных позднее 4 июня 2013 года (в моём часовом поясе)
SELECT * FROM Win32_Service WHERE PathName LIKE "%ragent%" Все службы 1С со всеми данными по ним
SELECT Name, Capacity, FreeSpace FROM Win32_Volume Диски, их размер и свободное место
SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor Текущая загрузка процессора
SELECT PercentDiskTime, AvgDiskQueueLength, DiskReadBytesPerSec, DiskWriteBytesPerSec FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk Текущая загрузка диска
Select * From meta_class Выполняется долго, содержит очень много колонок! Выводит все классы WMI

 

Как устроен WMI-обозреватель?

Весь WMI обозреватель благополучно поместился в одну управляемую форму (прямо скажу - не сильно сложную). Если по каким-то причинам Вы не можете скачать решение, то программный код этой формы приведен ниже.

&НаКлиенте
Процедура РезультатЗапросаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   
// При двойном клике на медоды, выводим их в табличный документ
   
Если Поле.Имя = "РезультатЗапросаMethods" Тогда
       
Методы = Элемент.ТекущиеДанные.Methods;
        Если
Методы.Количество()>0 Тогда
           
ТабличныйДокумент = Новый ТабличныйДокумент;
           
СчСтрок = 1;
            Для каждого
Метод Из Методы Цикл
               
ТабличныйДокумент.Область(СчСтрок, 1, СчСтрок, 1).Текст = Метод;
               
СчСтрок = СчСтрок + 1;
            КонецЦикла;
           
ТабличныйДокумент.Показать();
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьЗапрос(Команда)
   
ВыполнитьЗапросНаСервере();
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// Серверные методы формы

&НаСервере
Процедура ВыполнитьЗапросНаСервере()

   
WMIЗапрос = ПолучитьCOMОбъектWMI(Объект.ИмяСервера);

   
// "*" желательно заменить для ускорения на конкретный список полей
   
WMIРезультаты = WMIЗапрос.ExecQuery(Объект.ТекстЗапроса);

   
РезультатЗапроса = ПреобразоватьРезультатыWMIвТаблицуЗначений(WMIРезультаты,
       
Объект.СобиратьСистемныеСвойства,
       
Объект.СобиратьМетоды,
       
Объект.ПолучатьПуть,
        Ложь);
   
//РезультатЗапроса.Колонки.Удалить("Значение"); // В ней содержатся "COMОбъект", которые не выводятся

   
ВывестиТаблицуЗначений("РезультатЗапроса", РезультатЗапроса);

КонецПроцедуры

// Перезаполняет реквизит формы из таблицы значений.
// Предполагается, что реквизит уже есть на форме. Перезаполнение происходит
// полностью вместе с пересозданием колонок. Так медленнее, зато проще.
//
// Параметры:
//  ИмяРеквизита - Строка - Имя заполняемого реквизита формы
//  ЗначениеРеквизита -  ТаблицаЗначений - чем заполнять реквизит
//
&НаСервере
Процедура ВывестиТаблицуЗначений(ИмяРеквизита, ЗначениеРеквизита)

   
ЭлементФормы = Элементы[ИмяРеквизита];
   
ПутьКДанным = ЭлементФормы.ПутьКДанным;

   
МассивДобавляемыхРеквизитов = Новый Массив;
   
МассивУдаляемыхРеквизитов = Новый Массив;

    Для каждого
ТекРеквизит из ПолучитьРеквизиты(ПутьКДанным) Цикл
       
МассивУдаляемыхРеквизитов.Добавить(ТекРеквизит.Путь + "." + ТекРеквизит.Имя);
       
ИмяЭлементаВТаблице = ИмяРеквизита + ТекРеквизит.Имя;
       
Элемент = Элементы.Найти(ИмяЭлементаВТаблице);
        Если не
Элемент = Неопределено Тогда
           
Элементы.Удалить(Элемент);
        КонецЕсли;
    КонецЦикла;

    Для Каждого
Колонка Из ЗначениеРеквизита.Колонки Цикл
       
ДобавляемыйРеквизит = Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, ПутьКДанным, Колонка.Имя);
       
МассивДобавляемыхРеквизитов.Добавить(ДобавляемыйРеквизит);
    КонецЦикла;

   
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивУдаляемыхРеквизитов);
   
ЗначениеВРеквизитФормы(ЗначениеРеквизита, ПутьКДанным);

    Для Каждого
ТекРеквизит Из МассивДобавляемыхРеквизитов Цикл

       
ИмяЭлементаВТаблице = ИмяРеквизита + ТекРеквизит.Имя;
       
Элемент = Элементы.Добавить(ИмяЭлементаВТаблице, Тип("ПолеФормы"), ЭлементФормы);
       
Элемент.Вид = ВидПоляФормы.ПолеВвода;
       
Элемент.ПутьКДанным = ПутьКДанным + "." + ТекРеквизит.Имя;
       
Элемент.ТолькоПросмотр = Истина;

    КонецЦикла;

КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// Блок функций WMI, если хотите использовать их в своих программах, то лучше
// вынести в отдельный модуль. Модуль лучше сделать серверным, потому что
// используются таблицы значений. Не забудьте удалить директивы компиляции.

// Возвращает настроенный COM-объект WMI
//
// Параметры:
//  ИмяСервера - Строка, имя или IP-адрес компьютера с которого будут получаться
//              значения счетчиков производительности. Можно не указывать, если
//              значения получаются со своего компьютера
//  ИмяСервераИсполнителя -  Строка, имя или IP-адрес компьютера на котором создаётся
//              COM объект. Обычно можно не указывать
//  ТочкаПодключения - Строка - по умолчанию "root\cimv2", но можно указать и своё
//
// Возвращаемое значение:
//  COMОбъект - objWMIService
//
&НаСервереБезКонтекста
Функция ПолучитьCOMОбъектWMI(Знач ИмяСервера = Неопределено, Знач ИмяСервераИсполнителя = Неопределено, Знач ТочкаПодключения = Неопределено) Экспорт

   
//http://msdn.microsoft.com/en-us/library/windows/desktop/aa389763(v=vs.85).aspx
   
Если Не ЗначениеЗаполнено(ИмяСервераИсполнителя) Тогда
       
Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
    Иначе
       
Locator = Новый COMОбъект("WbemScripting.SWbemLocator", ИмяСервераИсполнителя);
    КонецЕсли;

    Если Не
ЗначениеЗаполнено(ИмяСервера) Тогда
       
ИмяСервера = ".";
    КонецЕсли;

    Если Не
ЗначениеЗаполнено(ТочкаПодключения) Тогда
       
ТочкаПодключения = "root\cimv2";
    КонецЕсли;

   
objWMIService = Locator.ConnectServer(ИмяСервера, ТочкаПодключения);
    Возврат
objWMIService;

КонецФункции

// Преобразует результаты WMI-запроса в таблицу значений
//
// Параметры:
//  РезультатыWMI - COMОбъект - "сырые" результаты WMI-запроса
//  СобиратьСистемныеСвойства - Булево - признак необходимости сбора системных свойств, необязательный, по умолчанию Ложь
//  СобиратьМетоды - Булево - признак необходимости доступных методов, необязательный, по умолчанию Ложь
//  ПолучатьПуть - Булево - получать или не получать колонку с полным путем к значению в терминах WMI, по умолчанию Истина.
//  ПолучатьЗначениеWMI - Булево - получать или не получать колонку с самим значением WMI строки, по умолчанию Истина
//
// Возвращаемое значение:
//  ТаблицаЗначений - Преобразованная таблица значений (нетипизированная, потому что добывать типы сложно)
//
// Примечание:
// 1. ПолучатьЗначение следует устанавливать в Ложь, если планируется вывод на форму (COM-объект,
// содержащийся в колонке нормально не выводится), в Истина, если планируется вызов методов или другая доп. логика
// 2. ПолучатьПуть можно установить в Ложь, если нужно минимизировать передачу данных
&НаСервереБезКонтекста
Функция ПреобразоватьРезультатыWMIвТаблицуЗначений(РезультатыWMI,
        Знач
СобиратьСистемныеСвойства = Ложь,
        Знач
СобиратьМетоды = Ложь,
        Знач
ПолучатьПуть = Истина,
        Знач
ПолучатьЗначениеWMI = Истина) Экспорт

   
ТаблицаWMI = Новый ТаблицаЗначений;
    Если
ПолучатьЗначениеWMI Тогда
       
ТаблицаWMI.Колонки.Добавить("Значение");
    КонецЕсли;
    Если
ПолучатьПуть Тогда
       
ТаблицаWMI.Колонки.Добавить("Path");
    КонецЕсли;
    Если
СобиратьМетоды Тогда
       
ТаблицаWMI.Колонки.Добавить("Methods");
    КонецЕсли;

    Для Каждого
ЗначениеWMI Из РезультатыWMI Цикл
       
СтрокаТаблицыWMI = ТаблицаWMI.Добавить();
        Если
ПолучатьЗначениеWMI Тогда
           
СтрокаТаблицыWMI.Значение = ЗначениеWMI;
        КонецЕсли;
       
Свойства = ПолучитьСтруктуруИзЗначенияWMI(ЗначениеWMI.Properties_);

       
ДобавитьСтруктуруВСтрокуТаблицаЗначений(СтрокаТаблицыWMI, Свойства);
        Если
СобиратьСистемныеСвойства Тогда
           
СистемныеСвойства = ПолучитьСтруктуруИзЗначенияWMI(ЗначениеWMI.SystemProperties_);
           
ДобавитьСтруктуруВСтрокуТаблицаЗначений(СтрокаТаблицыWMI, СистемныеСвойства);
        КонецЕсли;
        Если
ПолучатьПуть Тогда
           
СтрокаТаблицыWMI.Path = ЗначениеWMI.Path_.Path;
        КонецЕсли;

        Если
СобиратьМетоды Тогда

           
СтрокаТаблицыWMI.Methods = Новый Массив;

           
// Описания методов возвращаем для людей, поэтому описание "человеколюбивое"
           
Для Каждого МетодWMI из ЗначениеWMI.Methods_ Цикл

               
ОписаниеМетода = "Метод: " + МетодWMI.Name;
                Если
МетодWMI.InParameters <> Неопределено Тогда
                    Для Каждого
ПараметрWMI из МетодWMI.InParameters.Properties_ Цикл
                       
КвалификаторыПраметра = ПолучитьСтруктуруИзЗначенияWMI(ПараметрWMI.Qualifiers_);
                       
ОписаниеМетода = ОписаниеМетода + Символы.ПС + "Входной параметр: " + ПараметрWMI.Name;
                    КонецЦикла;
                КонецЕсли;

                Если
МетодWMI.OutParameters <> Неопределено Тогда
                    Для Каждого
ПараметрWMI из МетодWMI.OutParameters.Properties_ Цикл
                       
КвалификаторыПраметра = ПолучитьСтруктуруИзЗначенияWMI(ПараметрWMI.Qualifiers_);
                       
ОписаниеМетода = ОписаниеМетода + Символы.ПС + "Выходной параметр: " + ПараметрWMI.Name;
                    КонецЦикла;
                КонецЕсли;

               
СтрокаТаблицыWMI.Methods.Добавить(ОписаниеМетода);

            КонецЦикла;

        КонецЕсли;

    КонецЦикла;

    Возврат
ТаблицаWMI;

КонецФункции

// Преобразует строку результатов WMI в структуру
//
// Параметры:
//  ЗначениеWMI - COMОбъект - строка результатов WMI-запроса
//
// Возвращаемое значение:
//  Структура - Коллекция значнний строки результатов WMI-запроса
//
&НаСервереБезКонтекста
Функция ПолучитьСтруктуруИзЗначенияWMI(ЗначениеWMI)

   
Рез = Новый Структура;
    Для каждого
СвойствоWMI из ЗначениеWMI Цикл
        Если
ТипЗнч(СвойствоWMI.Value) = Тип("COMSafeArray") Тогда
           
Рез.Вставить(СвойствоWMI.Name, СвойствоWMI.Value.Выгрузить());// возможно массив надо будет переделать
       
Иначе
           
Рез.Вставить(СвойствоWMI.Name, СвойствоWMI.Value);
        КонецЕсли
    КонецЦикла;

    Возврат
Рез;

КонецФункции

// Добавляет все значения структуры в строку ТЗ. Если не хватает колонок - добавляет нетипизированную
//
// Параметры:
//  ТекущаяСтрокаТаблицы - СтрокаТаблицыЗначений - Строка в которую записываются данные
//  ДобавляемаяСтруктура - Структура - структура с значениями
//
// Возвращаемое значение:
//  Структура - Коллекция значнний строки результатов WMI-запроса
//
&НаСервереБезКонтекста
Процедура ДобавитьСтруктуруВСтрокуТаблицаЗначений(ТекущаяСтрокаТаблицы, ДобавляемаяСтруктура)

   
ТаблицаЗначений = ТекущаяСтрокаТаблицы.Владелец();
   
Колонки = ТаблицаЗначений.Колонки;
    Для Каждого
ЭлементСтруктуры Из ДобавляемаяСтруктура Цикл
        Если Неопределено =
Колонки.Найти(ЭлементСтруктуры.Ключ) Тогда
           
Колонки.Добавить(ЭлементСтруктуры.Ключ);
        КонецЕсли;
       
ТекущаяСтрокаТаблицы[ЭлементСтруктуры.Ключ] = ЭлементСтруктуры.Значение;
    КонецЦикла

КонецПроцедуры

Напоследок

  • Это не супер-пупер инструмент, а скорее наколеночная демонстрация работы с WMI, просто, к сожалению, я не нашёл аналога в существующих разработках.
  • Проверено в 1С 8.2 и 1С 8.3 в управляемых формах.
  • Очевидно, что при правильно настроенном rphost могут возникнуть проблемы с правами (rphost должен быть почти бесправен).
  • Код этой обработки можете свободно использовать в своих разработках.
  • Замечания и предложения принимаются :)

 

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14471    109    46    

108

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11936    45    33    

67

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    10724    47    8    

78

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191317    1153    0    

920

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    33855    108    152    

75

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    32665    145    18    

51

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73759    629    45    

88

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10174    10    4    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7250 11.06.13 09:42 Сейчас в теме
Поддержка WQL (WMI) реализована в консоли запросов (ИР) с конструктором запроса и отображением справочной информации по классам/свойствам. https://www.youtube.com/watch?v=bFDDJqToPTM
tol_l; juker; speshuric; +3 Ответить
2. speshuric 1338 11.06.13 13:00 Сейчас в теме
(1) tormozit, Я очень рад, что эта возможность появилась в ИР. Всем заинтересованным рекомендую для ознакомления/использования
3. CaSH_2004 373 23.08.14 21:07 Сейчас в теме
Из пожеланий: явно нужен обычный режим, не все работают в УФ.
4. speshuric 1338 17.09.14 01:43 Сейчас в теме
(3) Ну так, вон, Сергей утянул в свои тулзы, они не в УФ. Я дальше и не стал ничего делать, у Сергея всё отлично работает, меня устраивает.
5. veterskv 10.03.17 11:46 Сейчас в теме
Замечательная статья, но вопрос. Можно ли с помощью WMI повлиять на настройки принтера? Не на параметры страницы табличного документа, а именно на настройки принтера.
Необходимо: выводить документ с настройками:
2 копии
разобрать на копии = Истина
2 страницы на лист (страницы - портрет, лист - ландшафт)
двусторонняя печать

Сложность в том, что когда задаешь параметры для ТабДок средствами 1С, то упорно получается: (страницы - портрет, лист - портрет) или (страницы - ландшафт, лист - портрет), т.е. лист всегда портрет.
А если устанавливать параметры через настройки принтера, то все получается как надо.
6. zekrus 151 04.05.18 13:03 Сейчас в теме
Добрый день!
Тема весьма актуальная.
Было бы еще замечательно добавить дерево запросов, с возможностью сохранения в файл (по аналогии с консолью запросов).
П.С. никто не в курсе какой запрос нужен для получения сеансов пользователей - нужны логины (пытаюсь учитывать перекуры за день)?
С уважением
7. tormozit 7250 04.05.18 13:36 Сейчас в теме
(6) А (1) Чем не устраивает?
8. zekrus 151 04.05.18 13:52 Сейчас в теме
(7) Прокси-сервер отказывается принимать соединения - https://www.youtube.com/watch?v=bFDDJqToPTM
9. tormozit 7250 04.05.18 17:07 Сейчас в теме
(8) А в (0) он соглашается принимать соединения?
11. zekrus 151 05.05.18 06:00 Сейчас в теме
10. tormozit 7250 04.05.18 20:05 Сейчас в теме
(8) Если возникла проблема с этим инструментом то рекомендую описать ее подробно на форуме основного сайта ИР.
12. zekrus 151 05.05.18 06:00 Сейчас в теме
(10) Дело не в инструменте (а в ссылке на него, слово ИР для меня не знакомо). Ютюб на работе закрыт. Попробовал поиском найти "инструмент разработчика" так в публикации нет упоминатий в описании об работе с WMI. И сюда то я пришел по этому же поиску "WMI" с яндекса (правьте и к вам придут с яндекса).
13. M_Volkov 5 16.11.20 18:03 Сейчас в теме
Смотрю функцию:
	Результат = Ложь;	Адрес = "";
	wmi = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2");
	oColPings=wmi.ExecQuery("Select * From Win32_PingStatus where Address = '" + ИмяКомпьютера + "' and ResolveAddressNames = True");
	 Для Каждого objStatus Из oColPings Цикл 
		Если objStatus.StatusCode = 0 Тогда
			Адрес = objStatus.ProtocolAddressResolved;
			Результат = Истина;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Возврат Результат;
Показать
Работает, но дает Адрес не IP-адрес, а ИмяКомпьютера.ИмяДомена. Менял objStatus.ProtocolAddressResolved на objStatus.IPAddress - дает Истина. Чем заменить?
Оставьте свое сообщение