Как отследить установлена ли компьютере нужная платформа 1с?

1. 3762515 03.10.14 16:00 Сейчас в теме
Переходим на платформу 8.3.5, попросил админов установить платформу юзерам, они сказали типа сделано.
В прошлый раз тоже сказали, что сделали, а потом дружно бегали и в срочном порядке доустанавливали.
Хочу небольшой скрипт сделать при запуске 1с, что бы проверила есть ли необходимый релиз платформы, но как это лучше сделать? Просто проверить наличие каталога или есть более верный способ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Salavat 13 03.10.14 17:18 Сейчас в теме
(1) 3762515,
ебольшой скрипт сделать при запуске 1с, что бы проверила есть ли необходимый релиз платформы, но как это лучше сделать? Просто проверить наличие каталога или есть более верный способ?
- 2 варианта:
1) делается через - 1cestart.exe.
2) посмотреть как в типовых сделана проверка на наличие релиза. Правда установить не выйдет, но всёже.
2. Bienko 212 03.10.14 16:12 Сейчас в теме
Мало информации. Если есть сеть с актив директори, то это делается через логон скрипт. При входе пользователя автоматически удаляется старая версия и ставиться новая. Напряги своих админов, чтобы они тоже это сделали. Тогда просто меняешь этот скрипт и у всех меняется версия. Если АД нету, то этот же скрипт можно где-то на шару положить и всем пользователям сделать на него ярлык. Если пишет, что не та платформа, то пользователю достаточно будет щелкнуть по ярлыку и у него все обновиться.
Скрипт, которым я пользуюсь

Option Explicit

Const msiUILevelNoChange = 0 'Не изменять интерфейс пользователя
Const msiUILevelDefault = 1 'Использовать интерфейс пользователя, заданный по умолчанию
Const msiUILevelNone = 2 'Не отображать интерфейс пользователя (молчаливая установка)
Const msiUILevelBasic = 3 'Только индикатор прогресса и отображение ошибок
Const msiUILevelReduced = 4 'Интерфейс пользователя без диалоговых сообщений
Const msiUILevelFull = 5 'Полный интерфейс пользователя
Const msiUILevelHideCancel = 32 'Если используется с msiUILevelBasic, то отображается индикатор прогресса без кнопки Cancel
Const msiUILevelProgressOnly = 64 'Если используется с msiUILevelBasic, то отображается индикатор прогресса без тображения любых диалогов, в т.ч. и ошибок.
Const msiUILevelEndDialog = 128 'Если используется с любым из перечисленных значений, интсталятор выводит сообщение в конце установки о конечном результате.

'***** Необходимо изменить на реальный каталог установки
Const DistrFolder="\\192.168.2.254\1CDistr\"

Const shortcutName = "Запуск 1C Предприятия"
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim shortcutTarget : shortcutTarget = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") & "\1cv8\Common\1cestart.exe"

'Константы для определения действия
Const requiredInstall = 1 ' требуется установка
Const requiredUninstall = 0 ' требуется удаление
'Режим установки – logon-скрипт
Const logonInstall="\\192.168.2.254\1CDistr\8.3.5.1119\adminstallrelogon.mst"
'Режим установки – групповая политика
Const restartInstall="\\192.168.2.254\1CDistr\8.3.5.1119\adminstallrestart.mst"
Const mstTransfomU = "\\192.168.2.254\1CDistr\8.3.4.437\1049.mst"
Const mstTransfomI = "\\192.168.2.254\1CDistr\8.3.5.1119\1049.mst"
'Значение параметра ProductCode из файла setup.ini ...
'... для удаляемой версии
Const unInstallUID="{AFF1D08A-6D83-45BB-BBED-E40079E9EC3C}"
'... для устанавливаемой версии
Const InstallUID="{D9BDBB72-467E-4EEB-A5D0-F9DEC1398FC6}"

'удалим предыдущую версию
installOrUninstall unInstallUID, "\\192.168.2.254\1CDistr\8.3.4.437\1CEnterprise 8.msi", mstTransfomU, "", requiredUninstall
'установим новую версию
installOrUninstall InstallUID, "\\192.168.2.254\1CDistr\8.3.5.1119\1CEnterprise 8.msi", mstTransfomI, logonInstall, requiredInstall


'процедура установки или удаления указанной версии продукта
Sub installOrUninstall (ByVal productCode, ByVal msiPackage, ByVal mstTransform,ByVal mstInstall, ByVal requiredAction)
'productCode - Информация о коде продукта. Находится в файле setup.ini, ключ ProductCode
'msiPackage - Установочный пакет 1CEnterprise
'mstTransform - файл языкового преобразования для инсталлятора
'requiredAction - требуемое действте requiredInstall или requiredUninstall

'Переменная, для формирования дополнительных параметров инсталлятору
Dim cmdLine

On Error Resume Next

Dim installer, session

Set installer = Nothing
Set session = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : processError
installer.UILevel = msiUILevelNone 'msiUILevelNone 'или укажите другой вариант интерфейса пользователя
'проверка установки продукта
Set session = installer.OpenProduct(productCode)

If session Is Nothing AND requiredAction = requiredInstall Then
'продукт не установлен и требуется его установка
cmdLine = "TRANSFORMS=" & mstInstall & ";"
If Not mstTransform Is Empty Then
'добавим указание инсталлятору разговаривать на указанном языке
cmdLine = cmdLine & mstTransform
'Дополнительно указать, какие компоненты нужно установить
cmdLine = cmdLine & " THICKCLIENT=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=1 LANGUAGES=RU"
End If
'установим платформу
Set session = installer.InstallProduct(msiPackage, cmdLine)
'создадим ярлык на рабочем столе
'createShortcut()

ElseIf Not session Is Nothing AND requiredAction = requiredUninstall Then
'платформа уже установлена и требуется ее удаление
'обьект session может быть только один!
Set session = Nothing
'укажем, что нужно удалить с компьютера пользователя эту версию
cmdLine = "REMOVE=ALL"
'удалим
Set session = installer.InstallProduct(msiPackage, cmdLine)
End If

Set session = Nothing
Set installer = Nothing

End Sub


'обработка ошибок
Sub processError
Dim msg
If Err = 0 Then Exit Sub
msg = Err.Source & " " & Hex(Err) & ": " & Err.Description
Wscript.Echo msg
Wscript.Quit 2
End Sub

'создание ярлыка
Sub createShortcut
Dim WshShell, oShellLink
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim strDesktop : strDesktop = WshShell.SpecialFolders("Desktop")
Set oShellLink = WshShell.CreateShortcut(strDesktop & "\" & shortcutName & ".lnk")
oShellLink.TargetPath = shortcutTarget
oShellLink.WindowStyle = 1
oShellLink.Description = shortcutName
oShellLink.Save
Set oShellLink = Nothing
Set WshShell = Nothing
End Sub
3. 3762515 03.10.14 16:29 Сейчас в теме
Для установки по скрипту нужны права админские.
Да, есть АД и устанавливают через групповую политику, но что-то у них не получается, в прошлый раз платформа установилась только у половины пользователей по остальным быстренько бегали и делали всё руками.
Мне бы сейчас найти верный способ определения наличия нужного релиза 1с, а как обновлять пусть уж решают.
5. Bienko 212 04.10.14 11:09 Сейчас в теме
3762515, через ад можно и пользователям без прав админа установить, только скрипт нужно не на пользователя, а на комп вешать... в инете легко можно найти как это сделать. У меня более 100 компов в сети и все нормально обновляются. Единственные проблемы у тех кто комп на ночь не выключили, но это решается перезагрузкой компа... Так что пинай админов. А определить вообще проблем нет. Проверить существует ли каталог C:\Program Files (x86)\1cv8\8.3.4.496 на 32 компах путь без (x86), где 8.3.4.496 номер версии 1с. Можно и через реестр. Вариантов несколько.
6. Xershi 1484 18.02.21 18:00 Сейчас в теме
СистемнаяИнформация = Новый СистемнаяИнформация;
	ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
	Если Сред(ВерсияПриложения, 6, 1) = "." Тогда
		ВерсияПриложения = Лев(ВерсияПриложения, 4) + "0" + Сред(ВерсияПриложения, 5, 1);
	КонецЕсли;
	
	

Т.е. если 3 цифра платформы 1, то добавим ноль, тогда переводить в строку не нужно и сравниваем строками корректно.
8.3.05 < 8.3.11.
Работать будет пока 3 цифра 2 знака будет.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот