среда, 13 июня 2012 г.

Полная установка 1С 7.7 SQL, 1C8.2 в Linux (Ubuntu 10.04) c поддержкой COMОбъектов

Обновляем все пакеты до их последних версий:
$sudo apt-get update
$sudo apt-get upgrade 
$sudo apt-get dist-upgrade
 
Качаем необходимые компоненты:
$sudo wget -c https://dl.dropbox.com/u/61986139/1c/wine1.5.5_ALAH_buid.tar.gz

альтернативная ссылка когда балуется dropbox:
https://docs.google.com/file/d/0B0NszQEdLyqLVXEycC01dGhfT2s/edit?usp=sharing

Устанавливаем необходимые зависимости для сборки wine:
$sudo apt-get build-dep wine

Распаковываем архив со сборкой:
$tar -xvzf wine1.5.5_ALAH_buid.tar.gz 
$cd ./wine1.5.5_ALAH_buid

Устанавливаем wine:
$tar -xjf wine-1.5.5.tar.bz2

$./wine-1.5.5/tools/wineinstall 


Устанавливаем wine_geco:
$sudo mkdir -p /usr/share/wine/gecko
$sudo cp ./geko/wine_gecko-1.5-x86.msi /usr/share/wine/gecko/


Устанавливаем winetricks:
$sudo cp ./winetricks/* /usr/bin
$sudo chmod +x /usr/bin/winetricks1.5
$sudo chmod +x /usr/bin/winetricks@etersoft

Устанавливаем DCOM:
$wine ./DCOM98.EXE /C
  (выбираем папку c:\windows\system32 (перезаписывать все!))


Устанавливаем необходимые компоненты:

- архиватор 7-zip
$winetricks@etersoft 7zip

- MS XML Core Services 3.0
$winetricks1.5 msxml3 

- MS XML Core Services 4.0
$winetricks1.5 msxml4

- MSScript Control 
$winetricks1.5 msscript

Регистрируем необходимые библиотеки:
$cd /home/user/.wine/drive_c/windows/system32
$wine regsvr32 msxml3.dll
$wine regsvr32 msxml4.dll
$wine regsvr32 msscript.ocx
$cd /home/user/wine1.5.5_ALAH_buid 

Копируем и регистрируем необходимые библиотеки:
$cp ./DLLS/*.* /home/user/.wine/drive_c/windows/system32
$cd /home/user/.wine/drive_c/windows/system32 
$wine regsvr32 mfc40.dll
$wine regsvr32 mfc42.dll
$wine regsvr32 mfc42u.dll
$cd /home/user/wine1.5.5_ALAH_buid 

Устанавливаем необходимые компоненты:

- MDAC 2.7
$winetricks1.5 mdac27

- MSJET 4.0
$winetricks@etersoft jet40

- Internet Explorer
$winetricks1.5 ie8

Устанавливаем ключи реестра для работы ODBC:
$wine regedit

импортировать ключ реестра из ./ODBC/ODBC.reg


Устанавливаем 1С7.7, 1С8.2

Процесс установки 1с под wine почти ничем не отличается от такового процесса под Windows. В процессе установки следует помнить, что НЕ НАДО устанавливать HASP DEVICE DRIVER.



Устанавливаем замещение библиотек:
$winecfg
добавить в "приложения" 1cv7s.exe и на вкладке "Библиотеки" выставить для него такие замещения:
       mfc42 = (сторонняя, встроенная)
       msvcrt = (сторонняя, встроенная)
       msvcrt40 = (сторонняя, встроенная)
       odbc32 = (сторонняя)
       odbccp32 = (сторонняя)
       ole32 = (сторонняя)
       oleaut32 = (сторонняя)
       olepro32 = (сторонняя)
       rpcrt4 = (сторонняя)
       sqlsrv32 = (сторонняя, встроенная)

+ для 1cv7s.exe на вкладке "Графика" снять галочку "Разрешить менеджеру окон декорировать окна wine"

добавить в "приложения" 1cv8.exe и на вкладке "Библиотеки" выставить для него такие замещения: 
       ole32 = (сторонняя)
       oleaut32 = (сторонняя)
       olepro32 = (сторонняя)
       rpcrt4 = (сторонняя)

+ для 1cv8.exe на вкладке "Графика" снять галочку "Разрешить менеджеру окон декорировать окна wine"


Устанавливаем поддержку windows-шрифтов:
$winetricks1.5 corefonts
Дополнительные шрифты, при необходимости, можно установить из ./FONTS/

 



Локальная версия 1С 7.7 готова к работе. 1С8.2 готова к работе как в локальном, так и в клиент-серверном варианте.



Для 1С 7.7 SQL версии необходимо заменить библиотеку BkEnd.dll на пропатченную и подкинуть V7PLUS.DLL для работы регламентированной отчетности:
$cp ./1cDLL/* /home/user/.wine/drive_c/Program\ Files/1Cv77/BIN/


(Самостоятельно можно пропатчить BkEnd.dll можно так:
- поставить 25й релиз,
- пропатчить его с помощью uSP_2.13.24_Soaron.exe (закладка "защита" пункт "Разрешать другим пользователям входить в базу")

- скопировать из /home/user/.wine/drive_c/Program \Files/1Cv77/BIN/ новую
библиотеку BkEnd.dll.

- обновить 1с до 27го релиза
- вернуть пропатченную библиотеку обратно)

 !!!при замане библиотеки теряятся только блокировка по количеству
пользователей с одного логина... Болкировка на документы и таблицы
журналов выставляется корректно!!!



Отключаем проверку кодовой страницы ИБ в 1С 7.7:
$touch /home/user/.wine/drive_c/Program\ Files/1Cv77/BIN/ordnochk.prm

Устанавливаем CIFS:
$sudo dpkg -i ./etercifs/4.5.3/*.deb 
Свежие пакеты CIFS можно взять здесь

Добавляем автомонтирование БД при старте системы:
$sudo mcedit /etc/fstab
строка монтирования
//server1c/BaseBuh /mnt/BaseBuh cifs noperm,rw,user=alah,dom=mydomain,pass=mypass,iocharset=utf8,forcemand,direct 0 0
(save file)
$sudo mount -a 

!!!ВНИМАНИЕ!!! в опциях user=alah,dom=mydomain,pass=mypass необходимо поставить СВОИ данные (юзер с правами доступа в каталог БД)!!!


Установка HASP
Если 1C лицензионная и есть ключи, то необходимо установить HASP. В противном случае это действие можно пропустить
$sudo dpkg -i ./HASP/*.deb
Выключаем компьютер, вставляем ключ защиты и запускаемся
Свежие пакеты HASP можно взять здесь

Устранение проблем:

В случае проблемы у 1С 7.7 с нахождением сервера - заходим в конфигуратор --> "Администирование" --> "Параметры базы данных SQL" и адрес сервера меняем с имени на его IP-адрес.


Также, случается, что 1С 8.2 выдает ошибку: "Ошибка загрузки компоненты backbas". В таком случае лечится установкой дополнительных пакетов:
#apt-get install libodbcinstq1c2 

В некоторых дистрах пакет зовется unixodbc

Иногда, бывает, что в wine-приложениях не набирается "русский" текст. Кнопки жмешь, а букв нет... Причем с цифровой клавиатуры все набирается нормальною Это происходит из-за не корректной для windows-приложения локализации. Лечится так:
#locale-gen ru_RU.CP1251

и добавляем вначале команды на "кнопке запуска" приложения:
LANG=ru_RU.CP1251


Проблемы с выгрузкой из 1С 7.7 в XML (декларация по НДС):

"msxml3.dll: Incorrect definition for the root element in schema" и "компонента v7plus ошибка инициализации xml parser"

Лечится так:
Необходимо заменить в system.reg все строки типа
@=str(2):"%SystemRoot%\\system32\\msxml4.dll"
на
@="C:\\windows\\system32\\msxml4.dll"
либо выполнить скрипт:
$sh ./system.sh


либо выполнить команду:
$wine regsvr32 /u msxml4.dll 
$wine regsvr32 msxml3.dll




 Для доступа к БД FireBird, Interbase из 1С - устанавливаем IBProvider:
$wine ./ibprovider/IBProvider_free_32_3.11.1.13186.exe


Также, часто, разработчики используют вспомогательные модули для 1С, такие как - OpenConf.
Рассмотрим его установку.

Качаем последний OpenConf (http://openconf.1cpp.ru/).
Перед установкой OpenConf, обновим Windows Script Host (он идет с поставкой OpenConf - файл scriptru.exe)

В каталоге Bin каталога установки 1С создаем папку Config и перемещаем в неё оригинальный файл config.dll из поставки 1С.

Скопируем в каталог Bin содержимое архива из поставки OpenConf (согласившись с вопросом на перезапись папки Config)

Из каталога c:/Program Files/1Cv77/BIN/config/system регистрируем все WSC компоненты:
$cd /home/user/.wine/drive_c/Program\ Files/1Cv77/BIN/Config/System
$wine regsvr32 /i:CommonServices.wsc C:/windows/system32/scrobj.dll
... и т.д. для всех файлов

!!!! Компонент OpenConf.RegistryIniFile.wsc надо регистрировать в последнюю очередь !!!!


Остальные библиотеки из папки c:/Program Files/1Cv77/BIN/config/system копируем в c:/windows/systeem32 и регистрируем стандартным способом:
$wine regsvr32 dynwrap.dll 
... и т.д. для всех dll-файлов


Вот и все! Жопиздан! (c) Job is done