В wine пользователь, имеющий все права на всю свою .wine, не является администратором с точки зрения методов, определяющих это из программы. В частности, из-за этого возникают проблемы с регистрацией базовой 1С 8.1.
Необходимо узнать, как программа определяет, что пользователь является администратором. Мой вариант - чтение соответствующего ключа в реестре, а в wine такого ключа нет.
проверить можно в бутылке swine 1c81AccountingBase
Информация "к сведению". Проверяя вариант, что wine не получает прав администратора, решил проверить, будет ли такая же ошибка вод виндовс, если устанавливать и пытаться зарегистрировать 1С от имени обычного пользователя, не администратора. Делал я это еще три недели назад, как только обнаружил баг. Так вот, 1С выдавал нормальное окошко с двумя кнопками: "Да" и "Нет". Я не располагаю всей информацией по "нутру" wine и windows, но подумал что это замечание может быть полезным, не исключено что причина не в том, что нет прав администратора, но утверждать конечно ничего не могу.
кстати нет. видимо пользователь у Вас входит в группу "Администраторы" т.к., во-первых, у мы добились этого в Windows (запустив под "гостем"), во-вторых это окошко не имело бы смысла вообще если в WIndows все "гладко" при любом раскладе
Возможно стоит проверить не под гостем? Может нужна не чётко административная группа, а какая-либо ещё? Мы тут нашли в книге об этом немного, я принёс Косте.
В "учётных записях" нашей WinXP есть только два состояния - администраторская запись и ограниченная. В одном случае работает, в другом - нет. Проверял под своей учёткой, не гостевой.
Сделал diff по реестру WinXP. HKEY_LOCAL_MACHINE идентичны HKEY_USERS различаются только одним "последним открытым файлом", что к нам точно не относится.
Такая же ошибка при запуске 1С в Windows 98. Видимо, предположение про работу COM-объекта и wbem/wbemprox.dll из WinNT оказывается правильным. Кстати, 1С 8.1 официально работает в Windows 98.
(In reply to comment #8) > Такая же ошибка при запуске 1С в Windows 98. > Видимо, предположение про работу COM-объекта > и wbem/wbemprox.dll из WinNT оказывается правильным. > > Кстати, 1С 8.1 официально работает в Windows 98. > Насчет работает мы еще посмотрим. Но оффициально поддерживается -- это точно ( http://v8.1c.ru/requirements/ )
удалось получить желаемый результат с 1с 81 Бухгалтерия Базовая, после установки необходимого комплекса библиотек поставляемых в WMI 1.5 ( http://www.microsoft.com/downloads/details.aspx?FamilyId=98A4C5BA-337B-4E92-8C18-A63847760EA5&displaylang=en ) НО! По первичным данным: Установка противоречит лицензии WINE! Использование возможно лишь при наличии лицензии на Windows. Основной по трейсам является wbemprox.dll -- WBEM Locator trace:ole:apartment_getclassobject added new loaded dll L"C:\\windows\\system32\\wbem\\wbemprox.dll" trace:ole:apartment_getclassobject calling DllGetClassObject 0x74eb20e2 trace:ole:CoCreateInstance (rclsid={8bc3f05e-d86b-11d0-a075-00c04fb68820}, pUnkOuter=(nil), dwClsContext=00000014, riid={0000 trace:ole:CoGetClassObject CLSID: {8bc3f05e-d86b-11d0-a075-00c04fb68820}, IID: {00000001-0000-0000-c000-000000000046} trace:ole:RPC_GetLocalClassObject rclsid={8bc3f05e-d86b-11d0-a075-00c04fb68820}, iid={00000001-0000-0000-c000-000000000046} trace:ole:WINE_StringFromCLSID 0x74eb1a5c->{8BC3F05E-D86B-11D0-A075-00C04FB68820} trace:ole:RPC_GetLocalClassObject waiting for L"\\\\.\\pipe\\{8BC3F05E-D86B-11D0-A075-00C04FB68820}" trace:ole:create_local_service Attempting to start Local service for {8bc3f05e-d86b-11d0-a075-00c04fb68820} trace:ole:WINE_StringFromCLSID 0x74eb1a5c->{8BC3F05E-D86B-11D0-A075-00C04FB68820} trace:ole:WINE_StringFromCLSID 0x74eb1a5c->{8BC3F05E-D86B-11D0-A075-00C04FB68820} err:ole:create_server class {8bc3f05e-d86b-11d0-a075-00c04fb68820} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported *** trace:reg:NtOpenKey (0x74,L"CLSID\\{4590F811-1D3A-11D0-891F-00AA004B2E24}\\InprocServer32",f003f,0x7fdeeab4) Необходимо написать заглушку для библиотеки, что обеспечит корректную работу нужных приложений. Проверить можно в swine 1c81AccountingBase удалив c:\windows\system32\WBEM
Зделал заглушку для первого вызываемого объекта IWbemLocator. Пока не помогло т.к. требует возвращения объекта IWbemServices. Делаю IWbemServices.
Реализовал заглушку для IWbemServices. При запуске 1С видим, что она вызываем метод CreateInstanceEnum, со строкой запроса "Win32_DiskDrive" и требует возвращения перечисления IEnumWbemClassObject. Возвращаемые значения, такие как "метод не реализован" или "S_OK" не дают результатов. Требуется реализация IEnumWbemClassObject.
может это поможет: http://openwbem.org/ http://www.dmtf.org/standards/wbem/
:-) Может, не в тему в данном баге. Но после регистрации при создании базы программа валится через раз. Точнее - один раз базу создать получилось - все следующие разы - выкидывает дамп и просит подождать. Когда создадите новый - включите меня в список подписчиков пожалуйста.
Вот на это можно твердо полагаться или это непрочная отмазка? "alexander@book:~$ ieinstall Программа установки Internet Explorer. Для использования IE требуется выполнение одного из следующих условий: 1. У Вас имеется лицензия на Windows версии больше Win95; 2. Устанавливаемый дистрибутив IE 6 поставляется совместно с приложением, для которого Вы устанавливаете IE 6 (Например 1С:Предприятие 8.1)."
Это непрочная отмазка, впрочем возникающий риск близок к 0. Мы выпустим новую версию WINE@Etersoft с исправлением проблемы падения и включим туда команду ieuninstall для удаления установленных компонент IE.
Все есть DLL-заглушка, при работе которой появляется окно о регистрации 1С базовой. Осталось добавить информацию о регистрации dll, сейчас используется информация оставшаяся от регистрации WMI.
Сделал патч. Поместил в наш cvs, но в сборку не включал. Отправил на wine-patches, ждем ответа.
Ошибка воспроизводится на последней сборке wine в SuSe 10.3. Вывод rpm -qa | grep wine: wine-20071130-eter10suse wine-etersoft-sql-1.0.8-eter7suse libwine-20071130-eter10suse
Сейчас добавлю в сборку. Будет в следующей сборке, 04.04.08 вечером.
DLL добавлена, ошибку закрываю.
Надо проверить на текущей ветке testing- есть жалоба от клиента, что не работает.
не надо убирать СС
Дистрибутив 1с лежит здесь /var/ftp/pvt/Windows/Testing/RT/17487.
задача актуальна. попробовал установить 1Ску в Windows. зарегестрировал (работает). на втором разделе поднял CentOS с wine..попробовал заупстить туже 1Ску - результата аналогичный, нет приветствия для регистрации, сразу выходит окно об отсутствии ключа hasp.
Хм, а причём тут ключ защиты? Бага заведена по проблеме с базовой 1С, которая регистрируется программно, без ключа. Я не вижу связи ситуации "нет прав администратора" с ситуацией "не найден ключ защиты". Просьба разобраться и завести отдельную багу, если потребуется.
в том то и проблемма, 1Ска с програмной регистрацией (без физического ключа), а ведет себя в линксе как будто она имеет ключ hasp.
(В ответ на comment #28) > в том то и проблемма, 1Ска с програмной регистрацией (без физического ключа), а > ведет себя в линксе как будто она имеет ключ hasp. Вы могли бы нам прислать дистрибутив 1С с програмной регистрацией (без физического ключа), залить можно на ftp.etersoft.ru логин/пароль etersoft/etersoft
(В ответ на comment #28) > в том то и проблемма, 1Ска с програмной регистрацией (без физического ключа), а > ведет себя в линксе как будто она имеет ключ hasp. Всё примерно понятно. Но бага должна быть отдельной (потому что речь идёт о совершенно другой реализации программной привязки) и должна блокировать новый релиз.
уже давно отправил дистирибутив. Дистрибутив 1с лежит здесь /var/ftp/pvt/Windows/Testing/RT/17487. вопрос: зависит ли работа wine от ОСи, т.е. если попробовать этот дистрибутив не под CentOS, а например в той же ubuntu(Debian) ?!
(В ответ на comment #31) > вопрос: зависит ли работа wine от ОСи, т.е. если попробовать этот дистрибутив > не под CentOS, а например в той же ubuntu(Debian) ?! Я думаю ничего не изменится. Завел другой багу по вашей проблеме, просьба теперь общаться там: http://bugs.etersoft.ru/show_bug.cgi?id=6961