|
узнать разрядность клиента 1С программно | ☑ | ||
---|---|---|---|---|
0
novichok79
28.11.16
✎
12:05
|
Доброго времени суток, уважаемые специалисты 1С!
Собственно возник вопрос в связи с появлением новой технологической платформы 8.3.9.1980. А как программно узнать какой разрядности запущен клиент - 32 или 64 бита? СистемнаяИнформация не дает такой инфы. Заранее благодарю за помощь. |
|||
1
novichok79
28.11.16
✎
12:05
|
* очепятка: 8.3.9.1850
|
|||
2
novichok79
28.11.16
✎
12:06
|
вот например, инфа которую дает СистемнаяИнформация с моего домашнего компа:
ВерсияОС = version 6.2 (Build 9200) ВерсияПриложения = 8.3.9.1850 ИдентификаторКлиента = f40139dc-6256-4768-b98d-a95347888bc0 ИнформацияПрограммыПросмотра = ОперативнаяПамять = 32 642 Процессор = GenuineIntel Intel64 Family 6 Model 94 Stepping 3 3312 MHz ТипПлатформы = Windows x86-64 |
|||
3
novichok79
28.11.16
✎
12:16
|
ИмяПриложения? не? но там разрядности насколько я знаю тоже нет.
|
|||
4
Aleksey
28.11.16
✎
12:17
|
А зачем?
|
|||
5
Fragster
гуру
28.11.16
✎
12:21
|
типплатформы, не?
|
|||
6
Fragster
гуру
28.11.16
✎
12:22
|
(4) чтобы из макета нужную ВК доставать
|
|||
7
Fragster
гуру
28.11.16
✎
12:22
|
например
|
|||
8
Aleksey
28.11.16
✎
12:24
|
(7) А какое дело ВК до разрядности клиента?
Ну там разрядность ОС я еще могу понять, но клиент то каким боком? Можно пример из жизни? |
|||
9
Fragster
гуру
28.11.16
✎
12:26
|
||||
10
Живой Ископаемый
28.11.16
✎
12:27
|
2(8) Например в ИР есть компоненты для парсинга и т.п. все 32-битные, в 64-битном клиенте выдают ошибки и не регятся
|
|||
11
Fragster
гуру
28.11.16
✎
12:27
|
||||
12
Zamestas
28.11.16
✎
12:30
|
(0) Проверь наличие папки "C:\Program Files (x86)"
|
|||
13
Vladal
28.11.16
✎
12:31
|
СистемнаяИнформация = Новый СистемнаяИнформация;
Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда ... ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда ... ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.linux_x86 Тогда ... Иначе ... КонецЕсли; |
|||
14
novichok79
28.11.16
✎
12:32
|
(9) точно, оно самое.
|
|||
15
novichok79
28.11.16
✎
12:34
|
(13) хорошо. а если стоит 2 версии платформы, как узнать что конкретный вызов делается из под 64битного клиента?
|
|||
16
novichok79
28.11.16
✎
12:34
|
(12) а если в системе еще есть 32битные приложения?
|
|||
17
marty0701
28.11.16
✎
12:35
|
(15)Так тебе инфо по текущему клиенту и возвращается.
|
|||
18
novichok79
28.11.16
✎
12:39
|
(17) ясно, спасибо.
|
|||
19
Serginio1
28.11.16
✎
12:40
|
||||
20
Fragster
гуру
28.11.16
✎
12:41
|
(19) давай ВК для pdf417, которая так работает
|
|||
21
Fragster
гуру
28.11.16
✎
12:41
|
и чтобы в отчетность встраивалась еще бз бубна
|
|||
22
Fragster
гуру
28.11.16
✎
12:43
|
например просто под менить макет - и всё заработало
|
|||
23
Serginio1
28.11.16
✎
12:44
|
||||
24
Serginio1
28.11.16
✎
12:47
|
(20) А чего давать. .Net побарабану разрядность, если внутри не используют нативные библиотеки.
Например https://github.com/codebude/QRCoder |
|||
25
Serg_1960
28.11.16
✎
12:49
|
Автор спросил про разрядность клиента и ничего более. А вы обрадовались и уже во всю обсуждаете COM :)
Опять двадцать пять, опять баян про то, что разрядность процесса - это не разрядность ОС :( |
|||
26
Fragster
гуру
28.11.16
✎
12:54
|
(25)->(14)->(9)
|
|||
27
Fragster
гуру
28.11.16
✎
12:54
|
учись телепатии
|
|||
28
Garykom
гуру
28.11.16
✎
13:02
|
Разрядность платформы 1С можно определить путем выполнения вычислений с числами и сравнения времени этих вычислений.
|
|||
29
Garykom
гуру
28.11.16
✎
13:04
|
(28)+ Еще операции с памятью на максимальный допустимый объем но это напрямую в 1С сложно и могут быть ограничения от операционки или физически.
|
|||
30
Shamandafil
28.11.16
✎
13:06
|
(0) Есть не надёжный способ посмотреть КаталогПрограммы() , если система х64, а каталог содержит х32, то клиент 32х битный, иначе 64х битный.
|
|||
31
Vladal
28.11.16
✎
13:07
|
(30) Что эта функция вернет в Линуксе?
|
|||
32
Shamandafil
28.11.16
✎
13:09
|
(31) Для линукса вроде всегда битность 1С совпадает с битностью системы. Да и в винде путь установки можно поменять.
|
|||
33
Рэйв
28.11.16
✎
13:12
|
(0)
WS = Новый COMОбъект("WScript.Shell"); Сообщить(WS.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")); |
|||
34
Garykom
гуру
28.11.16
✎
13:18
|
(32) Ошибка в линуксе x86_64 прекрасно запускаются i386 приложения в т.ч. 1С.
Но с 1С проблемы с апачем будут |
|||
35
Рэйв
28.11.16
✎
13:20
|
+(33)Не, точнее вот так:
//------ WS = Новый COMОбъект("WScript.Shell"); P = "x64"; Если WS.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") = "x86" И WS.ExpandEnvironmentStrings("%PROCESSOR_ARCHITEW6432%") = "%PROCESSOR_ARCHITEW6432%" Тогда P = "x86"; КонецЕсли; Сообщить("->"+ P); |
|||
36
Garykom
гуру
28.11.16
✎
13:21
|
(33) Узнаем разрядность системы а не платформы 1С запущенной.
Причем установлены могут быть разные платформы 1С, более надежно КаталогПрограммы() и далее смотрим что внутри. |
|||
37
Garykom
гуру
28.11.16
✎
13:21
|
(35) Не поможет для (0)
|
|||
38
Garykom
гуру
28.11.16
✎
13:22
|
||||
39
Рэйв
28.11.16
✎
13:23
|
(37)так вк регить то в системе
|
|||
40
Garykom
гуру
28.11.16
✎
13:23
|
(39) 32 битные ВК прекрасно работают в 64 битной системе...
|
|||
41
Shamandafil
28.11.16
✎
13:25
|
(40) Но не в 64битном процессе. Под 8.3.9 выпущен 64битный клиент.
|
|||
42
Рэйв
28.11.16
✎
13:33
|
(40)судя по (10) не всегда
|
|||
43
Shamandafil
28.11.16
✎
13:36
|
(2) ТипПлатформы = Windows x86-64 - показывает что сейчас исполнение идёт в процессе х64.
ТипПлатформы = Windows x86 - в 32х битном |
|||
44
sitex
naïve
28.11.16
✎
13:37
|
(0) Если только Windows клиенты то можно воспользоваться Wmic.
|
|||
45
Shamandafil
28.11.16
✎
13:38
|
Хотя, наверно, правильнее запаковать компоненты в zip-архив с манифестом, чтобы 1С сама выбирала подходящую версию компоненты.
|
|||
46
Serginio1
28.11.16
✎
13:48
|
(20) А в чем проблема с помощью манифеста запустить нужную DLL
Кстати через .Net можно решить так http://stackoverflow.com/questions/9235684/which-free-c-sharp-library-can-generate-pdf-417-barcodes Convert=Врап.ПолучитьТип("System.Convert"); ДД=Base64Значение(Convert.ToBase64String(GenerateBarCodeZXing(ШтрихКод))); Картинка=Новый Картинка(ДД); |
|||
47
Shamandafil
28.11.16
✎
13:51
|
(46) Но есть пара нюансов, надо иметь подходящую версию NET, зарегистрировать переходник под х32 и х64, а это требует прав администратора.
|
|||
48
Serginio1
28.11.16
✎
14:16
|
(47) Как правило Net обновляется, во вторых нужно зарегистрировать только одну библиотеку в третьих
http://www.cyberforum.ru/visual-basic/thread649325.html Можно выгрузить нужную ветку и заменить HKEY_LOCAL_MACHINE на HKEY_CURRENT_USER без прав администратора. У меня все руки не доходят для регистрации без прав админа по нужному пути |
|||
49
Serginio1
28.11.16
✎
14:18
|
(47) Переходник не нужен ибо .Net это Jit компиляция взависимости от разрядности текущего процесса.
Сборки как правило компилятся под AnyCpu если внутри не используются нативные библиотеки через InterOp |
|||
50
sitex
naïve
28.11.16
✎
14:28
|
||||
51
Shamandafil
28.11.16
✎
14:53
|
(48) Не хватает установщика.
(49) Под переходником я подразумевал объект NetObjectToIDispatch45. |
|||
52
Вафель
28.11.16
✎
14:57
|
(49) Всю отчетность тоже предлагаешь переписать?
|
|||
53
Serginio1
28.11.16
✎
14:57
|
Ну если она на 32 разрядных ActiveX то да.
|
|||
54
ELEA26
28.11.16
✎
15:05
|
Все не читал, но можно же проверить папку SysWOW64 в %SystemRoot%
Или проверить наличие Program Files (x86) |
|||
55
etc
28.11.16
✎
15:11
|
Я не пойму а чем вам манифест не нравится? Архив с разными вариантами обработки с манифестом в макет и при подключении автоматически выбирается нужная. И кстате компонента которая с БСП идет умеет PDF417.
Они правда в БСП не обернули это дело в архив с манифестом. Так отдельно и лежат 4 вида. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |