LINUX.ORG.RU

1C и Wine


0

2

Итак начнем как запустить 1С в обычной wine. В интернете есть всего два способа в которых рассказывается как запустить 1С в wine:

1 Способ (Мифический): Установка 1C в WINE

(Инструкция устарела - файла config в новых версиях wine нет) 1. Скачайте с сайта Корпорации Microsoft пакет DCOM98.EXE (http://download.microsoft.com/msdownload/dcom/98/x86/en/dcom98.exe) - удостоверьтесь, что вы имеете лицензию на Windows 98. 2. Запустите команду wine, чтобы были созданы необходимые каталоги WINE.

3. Скопируйте в каталог ~/.wine/dosdevices/c: файлы для установки: dcom98.exe и дистрибутив 1С.

4. Запустите установку DCOM строкой LANG=C WINEDLLOVERRIDES=«ole32=n» dcom98.exe.

5. Запустите setup.exe для установки 1С

Добавьте в ~/.wine/config следующие строчки:

[AppDefaults1cv7.exe/DllOverrides] «oleaut32» = «native» «ole32» = «native» «msvcrt» = «native, builtin»

После настройки 1С на сетевой ключ защиты (по протоколу TCP) программа будет работать.

Вот пример файла NETHASP.INI:

[NH_COMMON] NH_TCPIP = Enabled [NH_TCPIP] NH_SERVER_ADDR = 127.0.0.1 NH_TCPIP_METHOD = TCP

Мифический этот способ потому что на всех форумах написано под копирку, и только 2 -3 комментарий тех у кого это странным способом заработало и с полсотни комментарий с оскорблениями тех у кого это не получилось, в числе которых и я находился, сколько не пытался так и не смог этим способом. 1 Файла config в природе не существует, а любая установка DCOM98 приводит к ошибке. Скорее всего этот способ работает но подходит только для wine@etersoft, а wine@etersoft как это ни является платной программой и сидеть в linux и платить за ПО это по моему безрассудство.

2 Способ (Устаревший): Запуск 1С под Win4Lin

Инсталляция Win4Lin 4.0

На данный момент, наверное, только Win4Lin даст наилучшие результаты для запуска 1С под linux. Скорость работы под изделием от Netraverse по сравнению с другим близким к нему эмулятором VmWare производит очень хорошее впечатление.

Для начала Вам необходимо скачать последнюю версию Win4Lin можно с сайта «Netraverse» (http://www.netraverse.com/support/downloads/), либо с сайта http://download.murphy.pp.ru/win4lin/

Следующее что нужно сделать, это скачать патчи ядра, там же на сайте «Netraverse» в разделе Download

На момент написания данного текста (07/11/2002) последняя версия Win4Lin это Win4Lin-5.3.1i-d. Так же предположим, что у Вас стоит ядро 2.4.19 (для других ядер действия, которые необходимо совершить, аналогичны) Итак, мы скачали файлы:

Win4Lin-5.3.1i-d.i386.rpm Kernel-Win4Lin3-2.4.19.patch mki-adapter.patch

Патчи есть практически под все популярные дистрибутивы и сложностей с этим обычно не возникает. В директории с исходниками ядра необходимо выполнить

bash-2.05a$ cat mki-adapter.patch | \ patch -p1 -s -N -E -d /usr/src/linux/ bash-2.05a$ cat Kernel-Win4Lin3-2.4.19.patch | \ patch -p1 -s -N -E -d /usr/src/linux/

На компиляции ядра подробно останавливаться не будем. Про компиляцию ядра можно почитать на linuxnews.ru. После установки нового ядра и перезагрузки, устанавливаем пакет Win4Lin-5.3.1i-d.i386.rpm. (Так как, у меня установлен дистрибутив Slackware 8.1, то далее все что выделено синим цветом будет относиться к Slackware - прим. автора) Учитывая, что rpm не родной формат для Slackware, то предварительно пакет необходимо сконвертировать из rpm в tgz.

bash-2.05a$ rpm2tgz Win4Lin-5.3.1i-d.i386.rpm bash-2.05a$ installpkg Win4Lin-5.3.1i-d.i386.tgz

Теперь запустим скрипт необходимый для корректной работы программы (по идее этот скрипт должен выполнятся автоматически, но не выполняется)

bash-2.05a$ sh /opt/win4lin/postinst_rpm.sh

Это относилось к Slackware для RedHat-а просто установите Win4Lin-5.3.1i-d.i386.rpm.

Обычно этот этап не вызывает осложнений. Далее, что бы Win4Lin корректно обращался с русскими именами необходимо добавить строчку

ru_RU.KOI8-R koi8-r

в файл /opt/win4lin/locale_codeset

Также в каталоге /opt/Win4Lin/lcs необходимо скопировать файл koi8-r.lcs в ru.lcs и ru_SU.lcs

bash-2.05a$ cp /opt/Win4Lin/lcs/koi8-r.lcs /opt/Win4Lin/lcs/ru.lcs bash-2.05a$ cp /opt/Win4Lin/lcs/koi8-r.lcs /opt/Win4Lin/lcs/ru_SU.lcs

Win4Lin является коммерческим продуктом и его необходимо зарегистрировать. Для получения серийного номера необходимо написать письмо на ящик технической поддержки компании Netraverse (обычно на следующий день они высылают триальный ключ), либо если Вам позволяет совесть, можете взять, безлимитний серийный номер здесь (http://mdlin.by.ru/opt/w4lser.txt), либо на http://merphy.pp.ru.

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

bash-2.05a# /opt/win4lin/bin/ask_license.sh

Здесь необходимо ввести серийный номер (эта операция должна быть выполнена root-ом), все остальные поля можно не заполнять.

Далее идет непосредственно инсталляция Windows (надо заметить, что данная процедура выполняется минут 15-20, что значительно быстрее, нежели эта же инсталляция запущенная из под DOS.

bash-2.05a# winsetup

Запускаем winsetup также от root-а. Выбираем System-wice Administration далее Windows Load CD. В процессе инсталляции Win4Lin-у потребуется загрузочная дискета от Вашей копии Windows, поэтому лучше заранее ее подготовить, а еще лучше сделать образ этой дискеты, и при установке Win4Lin использовать этот образ. При выборе типа сетевой поддержки, лучше выбрать vnet, ввести ip адрес и маску соответствующие вашей локальной сети.

NB:Хочу сразу обратить внимание что, лучше ставить Windows 98SE, причем не все релизы данной версии поддерживаются Win4Lin.

Здесь представлены md5 суммы заведомо рабочей версии win95-md5summ.txt. После того как winsetup выполнит все необходимые манипуляции, остается только, запустить от обычного пользователя:

bash-2.05a# win

На этом процесс инсталляции Win4Lin завершен.

Установка 1C под Win4Lin

Сама по себе инсталляция 1С под Win4Lin ни чем не отличается от инсталляции под Windows. Единственная проблема это ключ защиты, и тут есть как минимум 3 варианта: 1. Установить драйвер защиты на одной из машин под Windows при этом в сети должен присутствовать протокол tcp/ip, а в файле NETHASP.INI включено его использование. 2. Установить драйвер защиты локальной машине (теперь aladdin.ru доступна версия и под Linux. Скачать можно здесь. http://www.aladdin.ru/index.php?id=192 3. Использовать пропатченую версию 1С (наверное данный вариант раиболее предпочтителен). Это не значит что вы должны становиться пиратом, мы ведь будем патчить честно купленную копию...

Итак Win4Lin у нас установлен, 1С запускается, но все-таки кое что еще нужно донастроить.

1. Для более комфортной работы, настоятельно рекомендую, установить обьем оперативной памяти для сессии Win4Lin не меньше чем 64 МБ Для этого запустите (данную операцию необходимо выполнить, от Вашего пользователя):

bash-2.05a# winsetup

в появившемся окне выберите пункт «Personal session configuranion» в разделе Memory установите нужное количество памяти.

2. Для корректной работы 1С необходимо также увеличить количество одновременно открытых файлов. Данные установки находятся в файле /etc/default/merge

MERGE_RLOCK_FILETABLE_SIZE=4096 MERGE_RLOCK_OPENTABLE_SIZE=4096 MERGE_RLOCK_LOCKTABLE_SIZE=4096 MERGE_RLOCK_HASHTABLE_SIZE=2048

Этих значений в принципе, должно хватить нормальной работы одновременно с несколькими базами.

---

PS: Что касается скорости, то надо сказать что сессия Win4Lin у меня запускается примерно за 4-5 сек. Скорость работы 1С в режиме эмуляции практически не отличается от скорости работы под Windows под аналогичным железом.

На этом пожалуй что и все. Теперь Вы момете работать с 1С не хуже чем под Windows.

Вполне возможно этот способ работал но есть как минимум две оговорки. Программы Win4Lin в природе не существует уже и она не бесплатная.

ElCorazon
() автор топика
Ответ на: комментарий от ElCorazon

3 Способ:

Заключается в установке виртуальной машине типа VMWare и VirtualBox. Способ нормальный, надежный и результат гарантирован точно, а зачем тогда при таком раскладе сидеть в linux. Перейдите на Windows и работаете там.

Мой способ:

Для реализации моего способа нам понадобятся следующие программы:

1) Linux установленный и полностью русифицированный (у меня стоит Slackware 13.1) 2) Windows XP и установленная 1С на нем с прописанной одной базой. 3) Программа ListDlls можно бесплатно скачать с сайта Microsoft. 4) Полностью установленная Wine (Перед этим скопируйте файл sol.exe или любую стандартную программу из windows и запустите в wine, так как то что идет в комплекте с wine как то не очень похоже на windows программы, в общем скопированная программа у вас должна работать так же как и в windows) У меня стоит wine-1.2.2 5) 1С Установленная и полностью отвязанная от Hasp ключа.

И так как только у нас все выше перечисленное установлено, настроено и скачано приступает к установке.

В Windows запускаем 1С и открываем любую базу. После этого запускаем программу ListDlls в консоли и даем такую программу «ListDlls.exe >> Dll.txt» после этого в папке где находится программа у нас появится файл Dll.txt. Открываем этот файл и ищем там строку подобного вида: 1cv7s.exe pid: 3584 Command line: «F:\Documents\1C\1СУнФК\BIN\1cv7s.exe»

Ниже будет идти список dll которыми пользуется 1С. Теперь нам необходимо найти и скопировать из Windows в папку с 1С туда где находится файл 1Cv7.exe только те dll которые находятся в C:\Windows\system32. Вам еще там попадется файл с расширение drv его тоже захватите.

После этого запускаем winecfg и добавляем 1С в список приложений. Переходим на вкладку dll и добавляем только те dll которые мы скопировали из windows и присутствуют в списке dll wine, а в свойствах указываем что это будет сторонняя (Windows) библиотека, если библиотека отсутствует в списке ничего не делаем просто оставляем ее в папке с 1С.

Теперь нам нужно сделать человеческое оформление в 1С. Для этого нам нужно скопировать все файлы из папки C:\Windows\Fonts в папке \home\Имя пользователя\.wine\disk_c\windows\Fonts у меня там почему то был только 1 файл, а после копирования почти все шрифты стали отображаться как и в Windows.

После этих небольших манипуляций можно наконец запускать 1С и радоваться.

ElCorazon
() автор топика

и к чему тут вся эта портянка?

anonymous
()
Ответ на: комментарий от ElCorazon

Сильно не ругаемся и не материмся способ полностью работоспособен и это моя первая статья так что заранее извиняйте за оформление. Если будут вопросу пишите на wmail@mail.kz или в магент: navigator_2000@inbox.ru постараюсь ответить как можно быстрее. И забудьте про wine@etersoft сидеть в linux и использовать эту программу по моему нет никакого смыла тем более она платная, а virtualbox и подобные программы это особый случай для запуска программ на подобии AutoCAD.

ElCorazon
() автор топика
Ответ на: комментарий от ElCorazon

1С Установленная и полностью отвязанная от Hasp ключа

Опаньки!

akinator ★★
()
Ответ на: комментарий от ElCorazon

лучше бы вы завели себе бложик в другом месте (на каком нибудь ссаном блогспоте например) и кидали бы сюда на него ссылки

anonymous
()

> является платной программой и сидеть в linux и платить за ПО это по моему безрассудство.
Язабан.

kernelpanic ★★★★★
()
Ответ на: комментарий от ipwww

1C версии 7.7 Дело в том что первые три способа не дают ни какого результата. Максимум что вы выдавите из 1С это окно с выбором баз. После чего она вам выдаст сообщение «Неправильный путь \contents» чего то там.

ElCorazon
() автор топика

а любая установка DCOM98 приводит к ошибке.

winetricks dcom98 перестало работать?

Ip0 ★★★★
()
Ответ на: комментарий от stormblastt

Сколько не пробывал ни как не получалось лично у меня wine@Etersoft даже не запускалась

ElCorazon
() автор топика

вот вспомнил еще нужна либа mfc42.dll и её тоже прописать что используется нативная

добавлять руками строки в конфиг вайна необязательно - по winecfg запускается графическая утилита вайна

ipwww ★★
()

1C любая (и 7.7 и 8.1 и 8.2) ставится на ванильный вайн, работает с глюками, но работает.

dumal ★★
()
15 сентября 2011 г.
Ответ на: комментарий от dumal

1c по сети или на терминальном сервере

Сейчас бьюсь над проблемой, может кто решал. Не могу запустить 1С для работы с сетевой базой, точнее для совместной работы. Исходные данные

ОС Kubuntu 10.04 LTS Wine 1.3.26 1C 7.7.025 Samba 3.5.4 FreeNX 3.2.0-74 Базы 1С пробовал как локальные так и смонтированные через шару на самбе

1C запускается, как локально так и через терминал. При попытке подключиться со второго рабочего места 1С (как через терминал так и с другого компа) 1с ругается, что работа в программе была завершена аварийно и требует переиндексации баз. Пробовал уже базы монтировать и при помощи etercifs, результат тот же. Кто-то решил подобную проблему?

Herch
()

>wine@etersoft как это ни является платной программой

wine же выходит Lesser General Public License. Как это оно становится платным его вариации wine@etersoft?

anonymous
()

Первый способ я видел в советах на опеннете. Посоветовал для железно-бесперебойной работы задействовать Wine от etersoft.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

етерсофт не предлагать, я про него знаю. Тем более за терминальную версию они немного с ценой загнули. Вроде народ как-то проблему решал с обычным вайном. Пока работающего решения не нашел. Может у кого-то получилось, ищу коллег по этому несчастью.

Herch
()
Ответ на: комментарий от anonymous

Lesser General Public License.

Попробуй ее прочитать :)

power
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.