1С и Windows Script Host (WSH) и Windows Management Instrumentation (WMI). ОТ ТЕОРИИ К ПРАКТИКЕ. Часть III. Реестр

Публикация № 166440

Разработка - Обработки - Универсальные обработки

Windows Windows Script Host WSH Windows Management Instrumentation WMI VBS скрипт script реестр управление конфигурация системная информация удаленный компьютер

Описание возможностей Windows Script Host и Windows Management Instrumentation.
Подборка "скриптовых" функций и процедур.
Работа с реестром.

Предыдущие:

1С и WSH и WMI. ОТ ТЕОРИИ К ПРАКТИКЕ. Часть I: //infostart.ru/public/165702/
1С и WSH и WMI. ОТ ТЕОРИИ К ПРАКТИКЕ. Часть II: //infostart.ru/public/166391/

Практическая реализация:

Обработка 1С:Системный Администратор (WSH&WMI): //infostart.ru/public/172189/


ТЕОРИЯ


Microsoft Windows Script Host (WSH) - сервер сценариев Windows.

Используется в качестве инструмента разработки и выполнения специальных сценариев для операционной системы Windows.
Сценарии WSH пишутся на специализированных языках: Microsoft Visual Basic Script Edition (VBScript) или Microsoft JScript.
Свойства и методы объектов Microsoft WSH доступны также в приложениях, способных выступить в роли OLE-клиента.

WSH позволяет работать с:

    - Файловой системой;
    - Ресурсами локальной сети;
    - Реестром;
    - Специальными папками и ярлыками Windows;
    - Процессами. Запускать и контролировать их выполнение.

WSH позволяет взаимодействовать с Microsoft ActiveX:

    - ActiveX Data Object (ADO) — Доступ к базам данных;
    - Active Directory Service Interface (ADSI) — Службы каталогов;
    - Windows Management Instrumentation (WMI) — Инструментарий управления Windows.

Подробно свойства и методы объектов MS Windows Script Host изложены в файле Automation.chm, доступном в ссылках на скачивание.

Windows Management Instrumentation (WMI) - инструментарий управления Windows.

WMI - это одна из базовых технологий для централизованного наблюдения и управления компьютерной инфраструктуры под управлением платформы Windows.
WMI – это расширенная и адаптированная компанией Microsoft реализация стандарта WBEM (WebBased Enterprise Management) компании DMTF Inc.
Основа WBEM - Common Information Model (CIM), реализующая объектно-ориентированный подход к представлению компонентов системы.

WMI позволяет работать с:
    - Системой;
    - Приложениями;
    - Оборудованием;
    - Сетями;
    др. управляемыми компонентами.

Подробно о Windows Management Instrumentation (англ.): http://msdn.microsoft.com/en-us/library/windows/desktop/aa394572%28v=vs.85%29.aspx


ПРАКТИКА


// Корневые ключи реестра и их сокращения:
// HKEY_CURRENT_USER - HKCU
// HKEY_LOCAL_MACHINE - HKLM
// HKEY_CLASSES_ROOT - HKCR
// HKEY_USERS - HKEY_USERS
// HKEY_CURRENT_CONFIG - HKEY_CURRENT_CONFIG


Список процедур и функций:- ЗарегистрироватьФайлDLL() - Ф., позволяющая зарегистрировать файл типа DLL.- УстановленаПрограмма() - Ф., позволяющая проверить установлена/не установлена программа.- Computer_Programs_Product() - Ф., позволяющая получить информацию об установленных программах лок./уд. компьютере (WMI).- Computer_Programs_Registry() - Ф., позволяющая получить информацию об установленных программах лок./уд. компьютере (REGISTRY).- ИзменитьСтартовуюСтраницуInternetExplorer() - Ф., позволяющая изменить стартовую страницу Internet Explorer лок. компьютера.- RegRead() - Ф. чтения значения ключа или группы из системного реестра.- RegWrite() - Ф. создания в системном реестре ключа или группы.- RegDelete() - Ф. удаления ключа или группы из системного реестра.- Computer_RegistryInformation() - Ф., позволяющая получить информацию о реестре лок./уд. компьютера, в т.ч. дату установки Windows.- Computer_Description() - Ф., позволяющая записать в описание лок./уд. компьютера имя домена\пользователя, работающего на нем.WindowsInfo() - Ф., позволяющая получить информацию об установленной Windows на лок. компьютере.- get_windows_key_via_reg_wmi.vbs. VBS-Срипт.  Получение серийного номера Windows.

// Функция, позволяющая зарегистрировать файл типа DLL.
//
// ВАЖНО:

//
// Windows User Account Control (UAC) в ОС Vista и выше
// может помешать регистрации DLL.
//
// В этом случае необходимо:
// Вручную зарегистрировать фалй от имени "Администратора":
// "C:\Documents and Settings\All Users\1С_COMObject\X.DLL"
// Отключать UAC не рекомендуется.
//
// Возвращает:
//     В случае успеха - COMОбъект.
//     Иначе - Неопределено.
// Параметры:
//     ИмяКаталогаDLL - Относительно переменной среды %ALLUSERSPROFILE%.
//     ИмяФайлаDLL - Короткое имя файла DLL.
//     ИмяМакетаDLL - Имя двоичного макета объекта, в котором находится файл DLL.
//     ИмяCOMОбъекта - Имя создаваемого COMОбъекта.
//
&НаСервере
Функция ЗарегистрироватьФайлDLL(ИмяКаталогаDLL = "1С_COMObject" , ИмяФайлаDLL = "X.DLL", ИмяМакетаDLL = "XY", ИмяCOMОбъекта = "XYZ")
    
    ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    
    ALLUSERSPROFILE = Неопределено;
    Попытка
        WshShell = Новый COMОбъект("WScript.Shell");
        WshSysEnv = WshShell.Environment("Process");
        ALLUSERSPROFILE = WshSysEnv.Item("ALLUSERSPROFILE");
    Исключение
         Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание);
         Возврат Неопределено;
    КонецПопытки;

    КаталогDLL = Новый Файл(ALLUSERSPROFILE + "\" + ИмяКаталогаDLL);
    Если НЕ КаталогDLL.Существует() Тогда
        Попытка
            СоздатьКаталог(КаталогDLL.ПолноеИмя);
        Исключение
            Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание);
            Возврат Неопределено;
        КонецПопытки;
    КонецЕсли;
    
    ИмяФайлаDLL = КаталогDLL.ПолноеИмя + "\" + ИмяФайлаDLL;
    ФайлDLL = Новый Файл(ИмяФайлаDLL);
    Если НЕ ФайлDLL.Существует() Тогда
        Попытка
            МакетDLL = ЭтотОбъект.ПолучитьМакет(ИмяМакетаDLL);
            МакетDLL.Записать(ФайлDLL.ПолноеИмя);
        Исключение
            Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание);
            Возврат Неопределено;
        КонецПопытки;
    КонецЕсли;
    
    Попытка
        // "/s" - "тихий" режим REGsvr32: Окна сообщений не отображаются.
        // 0 - Без окна WshShell.
        // Истина - Дождаться завершения.
        WshShell = Новый COMОбъект("WScript.Shell");
        WshShell.Run("REGsvr32 /s " + ИмяФайлаDLL, 0, Истина);
    Исключение
        //Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание);
        ЗапуститьПриложение("REGsvr32 /s " + ИмяФайлаDLL, , Истина);
    КонецПопытки;
    
    // Проверка регистрации.
    НовыйCOMОбъект = ПолучитьНовыйCOMОбъект(ИмяCOMОбъекта);
    
    Возврат НовыйCOMОбъект;

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

&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьНовыйCOMОбъект(ИмяCOMОбъекта)
    
    Попытка
        НовыйCOMОбъект = Новый COMОбъект(ИмяCOMОбъекта);
        Возврат НовыйCOMОбъект;
    Исключение
        Возврат Неопределено;
    КонецПопытки;
    
    Возврат Неопределено;
    
КонецФункции


// Функция, позволяющая проверить установлена/не установлена программа.
// Проверяет путь в системном реестре и существование запускаемого файла для программы,
// установку которой на компьютере необходимо проверить.

// Используется функция GetFileInfo, описанная в Части II.
//
&НаКлиентеНаСервереБезКонтекста
Функция УстановленаПрограмма(Программа = "LibreOffice")
 

    Файл = Неопределено;
    Если Программа = "LibreOffice" Тогда
        Файл = RegRead("HKLM\Software\LibreOffice\LibreOffice\3.6\Path");
    Иначе
        // Файл = ...
    КонецЕсли;
    
    Если Файл = Неопределено Тогда
        Возврат Ложь;
    КонецЕсли;
    
    ПрограммаЗапуска = GetFileInfo(Файл);
    
    Если НЕ ПрограммаЗапуска = Неопределено Тогда
        // ... Дополнительная проверка при необходимости имени, размера, ....
        Возврат Истина;

    КонецЕсли;
    
    Возврат Ложь;
    
КонецФункции


// Функция, позволяющая получить информацию об установленных программах локальном/удаленном компьютере.
// Параметры:
//    Computer - Имя компьютера.
// Возвращаемое значение:
//    Таблица значений.
//
// Примечания:
// 1. Только программы, установленные с помощью Windows Installer.
// 2. Полнота информации в Windows 2000/XP/2003 ограничена.
// 3. Может не работать на 64-битных ОС.
// 4. Медленнее чтения из регистра.
//

// При запуске на  на компьютере под управлением Windows Server 2003 возможна ошибка чтения данных,
// т.к. поставщик объекта Win32_Product по умолчанию в Windows Server 2003 не устаналивается
.
// Установка:
// Панель управления - Установка и уделение программ - Установка компонентов Windows - Средства наблюдения и управления:

// Компонента: "Поставщик установщика Windows через WMI"
.
//
// Рекомендация:
// Перед применением проверить на компьютерах
// Windows Management Instrumentation (WMI):
// 1. Состояние служб.
// 2. Разрешение в брандмауэре.
// Подробности на странице: //infostart.ru/public/165702/
//

&НаСервереБезКонтекста
Функция Computer_Programs_Product(Computer = ".")
    
    Win32_ProductInfo = Новый ТаблицаЗначений;
    Win32_ProductInfo.Колонки.Добавить("Caption");
    Win32_ProductInfo.Колонки.Добавить("Description");
    Win32_ProductInfo.Колонки.Добавить("HelpLink");
    Win32_ProductInfo.Колонки.Добавить("HelpTelephone");
    Win32_ProductInfo.Колонки.Добавить("IdentifyingNumber");
    Win32_ProductInfo.Колонки.Добавить("InstallDate");
    Win32_ProductInfo.Колонки.Добавить("InstallLocation");
    Win32_ProductInfo.Колонки.Добавить("InstallSource");
    Win32_ProductInfo.Колонки.Добавить("InstallState");
    Win32_ProductInfo.Колонки.Добавить("Language");
    Win32_ProductInfo.Колонки.Добавить("LocalPackage");
    Win32_ProductInfo.Колонки.Добавить("Name");
    Win32_ProductInfo.Колонки.Добавить("PackageCache");
    Win32_ProductInfo.Колонки.Добавить("PackageCode");
    Win32_ProductInfo.Колонки.Добавить("PackageName");
    Win32_ProductInfo.Колонки.Добавить("ProductID");
    Win32_ProductInfo.Колонки.Добавить("RegCompany");
    Win32_ProductInfo.Колонки.Добавить("RegOwner");
    Win32_ProductInfo.Колонки.Добавить("SKUNumber");
    Win32_ProductInfo.Колонки.Добавить("Transforms");
    Win32_ProductInfo.Колонки.Добавить("URLInfoAbout");
    Win32_ProductInfo.Колонки.Добавить("URLUpdateInfo");
    Win32_ProductInfo.Колонки.Добавить("Vendor");
    Win32_ProductInfo.Колонки.Добавить("Version");
    
    Попытка
        
        WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\cimv2");
        Win32_Product = WinMGMT.ExecQuery("SELECT * FROM Win32_Product");
        
        Для Каждого Product ИЗ Win32_Product Цикл
            ProductInfo = Win32_ProductInfo.Добавить();
            ProductInfo.Caption = ПолучитьЗначениеВПопытке(Product, "Caption");
            ProductInfo.Description = ПолучитьЗначениеВПопытке(Product, "Description");
            ProductInfo.HelpLink = ПолучитьЗначениеВПопытке(Product, "HelpLink");
            ProductInfo.HelpTelephone = ПолучитьЗначениеВПопытке(Product, "HelpTelephone");
            ProductInfo.IdentifyingNumber = ПолучитьЗначениеВПопытке(Product, "IdentifyingNumber");
            InstallDate = ПолучитьЗначениеВПопытке(Product, "InstallDate");
            Попытка
                ProductInfo.InstallDate = Дата(Лев(InstallDate,8));
            Исключение
                ProductInfo.InstallDate = InstallDate;
            КонецПопытки;
            ProductInfo.InstallLocation = ПолучитьЗначениеВПопытке(Product, "InstallLocation");
            ProductInfo.InstallSource = ПолучитьЗначениеВПопытке(Product, "InstallSource");
            InstallState = ПолучитьЗначениеВПопытке(Product, "InstallState");
            Если InstallState = -6 Тогда
                ProductInfo.InstallState = "Bad Configuration";
            ИначеЕсли InstallState = -2 Тогда
                ProductInfo.InstallState = "Invalid Argument";
            ИначеЕсли InstallState = -1 Тогда
                ProductInfo.InstallState = "Unknown Package";
            ИначеЕсли InstallState = 1 Тогда
                ProductInfo.InstallState = "Advertised";
            ИначеЕсли InstallState = 2 Тогда
                ProductInfo.InstallState = "Absent";
            ИначеЕсли InstallState = 5 Тогда
                ProductInfo.InstallState = "Installed";
            Иначе
                ProductInfo.InstallState = "Invalid State";
            КонецЕсли;
            Language = ПолучитьЗначениеВПопытке(Product, "Language");
            Если Language = "1033" Тогда
                ProductInfo.Language = "Английский";
            ИначеЕсли Language = "1049" Тогда
                ProductInfo.Language = "Русский";
            ИначеЕсли Language = "0" Тогда
                ProductInfo.Language = "";
            Иначе
                ProductInfo.Language = Language;
            КонецЕсли;
            ProductInfo.LocalPackage = ПолучитьЗначениеВПопытке(Product, "LocalPackage");
            ProductInfo.Name = ПолучитьЗначениеВПопытке(Product, "Name");
            ProductInfo.PackageCache = ПолучитьЗначениеВПопытке(Product, "PackageCache");
            ProductInfo.PackageCode = ПолучитьЗначениеВПопытке(Product, "PackageCode");
            ProductInfo.PackageName = ПолучитьЗначениеВПопытке(Product, "PackageName");
            ProductInfo.ProductID = ПолучитьЗначениеВПопытке(Product, "ProductID");
            ProductInfo.RegCompany = ПолучитьЗначениеВПопытке(Product, "RegCompany");
            ProductInfo.RegOwner = ПолучитьЗначениеВПопытке(Product, "RegOwner");
            ProductInfo.SKUNumber = ПолучитьЗначениеВПопытке(Product, "SKUNumber");
            ProductInfo.Transforms = ПолучитьЗначениеВПопытке(Product, "Transforms");
            ProductInfo.URLInfoAbout = ПолучитьЗначениеВПопытке(Product, "URLInfoAbout");
            ProductInfo.URLUpdateInfo = ПолучитьЗначениеВПопытке(Product, "URLUpdateInfo");
            ProductInfo.Vendor = ПолучитьЗначениеВПопытке(Product, "Vendor");
            ProductInfo.Version = ПолучитьЗначениеВПопытке(Product, "Version");
        КонецЦикла;
        
    Исключение
    КонецПопытки;

    Win32_ProductInfo.Сортировать("Name");
    
    Возврат Win32_ProductInfo;
    
КонецФункции

&НаСервереБезКонтекста
Функция ПолучитьЗначениеВПопытке(хОбъект, хРеквизит)
    
    Попытка
        Возврат хОбъект[хРеквизит];
    Исключение
        Возврат Неопределено;
    КонецПопытки;
    
    Возврат Неопределено;
    
КонецФункции


// Функция, позволяющая получить информацию об установленных программах локальном/удаленном компьютере.
// Параметры:
//    Computer - Имя компьютера.
// Возвращаемое значение:
//    Таблица значений.
//
// Примечания:
// 1. Полнота информации [в сравнении с функцией Computer_Programs_Product()]:
//        - Количество программ больше, т.к. нет ограничения на "Только программы, установленные с помощью Windows Installer".
//        - Количество данных о конкретной программе меньше, но основная информация доступна.
// 2. Поддержка 64-битных ОС (из-за отсутствия 64-битной Windows - не проверялось).
// 3. Быстрее, чем при использовании WMI: (
"SELECT * FROM Win32_Product").
//
// Рекомендация:
// Перед применением проверить на компьютерах
// Windows Management Instrumentation (WMI):
// 1. Состояние служб.
// 2. Разрешение в брандмауэре.
// Подробности на странице: //infostart.ru/public/165702/
//

&НаСервереБезКонтекста
Функция Computer_Programs_Registry(Computer = ".")
    
    Win32_ProductInfo
= Новый ТаблицаЗначений;
    Win32_ProductInfo.Колонки.Добавить("Caption");
    Win32_ProductInfo.Колонки.Добавить("Description");
    Win32_ProductInfo.Колонки.Добавить("HelpLink");
    Win32_ProductInfo.Колонки.Добавить("HelpTelephone");
    Win32_ProductInfo.Колонки.Добавить("IdentifyingNumber");
    Win32_ProductInfo.Колонки.Добавить("InstallDate");
    Win32_ProductInfo.Колонки.Добавить("InstallLocation");
    Win32_ProductInfo.Колонки.Добавить("InstallSource");
    Win32_ProductInfo.Колонки.Добавить("InstallState");
    Win32_ProductInfo.Колонки.Добавить("Language");
    Win32_ProductInfo.Колонки.Добавить("LocalPackage");
    Win32_ProductInfo.Колонки.Добавить("Name");
    Win32_ProductInfo.Колонки.Добавить("PackageCache");
    Win32_ProductInfo.Колонки.Добавить("PackageCode");
    Win32_ProductInfo.Колонки.Добавить("PackageName");
    Win32_ProductInfo.Колонки.Добавить("ProductID");
    Win32_ProductInfo.Колонки.Добавить("RegCompany");
    Win32_ProductInfo.Колонки.Добавить("RegOwner");
    Win32_ProductInfo.Колонки.Добавить("SKUNumber");
    Win32_ProductInfo.Колонки.Добавить("Transforms");
    Win32_ProductInfo.Колонки.Добавить("URLInfoAbout");
    Win32_ProductInfo.Колонки.Добавить("URLUpdateInfo");
    Win32_ProductInfo.Колонки.Добавить("Vendor");
    Win32_ProductInfo.Колонки.Добавить("Version");
    
    Попытка
        
        WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\default:StdRegProv");
        
        HKCU = 2147483649;
        HKLM = 2147483650;
        
        HKCUPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\";
        HKLMPath32 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\";
        HKLMPath64 = "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\";
        
        Computer_Programs_Registry_Key(WinMGMT, HKCU, HKCUPath   , Win32_ProductInfo);
        Computer_Programs_Registry_Key(WinMGMT, HKLM, HKLMPath32, Win32_ProductInfo);
        Computer_Programs_Registry_Key(WinMGMT, HKLM, HKLMPath64, Win32_ProductInfo);
        
    Исключение
    КонецПопытки;
    
    Win32_ProductInfo.Сортировать("Name");
    
    Возврат Win32_ProductInfo;
    
КонецФункции
    
&НаСервереБезКонтекста
Функция Computer_Programs_Registry_Key(WinMGMT, HK, HKPath, Win32_ProductInfo)
    
    Win32_Product = Новый Массив;
    Попытка
        WinMGMT.EnumKey(HK, HKPath, Win32_Product);
        Если Win32_Product = NULL Тогда
            Возврат Неопределено;
        КонецЕсли;
    Исключение
        Возврат Неопределено;
    КонецПопытки;
    
    Для Каждого Product ИЗ Win32_Product Цикл
        Name = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "DisplayName");
        Version = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "DisplayVersion");
        ProductID = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "ProductGuid");
        ParentName = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "ParentDisplayName");
        NameString = Win32_ProductInfo.Найти(Name, "Name");
        Если Name = Неопределено ИЛИ (НЕ NameString = Неопределено И NameString.Version = Version) Тогда
            Продолжить;
        КонецЕсли;
        ProductInfo = Win32_ProductInfo.Добавить();
        ProductInfo.Caption = Name;
        ProductInfo.Description = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "Description");
        Если НЕ ЗначениеЗаполнено(ProductInfo.Description) Тогда
            ProductInfo.Description = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "Comments");
        КонецЕсли;
        Если НЕ ЗначениеЗаполнено(ProductInfo.Description) Тогда
            ProductInfo.Description = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "Readme");
        КонецЕсли;
        Если НЕ ЗначениеЗаполнено(ProductInfo.Description) Тогда
            ProductInfo.Description = Name;
        КонецЕсли;
        ProductInfo.HelpLink = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "HelpLink");
        ProductInfo.HelpTelephone = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "HelpTelephone");
        Если НЕ ЗначениеЗаполнено(ProductID) Тогда
            IdentifyingNumber = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "UninstallString");
            Если НЕ ЗначениеЗаполнено(IdentifyingNumber) Тогда
                IdentifyingNumber = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "ModifyPath");
            КонецЕсли;
            Если ЗначениеЗаполнено(IdentifyingNumber) Тогда
                ПозицияЛевойСкобки = Найти(IdentifyingNumber, "{");
                ПозицияПравойСкобки = Найти(IdentifyingNumber, "}");
                Если ПозицияЛевойСкобки > 0 И ПозицияПравойСкобки > 0 Тогда
                    ProductInfo.IdentifyingNumber = Сред(IdentifyingNumber, ПозицияЛевойСкобки, ПозицияПравойСкобки-ПозицияЛевойСкобки+1);
                КонецЕсли;
            КонецЕсли;
        Иначе
            ProductInfo.IdentifyingNumber = ProductID;
        КонецЕсли;
        InstallDate = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "InstallDate");
        Попытка
            ProductInfo.InstallDate = Дата(Лев(InstallDate,8));
        Исключение
            ProductInfo.InstallDate = InstallDate;
        КонецПопытки;
        ProductInfo.InstallLocation = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "InstallLocation");
        ProductInfo.InstallSource = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "InstallSource");
        ProductInfo.InstallState = Неопределено;
        ProductInfo.Language = Неопределено;
        ProductInfo.LocalPackage = Неопределено;
        ProductInfo.Name = Name;
        ProductInfo.PackageCache = Неопределено;
        ProductInfo.PackageCode = Неопределено;
        ProductInfo.PackageName = Неопределено;
        ProductInfo.ProductID = ProductID;
        ProductInfo.RegCompany = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "RegCompany");
        ProductInfo.RegOwner = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "RegOwner");
        ProductInfo.SKUNumber = Неопределено;
        ProductInfo.Transforms = Неопределено;
        ProductInfo.URLInfoAbout = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "URLInfoAbout");
        ProductInfo.URLUpdateInfo = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "URLUpdateInfo");
        ProductInfo.Vendor = ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKPath, Win32_ProductInfo, Product, "Publisher");
        ProductInfo.Version = Version;
    КонецЦикла;
    
КонецФункции

&НаСервереБезКонтекста
Функция ПолучитьЗначениеВПопытке_Key(WinMGMT, HK, HKXXPath, Win32_ProductInfo, Product, KeyName)
    
    Попытка
        Value = Неопределено;
        WinMGMT.GetStringValue(HK, HKXXPath + Product, KeyName, Value);
        Если Value = NULL ИЛИ СтрДлина(Value) = 0 Тогда
            Возврат Неопределено;
        Иначе
            Возврат Value;
        КонецЕсли;
    Исключение
        Возврат Неопределено;
    КонецПопытки;
    
    Возврат Неопределено;
       
КонецФункции


// Функция, позволяющая изменить стартовую страницу Internet Explorer локального компьютера.
// Для бухгалтеров - одно, для менеджеров - другое, ...
//

&НаКлиентеНаСервереБезКонтекста
Функция ИзменитьСтартовуюСтраницуInternetExplorer(НоваяСтраница)
    
    ТекущаяСтраница = RegRead("HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page");
    Сообщить("Предыдущая стартовая страница IE: " + ТекущаяСтраница);
    
    RegWrite("HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page", НоваяСтраница, "REG_SZ");
    
    ТекущаяСтраница = RegRead("HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page");
    Сообщить("Новая стартовая страница IE: " + ТекущаяСтраница);
    
КонецФункции


// Функция чтения значения ключа или группы из системного реестра.
// Возвращаемые значения типа:
// REG_SZ - строка.
// REG_DWORD - целое число.
// REG_BINARY - массив целый чисел
// REG_EXPAND_SZ - строка.
// REG_MULTI_SZ - массив строк.

&НаКлиентеНаСервереБезКонтекста
Функция RegRead(Путь = "HKLM\Software\Nokia\")
    
    Значение = Неопределено;
    
    Попытка
        WshShell = Новый COMОбъект("WScript.Shell");
        Значение = WshShell.RegRead(Путь);
    Исключение
    КонецПопытки;
    
    Возврат Значение;
    
КонецФункции


// Функция создания в системном реестре ключа или группы.
//
&НаКлиентеНаСервереБезКонтекста
Функция RegWrite(Путь = "HKLM\Software\Nokia\", Ключ = "Nokia_", Тип = "REG_SZ")
    
    Значение = Неопределено;
    
    Попытка
        WshShell = Новый COMОбъект("WScript.Shell");
        WshShell.RegWrite(Путь, Ключ, Тип);
    
        Значение = WshShell.RegRead(Путь);
    Исключение
    КонецПопытки;
    
    Если НЕ Значение = Неопределено Тогда
        Возврат Истина;
    КонецЕсли;
    
    Возврат Ложь;

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


// Функция удаления ключа или группы из системного реестра.
//
&НаКлиентеНаСервереБезКонтекста
Функция RegDelete(Путь = Неопределено)
    
    Если Путь = Неопределено Тогда
        Возврат Ложь;
    КонецЕсли;
    
    Значение = Неопределено;
    Попытка
        WshShell = Новый COMОбъект("WScript.Shell");
        WshShell.RegDelete(Путь);
        
        Значение = WshShell.RegRead(Путь);
    Исключение
    КонецПопытки;
    
    Если Значение = Неопределено Тогда
        Возврат Истина;
    КонецЕсли;
    
    Возврат Ложь;
    
КонецФункции


// Функция, позволяющая получить информацию о реестре локального/удаленного компьютера, в т.ч. дату установки Windows.
// Параметры:
//    Computer - Имя компьютера.
// Возвращаемое значение:
//    Структура.
//
// Рекомендация:
// Перед применением проверить на компьютерах
// Windows Management Instrumentation (WMI):
// 1. Состояние служб.
// 2. Разрешение в брандмауэре.
// Подробности на странице: //infostart.ru/public/165702/
//
&НаСервереБезКонтекста

Функция Computer_RegistryInformation(Computer = ".")
    
    WinRegistryInfo = Новый Структура("Name,Description,InstallDate,CurrentSize,MaximumSize");
    
    Попытка
        
        WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\cimv2");
        Win32_Registry = WinMGMT.ExecQuery("SELECT * FROM Win32_Registry");
        
        Для Каждого Registry ИЗ Win32_Registry Цикл
            WinRegistryInfo.Name = Registry.Name;
            WinRegistryInfo.Description = Registry.Description;
            // Дата установки Windows.
            Попытка
                WinRegistryInfo.InstallDate = Дата(Лев(Registry.InstallDate,14));
            Исключение
            КонецПопытки;
            WinRegistryInfo.CurrentSize = Registry.CurrentSize;
            WinRegistryInfo.MaximumSize = Registry.MaximumSize;
        КонецЦикла;
        
    Исключение
    КонецПопытки;
    
    Возврат WinRegistryInfo;

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


// Функция, позволяющая записать в описание локального/удаленного компьютера имя домена\пользователя, работающего на нем.
// Описание компьютера отображается в качестве комментария в сетевом окружении.
// Изменяет параметр реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\srvcomment
// Применено WMI, т.к.:
// Изменения параметра в реестре требует перезагрузки компьютера для вступления в силу изменения,
// а при использовании WMI - изменения сразу вступают в силу.
//
// Параметры:
//    Computer - Имя компьютера.
// Возвращаемое значение:
//    Нет.
//
// Рекомендация:
// Перед применением проверить на компьютерах
// Windows Management Instrumentation (WMI):
// 1. Состояние служб.
// 2. Разрешение в брандмауэре.
// Подробности на странице: //infostart.ru/public/165702/
//
&НаСервереБезКонтекста
Функция Computer_Description(Computer = ".")
    
    Попытка
        
        WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\cimv2");
        
        Win32_ComputerSystem = WinMGMT.ExecQuery("SELECT * FROM Win32_ComputerSystem");
        
        Для Каждого ComputerSystem ИЗ Win32_ComputerSystem Цикл
            NewDescription = ComputerSystem.UserName;
        КонецЦикла;
        
        Win32_OS = WinMGMT.InstancesOf("Win32_OperatingSystem");
        
        Для Каждого OS ИЗ Win32_OS Цикл
            OS.Description = NewDescription;
            OS.Put_();
        КонецЦикла;
        
    Исключение
    КонецПопытки;
    
КонецФункции


// Функция, позволяющая получить информацию об установленной Windows на локальном компьютере.
// Параметры:
//    НЕТ.
// Возвращаемое значение:
//    Структура.
//
&НаСервереБезКонтекста
Функция WindowsInfo()
    
    Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion";
    WINInfo = Новый Структура("BuildLab,CSDVersion,CurrentBuildNumber,CurrentVersion,ProductId,ProductName,RegisteredOrganization,RegisteredOwner,SystemRoot");
    
    Попытка
        WshShell = Новый COMОбъект("WScript.Shell");
        WINInfo.BuildLab = WshShell.RegRead(Path+"\BuildLab");
        WINInfo.CSDVersion = WshShell.RegRead(Path+"\CSDVersion");
        WINInfo.CurrentBuildNumber = WshShell.RegRead(Path+"\CurrentBuildNumber");
        WINInfo.CurrentVersion = WshShell.RegRead(Path+"\CurrentVersion");
        WINInfo.ProductId = WshShell.RegRead(Path+"\ProductId");
        WINInfo.ProductName = WshShell.RegRead(Path+"\ProductName");
        WINInfo.RegisteredOrganization = WshShell.RegRead(Path+"\RegisteredOrganization");
        WINInfo.RegisteredOwner = WshShell.RegRead(Path+"\RegisteredOwner");
        WINInfo.SystemRoot = WshShell.RegRead(Path+"\SystemRoot");
    Исключение
    КонецПопытки;

    Возврат WINInfo;
    
КонецФункции

 


VBS-Срипт. Получение серийного номера Windows.

' Получение серийного номера Windows.
' Нижеследующий текст необходимо записать в файл, например с именем get_windows_key_via_reg_wmi.vbs

' Командная строка: get_windows_key_via_reg_wmi.vbs
' где - Имя удаленного компьютера.
'
По-умолчанию (без параметра) скрипт выполняется относительно локального компьютера.

' Методы считывания: Утилита REG.EXE  и WMI. Необходимые настройки.
' При считывании из реестра используется утилита REG.EXE.
' При этом на целевом (удаленном) компьютере должна быть запущена служба "Удаленный реестр".
' Если невозможно прочитать значение ключа удаленного реестра, используется WMI.
' При этом на целевом компьютере должен быть настроен WMI для удаленного доступа. см. подробности: //infostart.ru/public/172189

' Windows x32/x64. Особенности использования. Известные проблемы (условие: настройки произведены).
' Рекомендованный способ применения: Локально с правами администратора.
' Получение серийного номера удаленно.
' При удаленном получении серийного номера результат не всегда положительный.
' Исходный ПК x64, Целевой ПК x64 - результат положительный.
' Исходный ПК x64, Целевой ПК x32 - результат положительный.
' Исходный ПК x32, Целевой ПК x32 - результат положительный.
' Исходный ПК x32, Целевой ПК x64 - REG - отрицательный, WMI - положительный результат.
' Пояснение:
' При считывании из x32-Клиента в следствии отображения x64-Ключей на x32-Ключи происходит обращение к ветке реестра:
' HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\DigitalProductID
' Ключ DigitalProductID в разделе HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion по-умолчанию отсутствует.

' Примечание:
' Проверка существования компьютера в сети и его доступности не осуществляется.

On Error Resume Next

const HKLM = &H80000002
const KEY_QUERY_VALUE = &H1

Set WshShell = CreateObject("WScript.Shell")

Set WshArg = WScript.Arguments
If WshArg.Count > 0 Then
    isLocalHost = FALSE
    CompName = WshArg(0)
    If CompName = "." Then
        isLocalHost = TRUE
        CompName = WshShell.ExpandEnvironmentStrings("%computername%")
    End If
Else
    isLocalHost = TRUE
    CompName = WshShell.ExpandEnvironmentStrings("%computername%")
End If

PathFile = WshShell.CurrentDirectory & "\"
FileNameOUT = PathFile & "WinSKey_" & UCase(CompName) & ".txt"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set objFileOUT = FSO.OpenTextFile(FileNameOUT, 2, TRUE)
objFileOUT.Write "PC: " & UCase(CompName) & vbNewLine

' Windows x64.
' При считывании из x32-Клиента в следствии отображения x64-Ключей на x32-Ключи происходит обращение к ветке реестра:
' HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\DigitalProductID
' Ключ DigitalProductID в разделе HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion по-умолчанию отсутствует.

If isLocalHost Then
    ' Извлечение данных из реестра на локальном компьютере.
    sSubKeyName = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
    ProductName = WshShell.RegRead(sSubKeyName & "ProductName")
    DigitalProductId = WshShell.RegRead(sSubKeyName & "DigitalProductId")

    WinProductSN = ConvertToKey(DigitalProductId)

    objFileOUT.Write "OS: " & ProductName & vbNewLine
    objFileOUT.Write "REG: " & WinProductSN & vbNewLine
Else
    ' На целевом (удаленном) компьютере должна быть запущена служба "Удаленный реестр".
    sSubKeyName = "\\" & CompName & "\hklm\software\microsoft\windows nt\currentversion"

    ProductName = RegReadKey(sSubKeyName, "ProductName", FSO, PathFile, "EXEC-RUN")
    If NOT IsEmpty(ProductName) Then
        objFileOUT.Write "OS: " & ProductName & vbNewLine
    End If
    
    DigitalProductId = RegReadKey(sSubKeyName, "DigitalProductID", FSO, PathFile, "EXEC-RUN")
    If IsEmpty(DigitalProductId) Then
        ReadRegistry = FALSE
        objFileOUT.Write "REG: Error read " & sSubKeyName & "\DigitalProductId." & vbNewLine
    Else
        ReadRegistry = TRUE
        DigitalProductId = StringToArrayByte(DigitalProductId)

        WinProductSN = ConvertToKey(DigitalProductId)

        objFileOUT.Write "REG: " & WinProductSN & vbNewLine
    End If

    ' На целевом компьютере должна быть настроен WMI для удаленного доступа. см. подробности: //infostart.ru/public/172189
    Set WinMGMT = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & CompName & "\root\default:StdRegProv")
    If Err.Number <> 0 Then
        objFileOUT.Write "WMI: Error= " & Err.Number & ": Error create WinMGMT. " & Err.Description & vbNewLine
        objFileOUT.Close
        WScript.Quit 1
    End If

    sSubKeyName = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
    intRes = WinMGMT.CheckAccess(HKLM, sSubKeyName, KEY_QUERY_VALUE, bGranted)
    If intRes <> 0 Then
        objFileOUT.Write "WMI: Error=" & intRes & ": Failed verification of rights to read the " & sSubKeyName & vbNewLine
        objFileOUT.Close
        WScript.Quit 1
    End If

    If bGranted Then
        If IsEmpty(ProductName) Then
            intRes = WinMGMT.GetStringValue(HKLM, sSubKeyName, "ProductName", ProductName)
            If IsEmpty(ProductName) Then
                ProductName = "Windows-?"
            Else
                objFileOUT.Write "OS: " & ProductName & vbNewLine
            End If
        End If
        intRes = WinMGMT.GetBinaryValue(HKLM, sSubKeyName, "DigitalProductId", DigitalProductId)
        If intRes <> 0 Then
            objFileOUT.Write "WMI: Error=" & intRes & ": Error read HKLM\" & sSubKeyName & "DigitalProductId." & vbNewLine
            objFileOUT.Close
            WScript.Quit 1
        End If
    Else
        objFileOUT.Write "WMI: No permission to read the registry key HKLM\" & sSubKeyName & vbNewLine
        objFileOUT.Close
        WScript.Quit 1
    End If

    WinProductSN = ConvertToKey(DigitalProductId)

    objFileOUT.Write "WMI: " & WinProductSN & vbNewLine
End If

objFileOUT.Close
WScript.Quit 0

Function RegReadKey(sSubKeyName, sKeyName, FSO, PathFile, RunExec)
    Dim ObjExec, FileTMP, objFileTMP, intRes, sOUT, IsBreak, ArrOUT, LineKEY, ArrKEY, i, KeyVALUE

    FileTMP = PathFile & sKeyName & ".txt"
    If RunExec = "EXEC" Then    
        Set ObjExec = WshShell.Exec("%comspec% /c reg.exe query " & chr(34) & sSubKeyName & chr(34) & " /v " & sKeyName)
        sOUT = NUL
        IsBreak = FALSE
        Do While TRUE    ' Бесконечный цикл.
            ' Проверяем, достигнут ли конец выходного потока.
            If (Not ObjExec.StdOut.AtEndOfStream) Then
                ' Считываем полностью выходной поток.
                sOUT = sOUT + ObjExec.StdOut.ReadAll
            End If
            If IsBreak Then
                Exit Do    ' Выходим из цикла.
            End If
            ' Проверяем, не завершилось ли выполнение команды.
            If ObjExec.Status=1 Then
                IsBreak = TRUE
            Else
                WScript.Sleep 100    ' Приостанавливаем сценарий на 0,1 сек.
            End If
        Loop
        ArrOUT = Split(sOUT, vbCrLf)    ' Формируем массив из выходного потока.
        LineKEY = ArrOUT(2)        ' Строка, содержащая ключ.
    Else
        intRes = WshShell.Run("%comspec% /c reg.exe query " & chr(34) & sSubKeyName & chr(34) & " /v " & sKeyName & " > " & chr(34) & FileTMP & chr(34), 0, TRUE)
        If intRes = 0 Then
            Set objFileTMP = FSO.OpenTextFile(FileTMP, 1, TRUE)
            objFileTMP.SkipLine
            objFileTMP.SkipLine
            lineKEY = objFileTMP.ReadLine    ' Строка, содержащая ключ.
            objFileTMP.Close
            FSO.DeleteFile(FileTMP)
        Else
            FSO.DeleteFile(FileTMP)
            RegReadKey = NUL
        End If
    End If
    lineKEY = Trim(Replace(lineKEY, "  ", " "))
    ArrKEY = Split(lineKEY)
    KeyVALUE = NUL
    For i = 4 TO UBound(ArrKEY)
        KeyVALUE = KeyVALUE & " " & ArrKEY(i)
    Next
    KeyVALUE = Trim(KeyVALUE)
    RegReadKey = KeyVALUE
End Function

Function StringToArrayByte(byVal regKeySTR)
    Dim newElem, strArr(164)
    ii = -1
    For i = 1 To Len(regKeySTR) Step 2
        ii = ii+1
        newElem = Mid(regKeySTR, i, 2)
        strArr(ii) = StrToByte(newElem)
    Next
    StringToArrayByte = strArr
End Function

Function StrToByte(byval text)
    Dim S1, S2, Value1, Value2

    S1 = Mid(text, 1, 1)
    S2 = Mid(text, 2, 1)

    If S1 = "A" Then Value1 = 160 End If
    If S1 = "B" Then Value1 = 176 End If
    If S1 = "C" Then Value1 = 192 End If
    If S1 = "D" Then Value1 = 208 End If
    If S1 = "E" Then Value1 = 224 End If
    If S1 = "F" Then Value1 = 240 End If

    If S1 = "0" OR S1 = "1" OR S1 = "2" OR S1 = "3" OR S1 = "4" OR S1 = "5" OR S1 = "6" OR S1 = "7" OR S1 = "8" OR S1 = "9" Then Value1 = CInt(S1)*16^1 End If

    If S2 = "A" Then Value2 = 10 End If
    If S2 = "B" Then Value2 = 11 End If
    If S2 = "C" Then Value2 = 12 End If
    If S2 = "D" Then Value2 = 13 End If
    If S2 = "E" Then Value2 = 14 End If
    If S2 = "F" Then Value2 = 15 End If

    If S2 = "0" OR S2 = "1" OR S2 = "2" OR S2 = "3" OR S2 = "4" OR S2 = "5" OR S2 = "6" OR S2 = "7" OR S2 = "8" OR S2 = "9" Then Value2 = CInt(S2) End If

    StrToByte = CByte(Value1+Value2)
End Function

Function ConvertToKey(regKeyHEX8)
    Const KeyOffset = 52
    isWin8 = (regKeyHEX8(66) \ 6) And 1
    regKeyHEX8(66) = (regKeyHEX8(66) And &HF7) Or ((isWin8 And 2) * 4)
    j = 24
    Chars = "BCDFGHJKMPQRTVWXY2346789"    '24 Symbol used in the product keys, Windows and Office.
    Do
        Cur = 0
        y = 14
        Do
            Cur = Cur * 256
            Cur = regKeyHEX8(y + KeyOffset) + Cur
            regKeyHEX8(y + KeyOffset) = (Cur \ 24)
            Cur = Cur Mod 24
            y = y -1
        Loop While y >= 0
        j = j -1
        winKeyOutput = Mid(Chars, Cur + 1, 1) & winKeyOutput
        Last = Cur
    Loop While j >= 0
    If (isWin8 = 1) Then
        keypart1 = Mid(winKeyOutput, 2, Last)
        insert = "N"
        winKeyOutput = Replace(winKeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
        If Last = 0 Then winKeyOutput = insert & winKeyOutput
    End If
    a = Mid(winKeyOutput, 1, 5)
    b = Mid(winKeyOutput, 6, 5)
    c = Mid(winKeyOutput, 11, 5)
    d = Mid(winKeyOutput, 16, 5)
    e = Mid(winKeyOutput, 21, 5)
    ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function
' Файл get_windows_key_via_reg_wmi.vbs доступен для скачивания в ссылках к обработке Системный администратор: //infostart.ru/public/172189

МА! С уважением к сообществу МА!


Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. TrinitronOTV 5 17.12.12 09:46 Сейчас в теме
тоже присоединюсь к сообществу: большое спасибо за данную публикацию, полезная информация
2. Поручик 4409 17.12.12 11:22 Сейчас в теме
(0) Ради трёх функций надо выделять в отдельную публикацию? Ты случайно не рейтинг с манями нарабатываешь?
4. StepByStep 3355 17.12.12 11:42 Сейчас в теме
(2) Поручик,
1-я часть - То, чем сам пользуюсь, что заинтересовало.
2-я часть - Тематическая - "Работа с Файловой системой".
3-я часть - Тематическая - "Работа с Реестром".
Надо было конечно сразу - по темам, было бы структурировано, что кажется более логично.
Но теперь - что сделано - то сделано.
21. amon_ra 3 08.05.13 12:39 Сейчас в теме
(4) спасибо за статью. Интересует функция ЗарегистрироватьФайлDLL() от имени администратора можно ли зарегать компоненту и что бы uac не появлялась?
22. StepByStep 3355 20.10.13 19:28 Сейчас в теме
(21) amon_ra,
Нативную внешнюю компоненту ?
3. Поручик 4409 17.12.12 11:23 Сейчас в теме
(0) Кстати, Automation.chm ты сам делал?
5. StepByStep 3355 17.12.12 11:47 Сейчас в теме
(3) Поручик,
Automation.chm взял готовым, где взял - теперь уже и не помню.
19. AlexO 129 21.02.13 15:12 Сейчас в теме
(5)
теперь уже и не помню.

я знаю, где взял :)
15. jmw 60 30.01.13 05:47 Сейчас в теме
(3) Порутчик, Automation.chm лежит на Скрипт кодинг-е
http://www.script-coding.com/
6. SeiOkami 1478 17.12.12 11:51 Сейчас в теме
StepByStep, Спасибо большое за интересные статьи, но всё же и вправду объединить их в одну статью было бы лучше. А то как то даже не прилично выглядит)
И всё же плюс =)
7. sstar90 17.12.12 12:35 Сейчас в теме
8. tvixeg 519 18.12.12 12:33 Сейчас в теме
интересует как с помощью WSH можно одновременно изменить размер управляемой формы и перетащить ее верх за границу экрана, сделав таким образом рабочий стол на весь экран. Встречал тут обработку которая может или перетащить за границу экрана, или изменить размер, а одновременно не может. Исходников там нет все зашито в dll.
9. StepByStep 3355 18.12.12 22:44 Сейчас в теме
(8) tvixeg,
WSH - Это сценарии команд, запускаемые интерпретаторами:
- Wscript.exe (если надо, выводит диалоговое окно);
- Cscript.exe (никаких диалоговых окон не выводит).
Wscript.exe - Используется по умолчанию в Windows.

WSH Имеет минимум возможностей по работе с окнами:
- Запустить программу в скрытом/минимальном/стандартном/текущим размером окна.
- Создать ярлык, запускающий программу в максимальном/стандартном/свернутым окном.
- Минимизировать/Отменить минимизацию окон открытых приложений.
- Определить количество открытых окон проводника.
- Расположить окна каскадом.
- Вывести окно сообщений.
- Активизировать окно интересующего приложения.
10. iceflash 4 20.12.12 02:34 Сейчас в теме
(8) tvixeg,
То, о чем вы говорите делается посредством вызовов Win API функций
11. mzelensky 53 20.12.12 07:54 Сейчас в теме
12. AlexBar 51 21.12.12 13:09 Сейчас в теме
Подскажите, как получить из сетевого окружения все компы сети? Доступные домены, IP и имена каждого компа, принадлежность к домену?
StepByStep; +1 Ответить
13. StepByStep 3355 23.12.12 12:31 Сейчас в теме
(12) AlexBar,
Данная часть "WSH. ОТ ТЕОРИИ К ПРАКТИКЕ" посвящена реестру.
Интересующая Вас функция "СетевоеОкружение()" добавлена мной сегодня в Часть I, в сборной, так сказать, "солянке".
Спасибо.
14. StepByStep 3355 29.12.12 16:48 Сейчас в теме
Добавлена новая Функция ЗарегистрироватьФайлDLL().
16. StepByStep 3355 30.01.13 11:44 Сейчас в теме
Добавлены 2 новых функции:
1. RegistryInformation:
Функция, позволяющая получить информацию о реестре локального/удаленного компьютера,
а также дату установки Windows.
2. DescriptionComputer:
Функция, позволяющая записать в описание компьютера (локального/удаленного) имя домена\пользователя, работающего на нем.
Описание компьютера отображается в качестве комментария в сетевом окружении.
17. StepByStep 3355 30.01.13 13:55 Сейчас в теме
Добавлена новая функция WindowsInfo:
Функция, позволяющая получить информацию об установленной Windows на локальном компьютере.
18. StepByStep 3355 21.02.13 13:42 Сейчас в теме
Добавлена новая функция Computer_Programs():
Функция, позволяющая получить информацию об установленных программах локальном/удаленном компьютере.
20. StepByStep 3355 26.02.13 09:39 Сейчас в теме
Функция Computer_Programs() заменена на Computer_Programs_Product().
Добавлена новая функция Computer_Programs_Registry().
Функции, позволяющие получить информацию об установленных программах локальном/удаленном компьютере.
23. StepByStep 3355 20.10.13 19:29 Сейчас в теме
20.10.2013.
Добавлен vbs-Срипт. Получение серийного номера Windows.
24. Ovrfox 14 16.12.15 15:02 Сейчас в теме
Привет всем
Использование * в запросах иногда приводит к существенным временным затратам
Например время исполнения запроса - несколько секунд, а именнованного несколько милисекунд
Win32_ComputerSystem = WinMGMT.ExecQuery("SELECT * FROM Win32_ComputerSystem");
        
        Для Каждого ComputerSystem ИЗ Win32_ComputerSystem Цикл
            NewDescription = ComputerSystem.UserName;
        КонецЦикла;

Win32_ComputerSystem = WinMGMT.ExecQuery("SELECT UserName FROM Win32_ComputerSystem");
        
        Для Каждого ComputerSystem ИЗ Win32_ComputerSystem Цикл
            NewDescription = ComputerSystem.UserName;
        КонецЦикла;
25. StepByStep 3355 24.12.15 17:25 Сейчас в теме
26. ybatiaev 51 14.05.18 15:52 Сейчас в теме
Добрый день!
Подскажите! Не могу понять!
Запускаю Процесс = WshShell.Exec(СтрокаКоманды), где в переменную СтрокаКоманды уже вписана строка создания архива.

В строке запуска присутствует путь создания архива и он является хранилищем(!). Он вида 192.168.0.100, 192.168.0.101 и т.п.
На некоторых терминалках это запускается(в домене), на некоторых нет(не в домене).
Ругается ан ошибки.
1. В отладчике поймал следующую "Ошибка при вызове метода контекста (GetOwner): Произошла исключительная ситуация (SWbemObjectEx): Not found". GetOwner делается для процесса.

2. если в командную строку включить параметр "/OUT Имя лог файла", то в лог выводится следующее
"Ошибка при выполнении файловой операции '\\192.168.0.100\1c\HANDS\ИмяБазы\ИмяБазы 2018-05-14 14-12-35.n1'. 1326(0x0000052E): Вход в систему не произведен: имя пользователя или пароль не опознаны." (с локальными путями нормально)

А, если запустить из под CMD эту строку запуска - всё отрабатывает "на ура"
Все папки хранилища доступны на этом терминальном сервере, все пути реальные и проверены. Доступ ВЕЗДЕ правильный.
Т.е. как бы из под меня с командной строки всё работает, а вот из под EXEC ругается на нелогин. Значит или запускается под другим пользователем. Под каким я не пойму.
Помогите пожалуйста разобраться.
Оставьте свое сообщение

См. также

Загрузка табелей рабочего времени из файлов Excel Промо

Зарплата Обработка документов Учет рабочего времени Загрузка и выгрузка в Excel v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Обработка по загрузке в типовой документ «Табель» конфигурации ЗУП 3.1 данных из файлов MS Excel, согласно шаблону.

18.10.2019    7512    5    HostHost    0    

Списание (корректировка) задолженности контрагентов УНФ 1.6

Закрытие периода Дебиторская и кредиторская задолженность Обработка документов Дебиторская и кредиторская задолженность v8 УНФ Украина БУ Абонемент ($m)

Обнуление задолженности контрагентов в конфигурации "Управление небольшой (нашей) фирмой" версии 1.6 с помощью документа "Корректировка регистров".

1 стартмани

24.07.2019    18783    12    DMon    1    

Быстрый запрос

Универсальные обработки v8 v8::УФ 1cv8.cf Абонемент ($m)

Можно ли дать пользователю "удочку", а не "рыбу"? До сих пор ответ на этот вопрос был отрицательным. Всякий инструмент, который мог бы делать с базой данных все или почти все (или хотя бы многое), отвергался пользователями, как слишком сложный. Вспомните тот же SQL, который изначально разрабатывался именно как пользовательский инструмент. "Быстрый запрос" - это попытка устранить сложность, но сохранить при этом универсальность.

1 стартмани

29.04.2019    13794    26    mkalimulin    28    

Регистрация документов с измененной суммой

Обработка документов v8 1cv8.cf Абонемент ($m)

Обработка берет информацию из истории изменения документов. Удобна для администраторов, когда документы с измененной суммой по какой-то причине не регистрируются в плане обменов. Можно регистрировать не все документы, а только те, которые были изменены.

1 стартмани

20.04.2019    16265    3    ryan    0    

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

Простая обработка для просмотра и установки значений предопределенных элементов. Позволяет заменить значение предопределенного элемента с одного элемента справочника на другой, удалить предопределенный элемент (снять пометку предопределенности), установить пометку переопределенного элемента. Проверяет предопределенные данные на наличие задвоений и отсутствующих. Работает со справочниками, планами счетов, планами видов характеристик, планами видов расчетов.

2 стартмани

06.10.2014    145395    1952    ekaruk    164    

Блин, мы забыли включить регламентные задания…

Сервисные утилиты v8 Абонемент ($m)

Привет, Инфостарт! Сегодня расскажу, как я решил проблему с выключенными регламентными заданиями в рабочих базах. Желая исключить человеческий фактор и минимизировать количество ошибок, я написал небольшую конфигурацию.  В конфигурации два регламентных задания. Первое периодически подключается к кластеру и сохраняет текущие параметры: имя, Сервер БД, базу СУДБ, блокировки входа и регламентных заданий и т.д. Второе задание периодически проверяет эти параметры на ошибки.

1 стартмани

08.04.2019    14825    14    slozhenikin_com    37    

Отчет производства за смену (ОПЗС) - из Комплектаций номенклатуры

Обработка документов Производство готовой продукции (работ, услуг) Производство готовой продукции (работ, услуг) v8 v8::БУ v8::УФ БП3.0 БУ Абонемент ($m)

Отчет производства за смену БП 3.0 - из Комплектаций номенклатуры УТ 10.3 - после обмена УТ-БП. Внешняя обработка.

2 стартмани

01.03.2019    10800    9    Rustig    0    

Редактор объектов информационной базы 8.3

Универсальные обработки Обмен через XML v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.47 от 08.06.2020

2 стартмани

23.01.2019    24563    259    ROL32    33    

StartManager 1.4 - Развитие альтернативного стартера Промо

Стартеры 1С v7.7 v8 Абонемент ($m)

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

1 стартмани

23.04.2014    116333    774    Alexoniq    1530    

Валовая прибыль для УПП 1.3, КА 1.1 в режиме РАУЗ (работа типового отчета без доработок конфигурации)

Обработка документов v8 КА1 УПП1 УУ Абонемент ($m)

Простое и мгновенное решение для использования типового отчета "Валовая прибыль" в конфигурациях "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1" (а также отраслевых решений на их базе) при включенном режиме РАУЗ (расширенная аналитика учета затрат). Не требует настройки или изменения конфигурации, либо может быть, для дополнительного удобства, интегрировано в нее с минимальными доработками.

2 стартмани

21.01.2019    16644    17    stvorl    11    

Сравнение pdf-файлов актов сверки

Универсальные обработки Дебиторская и кредиторская задолженность Дебиторская и кредиторская задолженность v8 v8::БУ БП2.0 Россия БУ Абонемент ($m)

Обработка сравнивает два pdf-файла, в которых находятся стандартные печатные формы актов сверки, и показывает на экране совпадающие и/или отличающиеся по суммам документы взаиморасчетов.

1 стартмани

19.12.2018    15535    6    Torin99    2    

Легкое и гибкое управление списком доступных баз 1С у пользователей

Стартеры 1С Сервисные утилиты Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

5 стартмани

05.12.2018    13739    13    RomikR    9    

Правильные аналоги номенклатуры (кроссы запчастей) для 1С / Управляемые формы Промо

Обработка справочников Оптовая торговля Учет ТМЦ Оптовая торговля Учет ТМЦ v8 v8::УФ 1cv8.cf УУ Абонемент ($m)

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

5 стартмани

29.07.2015    30849    7    taurus__    22    

Выгрузка изображений из справочника на диск

Учет ТМЦ Универсальные обработки Учет ТМЦ v8 УТ11 Оптовая торговля, дистрибуция, логистика Россия Абонемент ($m)

Обработка позволяет записать изображения из справочка Номенклатура на диск в указанное место.

1 стартмани

30.11.2018    15275    5    wrooom    8    

Многопоточная обработка данных

Производительность и оптимизация (HighLoad) Администрирование данных 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

23.11.2018    18362    53    _ASZ_    15    

Обнуление остатков регистров бухгалтерии и накопления

Универсальные обработки Чистка базы v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    19887    259    morozov.sv    34    

Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ) Промо

Перенос данных из 1C8 в 1C8 Универсальные обработки Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Простой перенос через JSON данных между двумя базами 1С (документов, справочников, ПВХ, ПВР, счетов). Аналогична произвольной выгрузке в типовой "Выгрузка/загрузка XML", но может использоваться для отличающихся конфигураций. Подходит для любых пар баз с любым интерфейсом (управляемый + обычный). Без настроек. Не требует идентичности конфигураций и платформ. При переносе типы данных сопоставляются по наименованиям метаданных, объекты и ссылки по UID.

1 стартмани

22.10.2014    202399    3082    ekaruk    178    

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.

Чистка базы Сервисные утилиты Администрирование данных 1С v8 1cv8.cf Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    33864    358    Eugen-S    34    

Навигатор по конфигурации базы 1С 8.3

Инструментарий разработчика Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.63 от 10.06.2020

3 стартмани

28.10.2018    29378    276    ROL32    67    

Универсальный инструмент для переноса данных через табличный документ (УФ)

Обработка документов Универсальные обработки Обработка справочников v8 v8::УФ 1cv8.cf Абонемент ($m)

Для опытных пользователей, разработчиков, администраторов, консультантов

5 стартмани

15.10.2018    29883    114    json    36    

Очистка регистрации обмена Промо

Чистка базы v8 v8::ОУ УТ10 Абонемент ($m)

Данная обработка предназначена для очистки узла. Для очистки необходимо указать период,организацию.

1 стартмани

19.09.2017    15706    5    serg-lom89    0    

TextRadar - нечеткий поиск в тексте

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

В отличие от нечеткого сравнения строк, когда обе сравниваемых строки равнозначны, в задаче нечеткого поиска выделяются строка поиска и строка данных, а вычислить необходимо не степень похожести двух строк, а степень присутствия строки поиска в строке данных. Нормированный коэффициент, находящийся между 0 и 1 позволяет отсечь заведомо низкие результаты, организовать поиск по синонимам и т.д. Наглядное отображение результатов в кратком и детальном виде поможет быстро найти интересующий фрагмент.

1 стартмани

19.09.2018    15371    18    TSSV    18    

Помощник корректировки остатков ЕГАИС в небольшом магазине. Розница 2.2

Розничная торговля Обработка документов Розничная торговля v8 Розница Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

Данная обработка упрощает корректировку остатков алкогольной продукции небольшого магазина, где предполагается передача всей продукции в торговый зал сразу после приемки.

5 стартмани

08.09.2018    28811    82    asdfgcom    46    

Быстрая настройка ККМ из 1С с использованием драйвера от Атол без тест-драйвера

Кассовые операции ККМ Кассовые операции v8 Розница Абонемент ($m)

В нашей компании на кассовых местах подключено несколько ККМ от Атола. При подключении к штатным разъемам USB на материнской плате все работает без проблем. Проблемы в тех магазинах, где кассы подключаются через USB-Hub. Данная обработка позволяет быстро, без запуска "Тест-драйвера" и "Управление драйверами", настроить кассовое оборудование. Протестировано на 32-х битной версии 1С и конфигурации 1С:Розница 2.2 с версиями драйверов от Атол 8.16.1.8701 и 9.12.1.6236

1 стартмани

27.08.2018    16634    13    valerasv    7    

Помощник по закрытию месяца для УТ 11.3 Промо

Закрытие периода Обработка документов Закрытие периода Закрытие периода v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

Помощник по закрытию месяца для УТ 11.3. Имеет две функции: обнуление товаров "К оформлению" в интеркампани и обнуление отрицательных остатков в регистре "Себестоимость товаров".

5 стартмани

10.11.2017    20748    26    Zalipaka    1    

Расширение резервов отпусков

Обработка документов Зарплата Зарплата v8 v8::СПР ERP2 ЗКГУ3.0 ЗУП3.x Россия БУ Абонемент ($m)

Произвольная настройка базы для расчета резервов отпусков.

2 стартмани

10.08.2018    23290    51    СергейКа    16    

Очистка периодических регистров посредством T-SQL (удаление записей, кроме среза последних)

Чистка базы v8 Абонемент ($m)

Обработка для ленивых. Составит вместо Вас запрос для SQL, который удалит все не актуальные записи (т.е все, кроме среза последних)

5 стартмани

22.06.2018    14577    19    Alexander.Shvets    9    

Автоматическое заполнение графиков в ЗУП 3.1

Зарплата Учет рабочего времени Обработка справочников Зарплата Учет рабочего времени v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Данная разработка будет актуальна для организаций с большим количеством графиков (несколько десятков/сотен).

1 стартмани

05.05.2018    21035    18    notserioussam    2    

Удаление помеченных объектов, замена ссылок. Обычное и управляемое приложение. Не монопольно, включая рекурсивные ссылки, с отбором по метаданным и произвольным запросом Промо

Чистка базы v8 1cv8.cf Абонемент ($m)

Обработка удаления помеченных объектов с расширенным функционалом. Работает в обычном и управляемом приложении. Монопольный и разделенный режим работы. Отображение и отбор по структуре метаданных. Отборы данных произвольными запросами. Копирование и сохранение отборов. Удаление циклических ссылок (рекурсия). Представление циклических в виде дерева с отображением ключевых ссылок, не позволяющих удалить текущий объект информационной базы. Удаление записей связанных независимых регистров сведений. Групповая замена ссылок. Индикатор прогресса при поиске и контроле ссылочности.

10 стартмани

31.10.2016    48145    566    m..adm    206    

Просмотр, изменение реквизитов объекта. Сравнение двух одинаковых объектов метаданных ИБ

Универсальные обработки v8 1cv8.cf Россия Абонемент ($m)

Показывает реквизиты объекта (ов) или сравнивает два одинаковых объекта конфигурации справочники, документы.

1 стартмани

26.04.2018    16795    24    Vin_Tik    0    

Добавление возможности в конфигурации ЗУП 3.1 работать с фотографиями сотрудников (Зарплата и Управление Персоналом, редакция 3.1)

Обработка справочников Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Добавление возможности в ЗУП 3.1 работать с фотографиями сотрудников (физических лиц). Расширение тестировалось на релизе ЗУП 3.1.5.129.

1 стартмани

09.04.2018    27266    67    charivnick    3    

Повышение качества разработок и онлайн контроль ошибок

Журнал регистрации v8 Абонемент ($m)

Анализ ошибок и сбор ошибок журнала регистраций из десятков и сотен баз в одном месте.

09.03.2018    25870    8    DitriX    48    

Прыг-Скок...или из MS EXCEL в 1С (8.2) (открытый код) Промо

Обработка документов Обработка справочников Загрузка и выгрузка в Excel v8 1cv8.cf Абонемент ($m)

Универсальная загрузка данных из Microsoft Office Excel. Автоматическая загрузка из любых по форме документов с очень удобным редактором. Почти готовый шаблон для любой конфигурации. Не требует регистрации-бесплатно.

1 стартмани

16.09.2015    59973    351    Tatitutu    48    

Построение маршрута доставки с расчётом расстояния для любой базы УФ

Универсальные обработки WEB Оптовая торговля Оптовая торговля v8 v8::УФ 1cv8.cf Абонемент ($m)

Графическое изображение маршрутного листа по картам гугл. Работает на любой конфигурации с управляемыми формами. Использует новую версию api google-карт от 13.02.2018 года под IE11.

10 стартмани

24.02.2018    32642    42    KorotkovRV    16    

Корректировка остатков ЕГАИС, возврат из регистра 2, загрузка ТТН из файлов, другое для УТ10.3

Розничная торговля Обработка документов Розничная торговля v8 v8::ОУ УТ10 Россия БУ Абонемент ($m)

Набор обработок для автоматизации работы с ЕГАИС: Обработка корректировки остатков ЕГАИС для УТ 10.3, аналогичная имеющимся в УТ 11, Рознице 2.2. Автоматически формирует документы "Передача в торговый зал", "Акт постановки на баланс в торговом зале", "Акт списания в торговом зале". Обработка возврата из регистра 2 с подбором справок Б. Обработка формирования ТТН из файлов xml.

1 стартмани

24.01.2018    32219    27    biz-intel    3    

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1

Обработка документов Загрузка и выгрузка в Excel Зарплата Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Абонемент ($m)

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

3 стартмани

20.12.2017    44441    31    mvv1975    7    

Копирование меню в Трактир Management

Обработка документов Производство готовой продукции (работ, услуг) Производство готовой продукции (работ, услуг) v8 1cv8.cf Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

Механизм копирования меню в Трактир Management. Данная обработка расширяет функционал типового решения Трактир Management, позволяя быстро вводить в эксплуатацию новую точку путём создания нового меню на основании имеющегося.

1 стартмани

28.11.2017    25539    4    integrator1983    0    

Быстрое удаление неиспользуемых версий 1С:Предприятие 8, кэша метаданных и информационных баз

Сервисные утилиты v8 Абонемент ($m)

При обновлении платформы 1С:Предприятие 8 предыдущие версии не удаляются. Со временем количество неиспользуемых версий платформы растет. Они занимают место на диске. Для решения этой проблемы предназначена программа OneCleaner. Она позволяет быстро удалить неиспользуемые версии платформы, а также почистить кэш метаданных и удалить ненужные информационные базы данных.

1 стартмани

14.11.2017    20165    87    bonv    15    

Инструменты бухгалтера: Виджеты рабочего стола

Универсальные обработки Рабочее место v8 v8::БУ БП3.0 Абонемент ($m)

Настраиваемые виджеты на начальной странице, своеобразная панель для быстрого доступа к объектам. Виджеты это элементы интерфейса в виде цветных прямоугольников со ссылками на объекты конфигурации. Использование виджетов позволяет сконцентрировать на начальной странице часто используемые функции, например, варианты отчетов, списки документов, или используя виджет вводить новый документ прямо из начальной страницы.

2 стартмани

28.08.2017    35379    170    Bazil    28    

Загрузка дополнительных реквизитов и сведений справочника Номенклатура из Excel и таблиц УТ 11, ERP 2

Обработка справочников Загрузка и выгрузка в Excel Учет ТМЦ Учет ТМЦ v8 v8::ОУ ERP2 УТ11 Россия УУ Абонемент ($m)

Внешняя обработка "Загрузка дополнительных реквизитов и сведений справочника Номенклатура"

1 стартмани

07.08.2017    36929    236    Windyhead    32    

Упрощение работы с актами сверки в УТ/КА/УПП - вывод номеров счетов в документе и печатной форме

Обработка документов Печатные формы документов Дебиторская и кредиторская задолженность Дебиторская и кредиторская задолженность v8 КА1 УТ10 УПП1 БУ УУ Абонемент ($m)

Обычно акт сверки с клиентами содержат информацию о документах реализации товаров (накладных) и выполненных платежах. Но платежи делаются на основании счетов, номера которых отсутствуют в актах, что затрудняет собственно сверку. Данная обработка находит соответствующие расходным накладным счета/заказы, показывает их в форме документа и выводит в печатную форму акта.

2 стартмани

12.05.2017    26402    4    denmax    2    

Автокликер для 1С

Сервисные утилиты v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.04.2017    29042    70    slava_1c    49    

Загрузка номенклатуры по штрихкоду: Управление Торговлей 11.3; Розница 2.2; Розница для Казахстана 2.2

Обработка справочников Оптовая торговля Розничная торговля Ценообразование, анализ цен Ценообразование, прайсы Оптовая торговля Розничная торговля Ценообразование, анализ цен v8 v8::ОУ v8::УФ Розница УТ11 Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

Розница 2.2, Управление Торговлей 11.3. Создание номенклатуры из интернета с помощью сканера штрихкодов либо терминала сбора данных. Варианты создания, автовыбор наилучшей позиции, источники, цены, загрузка картинки - всё это очень гибко и просто настраивается. Текущие открытые источники: barcode-list.ru(на текущий момент не работает); goodsmatrix.ru; ean13.info(может не работать капча); barcodes.olegon.ru. Автор программы не несёт ответственность за информацию, предоставляемую перечисленными выше открытыми источниками, так же не отвечает за их работоспособность. Данные источники принадлежат не автору программы. Данная программа нужна лишь для автоматизированного поиска информации на них.

10 стартмани

30.03.2017    55466    121    myALKleon    40    

DroidRAC2 - консоль администрирования кластера серверов 1С:Предприятие 8.3 под Android

Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

DroidRAC2 - клиент для RAS-сервиса кластера серверов платформы 1С:Предприятие 8.3 под Android.

1 стартмани

24.02.2017    20642    9    user700211_a.straltsou    12