1C: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 28: Строка 28:
Стандартный Postgresql не будет работать с 1С, а rpm-пакеты с Postgres, которые идут в дистрибутиве 1C, предназначены только для установки на fedora-совместимых дистрибутивах. Поэтому для ALT Linux была собрана специальная версия этой СУБД — postgresql8.2.1C. Пакеты находятся [ftp://ftp.altlinux.org/pub/people/rt/1c-repo здесь], либо их можно установить из репозитория Sisyphus (Если потребует rpmlib(PayloadIsLzma) то apt-get install 'rpm>=4.0.4-alt93'):
Стандартный Postgresql не будет работать с 1С, а rpm-пакеты с Postgres, которые идут в дистрибутиве 1C, предназначены только для установки на fedora-совместимых дистрибутивах. Поэтому для ALT Linux была собрана специальная версия этой СУБД — postgresql8.2.1C. Пакеты находятся [ftp://ftp.altlinux.org/pub/people/rt/1c-repo здесь], либо их можно установить из репозитория Sisyphus (Если потребует rpmlib(PayloadIsLzma) то apt-get install 'rpm>=4.0.4-alt93'):


<pre>apt-get install postgresql-8.3eter</pre>
<pre>apt-get install postgresql-8.3eter postgresql-8.3eter-contrib postgresql-8.3eter-server</pre>


Пробуем запустить:
Пробуем запустить:

Версия от 22:05, 11 марта 2009


Установка сервера 1С Предприятие 8.1 на ALT Linux

Состав сервера 1С

  • 1C_Enterprise-common… — Общие компоненты 1С Предприятие 8.1 для Linux
  • 1C_Enterprise-server… — Сервер 1С Предприятие 8.1 для Linux
  • 1C_Enterprise-ws… — Компоненты Web-сервисов 1С Предприятие 8.1 для Linux

Так же для каждой из трёх компонент присутствуют пакеты -nls с поддержкой национальных символов. В этой статье описывается установка общей и серверной компонент.

Подготовка к установке

Сначала проверьте настройку интернационализации системы:

cat /etc/sysconfig/i18n
 LANG=ru_RU.UTF-8
 SUPPORTED=ru_RU

Дело в том, что если сервер 1С не найдёт тут кодировки ru_RU.UTF-8(например, если установка происходит в OVZ-контейнере), то он будет настойчиво пытаться подключиться к нашей базе с локалью en_EN.UTF-8. А в chroot postgresql копируется только та локаль, которая задана при создании базы. Таким образом 1С-сервер не сможет подключиться к базе. Итак, данное руководство предполагает, что вы используете локаль ru_RU.UTF-8 в качестве общесистемной. Если вы хотите использовать для доступа к БД имя хоста, а не IP, то хорошо бы, настроить обратную DNS-зону. Это избавит вас от некоторых хлопот и возможной путаницы(подробности ниже)

Устанавливаем Postgresql

Стандартный Postgresql не будет работать с 1С, а rpm-пакеты с Postgres, которые идут в дистрибутиве 1C, предназначены только для установки на fedora-совместимых дистрибутивах. Поэтому для ALT Linux была собрана специальная версия этой СУБД — postgresql8.2.1C. Пакеты находятся здесь, либо их можно установить из репозитория Sisyphus (Если потребует rpmlib(PayloadIsLzma) то apt-get install 'rpm>=4.0.4-alt93'):

apt-get install postgresql-8.3eter postgresql-8.3eter-contrib postgresql-8.3eter-server

Пробуем запустить:

service postgresql start

Для нормально работы с базой и что бы не возникала проблема кодировок проверяйте locale. Если нет устанавливайте

localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8 # для российских баз
localedef -c -i uk_UA -f UTF-8 uk_UA.UTF-8 # для украинских баз

в /etc/chroot.d/postgresql.conf строку locale_dir=`ls -d /usr/lib/locale/$locale* | /usr/bin/tr ' ' «\n» | /bin/awk -F '/' '{print$5}'` заменить на (для российских конфигураций) locale_dir=`ls -d /usr/lib/locale/{ru_RU,en_US}* | /usr/bin/tr ' ' «\n» | /bin/awk -F '/' '{print$5}'` заменить на (для украинских конфигураций) locale_dir=`ls -d /usr/lib/locale/{ru_RU,en_US,uk_UA,ru_UA}* | /usr/bin/tr ' ' «\n» | /bin/awk -F '/' '{print$5}'` а потом

update_chrooted conf && service postgresql restart

Во время первого запуска создаются файлы конфигурации postgres и chroot-окружение. По-этому открываем файл /var/lib/pgsql/data/postgresql.conf и проверяем, что бы postgres слушал нужный интерфейс, имел соответствующую локаль и настройки, описанные в документации 1С-сервера. Вот пример работающего файла конфигурации(закомментированные строки пропущены).

Пожалуйста не копируйте себе бездумно эту конфигурацию, в комментариях дефолтного postgresql.conf находится много полезной информации

:

listen_addresses = '*'
max_connections = 100
shared_buffers = 16MB
max_fsm_pages = 204800
effective_cache_size = 128MB
stats_row_level = on
autovacuum = on
datestyle = 'iso, dmy'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
max_locks_per_transaction = 150
default_with_oids = on

Учтите, что эта настройка далека от идеальной и производительной. Данное руководство не ставит перед собой такой задачи, по-этому настроить Postgresql под свои нужды вам надо будет самостоятельно (вот, к примеру, руководство по настройке производительности) Так же в файле /var/lib/pgsql/data/pg_hba.conf вам надо будет определить политику доступа пользователей к СУБД (для этого читайте документацию postgresql), а по-умолчанию настройка выглядит так:

host    all         all         0.0.0.0/0             md5

Что означает разрешение подключаться с любых адресов к любым базам с авторизацией по паролю. Для первоначальной настройки достаточно сменить пароль суперпользователю СУБД:

[root@localhost ~]# psql -h localhost -U postgres template1
template1=# ALTER USER postgres WITH PASSWORD 'secret';

На этом настройка Postgresql завершена.

Установка и запуск защиты HASP

Для установки ключей нужно скачать их с http://www.aladdin.com/support/hasp/enduser.aspx HASP HL Device Driver Installation. Supports RedHat и HASP HL Linux License Manager установить далее, не забываем:

mount -t usbfs none /proc/bus

проверяем

service aksusbd status

Если статус «DONE» значит, ключи стали и сервер должен работать.

Установка и запуск сервера 1С

Тут всё достаточно просто:

rpm -Uvh 1C_Enterprise-server-nls-8.1.8-76.i386.rpm 1C_Enterprise-server-8.1.8-76.i386.rpm 1C_Enterprise-common-nls-8.1.8-76.i386.rpm 1C_Enterprise-common-8.1.8-76.i386.rpm

Запуск:

service srv1cv81 start

К сожалению 1С-сервер практически не пишет никаких отчётов, по-этому если что-то не работает понять что именно не так бывает сложно.

Порты, которые слушает 1с:

tcp        0      0 *:1540                      *:*                         LISTEN      18704/ragent
tcp        0      0 *:1541                      *:*                         LISTEN      18711/rmngr
tcp        0      0 *:1560                      *:*                         LISTEN      18711/rmngr
tcp        0      0 *:1561                      *:*                         LISTEN      18704/ragent
tcp        0      0 *:1562                      *:*                         LISTEN      18720/rphost
tcp        0      0 *:1563                      *:*                         LISTEN      18720/rphost

Создание сервера предприятия

Из Windows это можно сделать так:

Запустите оснастку управления серверами предприятия из меню Пуск — 1С Предприятие 8.1 — Серверы 1С Предприятия.

Создайте центральный сервер. Для этого войдите в контекстное меню и выберите пункт "New"

Введите имя и описание линукс-сервера. Теперь после закрытия окна нажмите на плюсик рядом с новым сервером. Могут проявиться типичные ошибки. Если сообщений об ошибках не было выдано, то создастся кластер. В новой версии 1С можно создавать БД прямо из оснастки (не прибегая к помощи консоли PostgreSQL, хотя такая возможность сохранилась). Создание и подключение информационной базы 1С:Предприятия 8.1 Введите настройки соединения и не забудьте отметить флажок «Создать базу данных» в случае её отсутствия. После нажатия ОК оснастка надолго зависнет (база создаётся очень неспешно). Теперь можно подключаться к серверу из режима Предприятия.

Как это делать из 1С, запущенной через WINE@Etersoft, читайте на сайте компании Etersoft

Часто возникающие проблемы

В файле /home/usr1cv81/.1cv81/1C/1Cv81/reg_1541/1CV8Reg.lst можно найти конфигурацию кластера 1С. Например у меня он выглядит так:

{0,
{332873ae-75ed-11dc-9f9f-00fc390012a1,"Локальный кластер",1541,"banzay.aspirinka.net",0,0},
{1,
{0dd04482-9367-11dc-748b-00fc390012a1,"1c","","PostgreSQL","1c.aspirinka.net","1c","postgres","zPurhs5czp8pJJ9Z6craZ2vrNnl9u7bkfzlIoDTEfW8=","CrSQLDB=Y;DB=1c;DBMS=PostgreSQL;DBSrvr=1c.aspirinka.net;DBUID=postgres;Descr=;Locale=ru_RU;Ref=1c;SLev=0;SQLYOffs=0;Srvr=banzay.aspirinka.net",0,
{0,00010101000000,00010101000000,"","",""},0}
},
{1,
{36713c62-75ed-11dc-9f9f-00fc390012a1,"banzay.aspirinka.net",1,1,
{9.827956989247312e-2,9.548387096774194e-2,0,0,2.795698924731183e-3,93,1.150875992227514e-3,0},1000}
},
{0},
{1,
{366b0522-75ed-11dc-9f9f-00fc390012a1,"Центральный сервер",1540,"banzay.aspirinka.net",1,
{1,
{1560,1591}
},"","gjZ6h/5H95FpOCqDeLmg2Q=="}
}
}
  • 1С не сможет подключиться к базе Postgresql, если настройки локали не совпадают. Так что приведите параметр Locale= в соответствие с настройками вашей базы.
  • Так же, 1С берёт значение хоста откуда угодно, только не из настроек, введённых пользователем :) При необходимости укажите правильные имена хостов для «Центральный сервер» и «Локальный кластер» вручную. Хотя, если у вас правильно настроена обратная зона DNS, то ручных исправлений не потребуется.

Установка 1С-сервера в OVZ-контейнер

Для начала создадим ovz-инстанцию.

Для этого:

Можно воспользоваться готовым spt-профилем из пакета spt-profiles-ovz-1C
Установка профиля производится так
apt-get install spt-profiles-ovz-1C
Для работы с spt вы должны иметь установленные и настроенные hasher и spt. Читайте соответсвующие руководства.
Либо вы можете взять готовый ovz-шаблон отсюда.

Далее, размещаем шаблон в /var/lib/vz/template/cache/

cp altlinux-1c-server.tar.gz /var/lib/vz/template/cache/

и создаём ovz-инстанцию:

vzctl create 101 --ostemplate altlinux-1c-server --config myserver

Здесь 101 — это номер инстанции (у вас он может быть другой) и myserver -конфигурация сервера, вам так же нужно произвести её самостоятельно, для чего читайте руководство по OpenVZ.

Запускаем инстанцию:

vzctl start 101

Копируем внутрь rpm-пакеты с 1С-Сервером:

cp 1C_Enterprise-* /var/lib/vz/root/101/root/

После этого можно зайти в инстанцию и установить пакеты с 1с-сервером:

vzctl enter 101
entered into VE 101
cd /root
apt-get install 1C_Enterprise-common-8.1.8-76.i386.rpm 1C_Enterprise-server-nls-8.1.8-76.i386.rpm 1C_Enterprise-common-nls-8.1.8-76.i386.rpm  1C_Enterprise-server-8.1.8-76.i386.rpm