Можно ли с напильником запустить 32-битную компоненту (для весов) на 64-битной платформе.

1. Светлый ум 407 28.09.22 12:27 Сейчас в теме
Можно ли с напильником запустить 32-битную компоненту (для весов) на 64-битной платформе.
(dll во вложении)

Текст с сайта: "Подключаемая компонента поддерживает только 32-битные версии платформы 1С."
http://docuwiki.vesysoft.ru/doku.php?id=manager:1c

Если нельзя - то почему? (для общего развития и понимания)
Прикрепленные файлы:
Add1CServerVesy.dll
Вознаграждение за ответ
Показать полностью
Найденные решения
7. gml 28.09.22 21:07 Сейчас в теме +0.03 $m
Ни на сайте разработчика, ни в Вашем посте не указано чётко, где работает данная компонента - на сервере или на клиенте.
Компоненту 1C Native API Вы никаким напильником не заставите работать вместе с ПО 1С (клиентским или серверным) другой разрядности.
В отличие от COM-объектов, описанных в приведённых статьях, здесь никакие обёртки не подействуют (1С непосредственно вызывает функции динамической библиотеки).

Из конструктивного просматривается два варианта:

- попытаться получить у разработчика 64-битную или универсальную версию компоненты
- установить 32-битную клиентскую машину или 32-битный сервер в кластер и работать с них.

Понимаю, что оба варианта могут быть не очень подходящими по различным (финансовым, организационным или техническим) причинам.
ivan453; Светлый ум; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. TokarevV 32 28.09.22 14:22 Сейчас в теме
(1) А почему бы не установить тонкий клиент 32-х разрядный и подключаться к 64-х разрядной платформе (серверный вариант)?
Светлый ум; muskul; gml; dehro; +4 Ответить
5. winapi 60 28.09.22 14:31 Сейчас в теме
(1) К сожалению 32 битная компонента не будет работать на 64 битной платформе, тут вы бессильны.
6. Светлый ум 407 28.09.22 18:19 Сейчас в теме
(5) Если нельзя - то почему? (для общего развития и понимания)
15. ivan453 30.09.22 04:46 Сейчас в теме
(2) подходит только для COM-подключений
для остальных библиотек
-работать не будет
.
3. ivan453 28.09.22 12:43 Сейчас в теме
https://infostart.ru/1c/articles/195820/
c картинкам, вроде наглядный...ага

Пример тестовой обработки:
		
	Попытка
		
		ЗагрузитьВнешнююКомпоненту("Add1cServerVesy.dll");
        Рез=ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет_1","ServerAuto",ТипВнешнейКомпоненты.Native);
		Если не Рез Тогда
			УстановитьВнешнююКомпоненту("ОбщийМакет.Макет_1");
			Сообщить("Переоткройте документ!");
			Инициализирован = Ложь;
		КонецЕсли;
			
		Терминал = Новый("AddIn.ServerAuto.Add1CServerVesy");
		Инициализирован = Истина; 
	
       Исключение
		Сообщить("Ошибка соединения с весовым терминалом! " + ОписаниеОшибки());
	КонецПопытки;

Показать
7. gml 28.09.22 21:07 Сейчас в теме +0.03 $m
Ни на сайте разработчика, ни в Вашем посте не указано чётко, где работает данная компонента - на сервере или на клиенте.
Компоненту 1C Native API Вы никаким напильником не заставите работать вместе с ПО 1С (клиентским или серверным) другой разрядности.
В отличие от COM-объектов, описанных в приведённых статьях, здесь никакие обёртки не подействуют (1С непосредственно вызывает функции динамической библиотеки).

Из конструктивного просматривается два варианта:

- попытаться получить у разработчика 64-битную или универсальную версию компоненты
- установить 32-битную клиентскую машину или 32-битный сервер в кластер и работать с них.

Понимаю, что оба варианта могут быть не очень подходящими по различным (финансовым, организационным или техническим) причинам.
ivan453; Светлый ум; +2 Ответить
8. Светлый ум 407 29.09.22 04:39 Сейчас в теме
(7) ну вот приблизительно такой ответ и нужен был, спасибо
9. muskul 29.09.22 07:33 Сейчас в теме
Все равно не понятно зачем использование 64 битного клиента, даже 1с пишет что 32 предпочтительней
10. Светлый ум 407 29.09.22 07:41 Сейчас в теме
(9) Если ERP + отраслевая, имеет много потребностей и 64 бит необходимо. Ради одних весов переводить все на 32 бита... ну такое себе
13. muskul 29.09.22 08:12 Сейчас в теме
(10)Раз у вас ерп, то явно в клиент сервере. а раз клиент сервер, то клиент должен быть 32, все равно все считает сервер. И почему все, вам нужна только 32 битная клиентская часть. сервер всегда 64 битный
11. Светлый ум 407 29.09.22 07:44 Сейчас в теме
Скорее всего просто будем работать как предложили в (4) комментарии. Хотелось уменьшить неопределенность в работе с Dll, и отсечь бесполезные варианты с дополнительными обертками на будущее.
12. klom 29.09.22 08:04 Сейчас в теме
с MSDN
A 32-bit DLL cannot be injected into a 64-bit process, and a 64-bit DLL cannot be injected into a 32-bit process.
14. stroga 85 29.09.22 11:19 Сейчас в теме
Для "старого" оборудования часто нет 64-bit утилит и библиотек.
Аналогично, имею у себя на поддержке УПП 1.3 (дополнительно я еще и БСП, соответственно, новую не могу использовать :)). Произвела переход на 64-бит сервер из-за того, что некоторые обработки и отчеты не помещаются в памяти размером в 2 GB, а в августе, при обновлении конфигурации, мне не хватило памяти на 32-bit-ном клиенте для выполнения работы :).
Помучавшись в поиске необходимых обработок и софта с драйверами для 64-bit клиентов, я просто установила на рабочих местах с торговым оборудованием и кассой 32-bit-ное приложение 1С и забыла о этой проблеме.
А главбух теперь может оборотку по своему любимому 20 счету хоть за год в любых разрезах смотреть ;)
На мой взгляд - это разумное решение.
Оставьте свое сообщение

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