[Open source] 1С + PostgreSQL на Ubuntu. Описание некоторых проблем

В продолжении темы о Linux и его использовании продолжу описание сложностей и проблем, которые могут возникнуть.
Во первых, одна из наиболее надоедливых проблем, с которым я столкнулся на убунте — это глюк в KDE связанная с приводом компакт-дисков (CD-ROM). Если в дисководе нет диска — то система с периодичность примерно в две минуты просто останавливалась. В логах Читать далее

Открытое ПО: 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
При перепечатке материала ссылка на данный сайт обязательна.
ООО Варкон. Высококачественный сервис и поддержка.

Открытое ПО: Надо ли ловить рыбу динамитом

В шутке — «Покупая лицензионный Windows, ты финансируешь войну в Ираке»- есть конечно доля шутки. Но на самом деле ситуация катастрофическая — огромное количество компьютеров в государственных учреждениях, силовых структурах и органах государственной безопасности по сути целиком и полностью зависят от частной лавочки за океаном. А это значит, что и пользователи этих самых компьютеров вынужденны плясать под дудку корпорации. В современной ситуации тот кто контролирует программное обеспечение в стране — тот полностью контролирует и страну. И по этому, если пользователи страны зависят от полностью закрытой операционной системы, разработка которой не может контролироваться гражданами — эта страна не может быть независимой. Как бы мы не твердили о своей не зависимости — но если в одну секунду аппарат управления может быть парализован — грош цена этой независимости. Это если не рассматривать финансовые последствия вывода огромного количества денег из страны и т.п.
Но это лирика. Помимо глобальных государственных проблем, существуют и обычные проблемы рядового пользователя — вирусы, вредоносные программы и т.п. Достаточно посмотреть на количество предложений на рынке — «Лечение вирусов», «Восстановление компьютера» и им подобные объявления пестрят на каждом углу. Подобные услуги предлагают и студенты, и мелкие фирмы и крупные компании — спрос есть и спрос огромный. Огромное количество денег тратится на то, что исправить недоработки индийско-китайских разработчиков и их американского начальства.
Есть ли выход из этой ситуации? Так ли уж не возможно обойтись без Apple, Windows, Adobe? Почему и откуда в стране возник рынок ворованного ПО? Сейчас практически в каждой конторке на компьютере бухгалтера либо секретаря стоит как минимум WindowsXP Pro — но нужна ли она там?
Стандартным оправданием в таких случаях является — «так мы ж его на радиорынке купили, почти шара», «так это ж хорошо — люди могут освоить нужные программы». Но это далеко не шара, и хорошего тут мало — потому как такой «специалист» целиком и полностью зависящий от одной программы в конечном итоге получится весьма затратным. Если офис-менеджер ради того, что бы изменить размер фотографии открывает Photoshop — то это напоминает рыбака, который одного окунька ловит динамитом. В большинстве офисов единственная задача менеджеров — печать документов, работа в 1С и сидение в «Одноклассниках».
Надо ли ради этого ставить WindowsXP Pro? Сомнительно. Но, как в анекдоте «яка країна, такий и теракт» (какая страна такой и теракт), какие «фирмы», такие и «ит-спецы». И на 7 из 10 компьютеров в офисах ставятся разнообразные «сборки» типа Loоner, Zver, Filka либо просто оригинальная система либо OEM либо с ближайшего рынка. Кому это надо — вопрос особый. Но хочу особо отметить — для того что бы работать — вовсе нет необходимости в Windows вообще.
Среди программного обеспечения с открытым исходным кодом существует масса решений, которые позволяют быстро, эффективно и просто настроить нормальную работу в офисе, не транжиря напрасно деньги.
Хочу сразу оговорится — программное обеспечение с открытым исходным кодом — вовсе не всегда является бесплатным. Но в отличии от пользователей MS Windows — у вас ВСЕГДА есть как минимум два подхода к решению задачи. А как правило их гораздо больше.
Но и это не значит, что нужно использовать только Linux, например. Просто, принимая решения, руководитель ИТ должен понимать достоинства и недостатки конкретных решений — а комплексной информации, в которой было бы охвачено хотя бы часть аспектов — весьма не много. Поэтому — если у вас есть конкретные вопросы по внедрению ПО, проблемы либо трудности с использованием свободного ПО — пишите. В следующей статье будет рассмотрено использование 1С + распределенных баз с использованием Linux Ubuntu 9.04.

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