узнать разрядность клиента 1С программно #786083


#0 by novichok79
Доброго времени суток, уважаемые специалисты 1С! Собственно возник вопрос в связи с появлением новой технологической платформы 8.3.9.1980. А как программно узнать какой разрядности запущен клиент - 32 или 64 бита? СистемнаяИнформация не дает такой инфы. Заранее благодарю за помощь.
#1 by novichok79
* очепятка: 8.3.9.1850
#2 by novichok79
вот например, инфа которую дает СистемнаяИнформация с моего домашнего компа: ВерсияОС = version 6.2  (Build 9200) ВерсияПриложения = 8.3.9.1850 ОперативнаяПамять = 32 642 Процессор = GenuineIntel Intel64 Family 6 Model 94 Stepping 3 3312 MHz ТипПлатформы = Windows x86-64
#3 by novichok79
ИмяПриложения? не? но там разрядности насколько я знаю тоже нет.
#4 by Aleksey
А зачем?
#5 by Fragster
типплатформы, не?
#6 by Fragster
чтобы из макета нужную ВК доставать
#7 by Fragster
например
#8 by Aleksey
А какое дело ВК до разрядности клиента? Ну там разрядность ОС я еще могу понять, но клиент то каким боком? Можно пример из жизни?
#9 by Fragster
#10 by Живой Ископаемый
2 Например в ИР есть компоненты для парсинга и т.п. все 32-битные, в 64-битном клиенте выдают ошибки и не регятся
#11 by Fragster
#12 by Zamestas
Проверь наличие папки "C:Program Files (x86)"
#13 by Vladal
Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда ... ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда ... ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.linux_x86 Тогда ... Иначе ... КонецЕсли;
#14 by novichok79
точно, оно самое.
#15 by novichok79
хорошо. а если стоит 2 версии платформы, как узнать что конкретный вызов делается из под 64битного клиента?
#16 by novichok79
а если в системе еще есть 32битные приложения?
#17 by marty0701
Так тебе инфо по текущему клиенту и возвращается.
#18 by novichok79
ясно, спасибо.
#19 by Serginio1
Для этого есть манифест
#20 by Fragster
давай ВК для pdf417, которая так работает
#21 by Fragster
и чтобы в отчетность встраивалась еще бз бубна
#22 by Fragster
например просто под менить макет - и всё заработало
#23 by Serginio1
Вернее
#24 by Serginio1
А чего давать. .Net побарабану разрядность, если внутри не используют нативные библиотеки. Например
#25 by Serg_1960
Автор спросил про разрядность клиента и ничего более. А вы обрадовались и уже во всю обсуждаете COM :) Опять двадцать пять, опять баян про то, что разрядность процесса - это не разрядность ОС :(
#26 by Fragster
->->
#27 by Fragster
учись телепатии
#28 by Garykom
Разрядность платформы 1С можно определить путем выполнения вычислений с числами и сравнения времени этих вычислений.
#29 by Garykom
+ Еще операции с памятью на максимальный допустимый объем но это напрямую в 1С сложно и могут быть ограничения от операционки или физически.
#30 by Shamandafil
Есть не надёжный способ посмотреть КаталогПрограммы , если система х64, а каталог содержит х32, то клиент 32х битный, иначе 64х битный.
#31 by Vladal
Что эта функция вернет в Линуксе?
#32 by Shamandafil
Для линукса вроде всегда битность 1С совпадает с битностью системы. Да и в винде путь установки можно поменять.
#33 by Рэйв
#34 by Garykom
Ошибка в линуксе x86_64 прекрасно запускаются i386 приложения в т.ч. 1С. Но с 1С проблемы с апачем будут
#35 by Рэйв
+Не, точнее вот так: //------
#36 by Garykom
Узнаем разрядность системы а не платформы 1С запущенной. Причем установлены могут быть разные платформы 1С, более надежно КаталогПрограммы и далее смотрим что внутри.
#37 by Garykom
Не поможет для
#38 by Garykom
+
#39 by Рэйв
так вк регить то в системе
#40 by Garykom
32 битные ВК прекрасно работают в 64 битной системе...
#41 by Shamandafil
Но не в 64битном процессе. Под 8.3.9 выпущен 64битный клиент.
#42 by Рэйв
судя по не всегда
#43 by Shamandafil
ТипПлатформы = Windows x86-64 - показывает что сейчас исполнение идёт в процессе х64. ТипПлатформы = Windows x86 - в 32х битном
#44 by sitex
Если только Windows клиенты то можно воспользоваться Wmic.
#45 by Shamandafil
Хотя, наверно, правильнее запаковать компоненты в zip-архив с манифестом, чтобы 1С сама выбирала подходящую версию компоненты.
#46 by Serginio1
А в чем проблема с помощью манифеста запустить нужную DLL Кстати через .Net можно решить так Convert=Врап.ПолучитьТип("System.Convert");
#47 by Shamandafil
Но есть пара нюансов, надо иметь подходящую версию NET, зарегистрировать переходник под х32 и х64, а это требует прав администратора.
#48 by Serginio1
Как правило Net обновляется, во вторых нужно зарегистрировать только одну библиотеку в третьих Можно выгрузить нужную ветку и заменить HKEY_LOCAL_MACHINE на HKEY_CURRENT_USER без прав администратора. У меня все руки не доходят для регистрации без прав админа по нужному пути
#49 by Serginio1
Переходник не нужен ибо .Net это Jit компиляция взависимости от разрядности текущего процесса. Сборки как правило компилятся под AnyCpu если внутри не используются нативные библиотеки через InterOp
#51 by Shamandafil
Не хватает установщика. Под переходником я подразумевал объект NetObjectToIDispatch45.
#52 by Вафель
Всю отчетность тоже предлагаешь переписать?
#53 by Serginio1
Ну если она на 32 разрядных ActiveX то да.
#54 by ELEA26
Все не читал, но можно же проверить папку SysWOW64 в %SystemRoot% Или проверить наличие Program Files (x86)
#55 by etc
Я не пойму а чем вам манифест не нравится? Архив с разными вариантами обработки с манифестом в макет и при подключении автоматически выбирается нужная. И кстате компонента которая с БСП идет умеет PDF417. Они правда в БСП не обернули это дело в архив с манифестом. Так отдельно и лежат 4 вида.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С