Архів теґу: PostgreSQL

Открытое ПО: 1С + PostgreSQL на Ubuntu

Продолжая тему, затронутую с статье “Надо ли ловить рыбу динамитом”, можно сказать следующее.
Наиболее частые ответы на вопрос – “Почему вместо ворованного и дорогого программного обеспечения не использовать нормальное и дешевое?” звучат так:
1. Высокая “стоимость владения” – Linux мало кто знает, поэтому если уходит админ, то потом замену найти сложно.
2. Под Linux не работает… и как правило самым важным пунктом среди этого “неработающего” становится бухгалтерия.
По пункту первому можно сразу во первых сказать, что собственно найти нормального (я подчеркиваю – именно с достаточно высоким уровнем квалификации, а не эникейщика) админа под Windows такая же сложная задача, как и под Linux. По поводу “стоимости владения” я попытаюсь в дальнейшем написать отдельную статью, так как тема явно выходит за рамки одного абзаца.
Во втором вопросе ситуация более простая? На сегодняшний день вариантов решения данной проблемы несколько – один из них, воспользоваться коммерческими продуктами – например Wine@ENTEROSOFT, либо CrossOver, либо им подобным – как правило вы получите техническую поддержку, решение ряда проблем и вопросов за в принципе адекватные деньги. Если это вас устраивает – то далее читать вам смысла особо нет.
Второй вариант – воспользоваться наработками сообщества и использовать аналоги этих программ с открытым исходным кодом.
И еще несколько замечаний – в статье принципиально не буду рассматривать варианты “что бы на шару” – если вы используете 1С, то это ваши проблемы и подразумевается что она у вас куплена не на ближайшем радиорынке. Связано это не столько с моей какой то особой любовью к детищу господина Нуралиева, а с тем что во первых на небольшом предприятии собственно 1С и не нужна особо, вполне можно обойтись либо самописной либо бесплатной версией – ИМХО ножки надо протягивать по одежке, а не пользоваться краденным, оправдываясь, что дескать лицензия стоит дорого, либо если вы считаете что лично вам (либо вашему бухгалтеру) без данной программы не жить – то значит вполне логично заплатить за это. Хотя как с моей точки зрения – линейка программ 1С:Бухгалтерия вложенных денег не оправдывает, но так как лично вам надо – заплатите за это денег. Но впрочем это к теме не относится.
Так, как наиболее востребована именно работа с бухгалтерией, в данной статье я опишу как использовать 1С Бухгалтерию 8.1 в файловом и серверном варианте под Linux в гетерогенной сети.
В качестве операционных системы используются Ubunta Server Edition x64 9.04, KUbunta 9.04, Windows XP SP3, Windows Vista Ultima – на клиентских машинах – в зависимости от наличия лицензий. Сеть построена на базе оборудования D-Link, первоначально в большей своей части была беспроводной – но в дальнейшем от беспроводного сегмента вынужденны были отказаться, почему – поясню далее.
Для решения задачи необходимо:

  1. Программа эмуляции – я использую WiheHQ (Wine Is Not Emulator) – для запуска под Linux клиента 1С:Бухгалтерии. В настоящее время стабильная версия – 1.0.1, ее можно использовать в том случае, если вы собираетесь остановится на файл-серверном варианте, либо под SQL-версию используйте 1.1.29 (на текущий момент последний релиз) (НЕ WINE@ENTEROSOFT которая является коммерческим продуктом!!!!)
  2. Для файл-серверной версии (а так же для организации файловых шар, организации домена) необходима samba. Информации по настройкам в Интернете более чем достаточно, поэтому вопросы настройки самбы для работы 1С я не рассматривал, за этим я отсылаю вас в великий гугль – тем более, что стандартные настройки самбы вполне корректно позволяют работать, но тюнинг не помешает.
  3. Если вы планируете использовать сервер терминалов (а если вы используете файл-серверную версию и у вас более 2-3 клиентов – то от этого вы никуда не денетесь) то у вас будет два варианта – либо использовать Free-версии 2X TerminalServer либо FreeNX – в первом случае вы получаете 3 терминальных сессии, во втором 2, либо использовать полностью бесплатный вариант на базе Cygwin, либо использовать XMing (10 английских фунтов). Я бы советовал вариант для FreeNX (она наиболее простая и быстрая), в связи с тем, что для небольшого предприятия в принципе этого должно хватить – либо же вы можете воспользоваться описанием – Cygwin для начинающих.
  4. PostgreSQL – я установил скачанную с сайта компании 1С.
  5. Собственно 1С – серверная (версия под Linux) и клиентская часть. Версия программы – 8.1.14.72, конфигурация “Управление торговлей для Украины” версия 2.3.4.2. Обратите внимание что версия клиента и версия сервера должны совпадать (по крайней мере у меня выдавало ошибку если клиент был более младшей версии).
  6. Так же возможно вам понадобится программа wine-doors, которая может вам помочь, в том случае, если вам нужно запускать на компьютере специфические приложения Windows – типа IE6 и тому подобное. Так же есть ее аналог – winetricks – для рассматриваемых задач они в принципе не нужны, но могут вам пригодится.

Хочу обратить ваше внимание – используя данные программы, не жадничайте – если вам удалось решить поставленную задачу – выделите немного средств и пожертвуйте в те проекты, плодами работы которых вы воспользовались. От вас не убудет если вместо 1000-2000 убитых президентов вы потратите на развитие свободного ПО 20-100 долларов. Если вы можете принять участие в разработке – это тоже не помешает, если не можете – помогите материально.
После того, как вы установили Ubuntu Server Edition, выполните обновление системы и установите самбу. Сложностей тут нет никаких, поэтому останавливаться особо не вижу смысла.
Следующим этапом – скачиваете PostgreSQL (либо берете его на диске ИТС) версии 8.1.5-14.1С.
После установки создаете папку в которой будут находится ваша база данных (например /mnt/smb/data) назначаете для нее владельцем пользователя postgres и группу postgres.
Так же стоит назначить пароль для учетной записи сервера используя команду passwd.
Следующим шагом вам необходимо инициализировать папку базы данных. Делается это следующей командой:

$su postgres -c 'LANG=ru_RU.UTF-8 initdb /mnt/smb/data'

вы можете получит сообщение о том, что параметр SHMMAX в ядре меньше чем требуемый.

# sysctl -a|grep shmmax

как правило утилита пишет сколько ей надо. Если надо – значит ставите, например:

echo "kernel.shmmax = 134217728" >> /etc/sysctl.conf

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

su postgres -c 'LANG=ru_RU.UTF-8 pg_ctl -D /mnt/smb/data -l /mnt/smb/logfile start'

Если все прошло без ошибок – следующим этапом выполняем:

su postgres -c 'LANG=ru_RU.UTF-8 psql localhost postgres passwd'

Соотвественно вы должны использовать пароль, который вы установили для пользователя postgres.
Здесь его можно поменять:

alter user postgres with password 'YOUR_PASSWORD';
\q

Да и после этого нужно внести изменения в файл data/pg_hba.conf – в конце файла стираем все строки после строки

# TYPE DATABASE USER CIDR-ADDRESS METHOD


И пишем то, что ниже:

host all all 127.0.0.1/32 md5
host all all 192.168.0.0/24 md5

Сервер перезапускаем.
Все. Теперь вы можете попробовать присоединится любой утилитой для администрирования (я использую pgAdmin III) и проверить работу сервера.
Следующий этап – установка сервера 1С. Так как файлы сервера поставляются в редхатовских пакетах (*.rpm) необходимо выполнить предварительно конвертацию –

$alien --scripts --to-deb *.rpm
...
$dpkg -i *.deb

После необходимо установить wine на клиентской машине – и 1С:Бухгалтерию в ней – при установке программы НЕ ЗАБУДЬТЕ СНЯТЬ ГАЛОЧКУ – инсталлировать HASP-driver. ОБЯЗАТЕЛЬНО! Необходимо в /etc/hosts прописать адрес и имя машины на которой работает сервер. После этого запускаете консоль управления серверами 1С предприятия, (нужно при установке на одном из клиентов выбрать сервер – службу не запускать, после этого в директории появится оснастка управления сервером, на Linux она находится ~/.wine/drive_c/Program Files/1cv81/bin – файл 1CV8 Server.msc), создаете центральный кластер, в него добавляете свой сервер, создаете базу. Все.
Дальше стандартно запускаете 1С – “Добавить” – “Существующую информационную базу” – “На сервере 1С Предприятия” – далее указываете имя вашего сервера (при попытке указать адрес в моей версии wine я стабильно получал ошибку) и имя базы данных – и спокойно работаете.
Перенос данных из файловой БД выполняется простой выгрузкой и загрузкой данных.
Настройка же бухгалтерии на базе файловой БД еще проще. Все что вам нужно – это установить и настроить самбу, поместить либо создать БД.
Но естественно не все так просто.
Типичные ошибки, с которыми вы можете столкнуться:
1. Клиентская машина при попытке соединится вылетает с ошибкой “Внутренняя ошибка” – решение – обновите wine до версии 1.1.29
2. Клиентская машина вылетает при запуске с сообщением “Socket error …”- решение – пропишите в /etc/hosts адрес вашего сервера
3. Сообщение – “Invalid value for parameter >>”lc_messages”:”en_US”” – решение –

sudo echo "en_US.UTF-8 UTF-8" >> /var/lib/locales/supported.d/en
sudo locale-gen en

В целом вроде все. Если есть вопросы – пишите.
При установке были использованы следующие статьи:

  1. Установка 1с на Linux
  2. Сайт Гилева – Установка 1С в картинках
  3. Сервер 1С 8.1 под Linux (файловый и серверный варианты)
  4. Установка сервера приложений
  5. v8: Установка сервера 1с 8.1 и postgresql на машину с OpenSuse linux
  6. v8: Коды ошибок 1С 8.0

©Varkon Ltd 2010
При перепечатке материала ссылка на данный сайт обязательна.
ООО Варкон. Высококачественный сервис и поддержка.