1C 8.1 не создается база в postgresql

WINE@Etersoft, "1С","Ананас" и прочие проекты

Модератор: Модераторы разделов

LVS
Сообщения: 264
Статус: All Hail Random
ОС: Kubuntu, CentOS, Slackware

1C 8.1 не создается база в postgresql

Сообщение LVS »

Пакеты 1c, postgresql от etersoft поставил. Отредактировал init скрипты для них, чтобы они нормально работали, юзеров и группы и chmod'ы нужные сделал. initdb пустую базу сделала, postgres.conf редактировал, локали en_US.UTF8 en_US.ISO8859-1 стоят, в консоли psql делал
CREATE TRUSTED LANGUAGE plpgsql HANDLER language_handler_in;
REVOKE ALL ON LANGUAGE plpgsql FROM public;

Из остнаски сервер создался, а вот при попытки создания базы ошибка (через пару секунд после нажатия OK):
"Ошибка создания информационной базы:
Ошибка информационной базы
Ошибка установки или изменения национальных настроек информационной базы
Порядок сортировки не поддерживается базой данных"
Записи о базе есть, при попытки подключится к ней через 1С-клиент выдается ошибка о несоответствии региональных настроек, воспользуйтесь конструктором (он тоже ругается).

Логи:

Код:

cat postgresql-2008-07-22_120750.log LOG: система была отключена: 2008-07-22 12:07:49 YEKST LOG: контрольная точка: 0/61510C LOG: redo-запись: 0/61510C; undo-запись: 0/0; отключение: TRUE LOG: next transaction ID: 0/596; next OID: 10830 LOG: next MultiXactId: 1; next MultiXactOffset: 0 LOG: система готова к использованию NOTICE: using pg_pltemplate information instead of CREATE LANGUAGE parameters WARNING: nonstandard use of \' in a string literal at character 97 HINT: Use '' to write quotes in strings, or use the escape string syntax (E'...'). WARNING: nonstandard use of escape in a string literal at character 1811 HINT: Use the escape string syntax for escapes, e.g., E'\r\n'. WARNING: nonstandard use of \\ in a string literal at character 17 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. QUERY: SELECT $1 || '\\000' CONTEXT: SQL statement in PL/PgSQL function "btrim" near line 10 WARNING: nonstandard use of \\ in a string literal at character 18 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. QUERY: SELECT SET_BYTE('\\000\\000\\000\\000\\000\\000\\000\\000'::bytea, 4, MOD( $1 / 16777216, 256)) CONTEXT: SQL statement in PL/PgSQL function "binrowver" near line 4 NOTICE: type "mchar" is not yet defined DETAIL: Creating a shell type definition. NOTICE: argument type mchar is only a shell NOTICE: argument type mchar is only a shell NOTICE: return type mchar is only a shell NOTICE: type "mvarchar" is not yet defined DETAIL: Creating a shell type definition. NOTICE: argument type mvarchar is only a shell NOTICE: argument type mvarchar is only a shell NOTICE: return type mvarchar is only a shell NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "config_pkey" for table "config" WARNING: nonstandard use of \\ in a string literal at character 145 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "configsave_pkey" for table "configsave" WARNING: nonstandard use of \\ in a string literal at character 149 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "params_pkey" for table "params" WARNING: nonstandard use of \\ in a string literal at character 145 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "files_pkey" for table "files" WARNING: nonstandard use of \\ in a string literal at character 144 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. NOTICE: using pg_pltemplate information instead of CREATE LANGUAGE parameters LOG: получен запрос о быстром останове LOG: отключение в процессе LOG: система отключена LOG: остановка логгера cat postgresql-2008-07-22_121157.log LOG: database system was shut down at 2008-07-22 12:11:56 YEKST LOG: checkpoint record is at 0/7B4010 LOG: redo record is at 0/7B4010; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 0/653; next OID: 16737 LOG: next MultiXactId: 1; next MultiXactOffset: 0 LOG: database system is ready NOTICE: using pg_pltemplate information instead of CREATE LANGUAGE parameters WARNING: nonstandard use of \' in a string literal at character 97 HINT: Use '' to write quotes in strings, or use the escape string syntax (E'...'). WARNING: nonstandard use of escape in a string literal at character 1811 HINT: Use the escape string syntax for escapes, e.g., E'\r\n'. WARNING: nonstandard use of \\ in a string literal at character 17 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. QUERY: SELECT $1 || '\\000' CONTEXT: SQL statement in PL/PgSQL function "btrim" near line 10 WARNING: nonstandard use of \\ in a string literal at character 18 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. QUERY: SELECT SET_BYTE('\\000\\000\\000\\000\\000\\000\\000\\000'::bytea, 4, MOD( $1 / 16777216, 256)) CONTEXT: SQL statement in PL/PgSQL function "binrowver" near line 4 NOTICE: type "mchar" is not yet defined DETAIL: Creating a shell type definition. NOTICE: argument type mchar is only a shell NOTICE: argument type mchar is only a shell NOTICE: return type mchar is only a shell NOTICE: type "mvarchar" is not yet defined DETAIL: Creating a shell type definition. NOTICE: argument type mvarchar is only a shell NOTICE: argument type mvarchar is only a shell NOTICE: return type mvarchar is only a shell NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "config_pkey" for table "config" WARNING: nonstandard use of \\ in a string literal at character 145 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "configsave_pkey" for table "configsave" WARNING: nonstandard use of \\ in a string literal at character 149 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "params_pkey" for table "params" WARNING: nonstandard use of \\ in a string literal at character 145 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "files_pkey" for table "files" WARNING: nonstandard use of \\ in a string literal at character 144 HINT: Use the escape string syntax for backslashes, e.g., E'\\'.


Может кто помочь?
Спасибо сказали:
LVS
Сообщения: 264
Статус: All Hail Random
ОС: Kubuntu, CentOS, Slackware

Re: 1C 8.1 не создается база в postgresql

Сообщение LVS »

Подсказали добавить в конфиг строки:
escape_string_warning = off
standard_conforming_strings = on

Теперь другая ошибка:

Код:

NOTICE: using pg_pltemplate information instead of CREATE LANGUAGE parameters ERROR: syntax error at or near "SECOND" at character 203 STATEMENT: CREATE OR REPLACE FUNCTION public.datediff(varchar, timestamp, timestamp) RETURNS int4 AS ' DECLARE arg_mode alias for $1; arg_d2 alias for $2; arg_d1 alias for $3; BEGIN if arg_mode = \'SECOND\' then return date_part(\'epoch\',arg_d1) - date_part(\'epoch\',arg_d2) ; elsif arg_mode = \'MINUTE\' then return ceil((date_part(\'epoch\',arg_d1) - date_part(\'epoch\',arg_d2)) / 60); elsif arg_mode = \'HOUR\' then return ceil((date_part(\'epoch\',arg_d1) - date_part(\'epoch\',arg_d2)) /3600); elsif arg_mode = \'DAY\' then return cast(arg_d1 as date) - cast(arg_d2 as date); elsif arg_mode = \'WEEK\' then return ceil( ( cast(arg_d1 as date) - cast(arg_d2 as date) ) / 7.0); elsif arg_mode = \'MONTH\' then return 12 * (date_part(\'year\',arg_d1) - date_part(\'year\',arg_d2)) + date_part(\'month\',arg_d1) - date_part(\'month\',arg_d2); elsif arg_mode = \'QUARTER\' then return 4 * (date_part(\'year\',arg_d1) - date_part(\'year\',arg_d2)) + date_part(\'quarter\',arg_d1) - date_part(\'quarter\',arg_d2); elsif arg_mode = \'YEAR\' then return (date_part(\'year\',arg_d1) - date_part(\'year\',arg_d2)); end if; END ' LANGUAGE 'plpgsql' VOLATILE; create or replace function state_max_bytea(st bytea, inp bytea) RETURNS bytea as ' BEGIN if st is null then return inp; elseif st<inp then return inp; else return st; end if; END;' LANGUAGE plpgsql; create or replace function state_min_bytea(st bytea, inp bytea) RETURNS bytea as ' BEGIN if st is null then return inp; elseif st>inp then return inp; else return st; end if; END;' LANGUAGE plpgsql; create or replace function state_max_bool(st bool, inp bool) RETURNS bool as '\n BEGIN if st is null or not st then return inp; else return true; end if; END;' LANGUAGE plpgsql; create or replace function state_min_bool(st bool, inp bool) RETURNS bool as ' BEGIN if st is null or st then return inp; else return false; end if; END;' LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION btrim(bdata bytea, blen int) RETURNS bytea AS $BODY$ DECLARE ln int; res bytea; BEGIN ln := length(bdata); if ln < blen then res := bdata; for i in ln .. blen - 1 loop res := res || '\\000'; end loop; return res; elsif ln > blen then return substring(bdata from 1 for blen); else return bdata; end if; END;$BODY$ LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION BINROWVER(P1 INT4) RETURNS BYTEA AS $BODY$ DECLARE bytearea BYTEA; BEGIN bytearea := SET_BYTE('\\000\\000\\000\\000\\000\\000\\000\\000'::bytea, 4, MOD(P1 / 16777216, 256)); bytearea := SET_BYTE(bytearea, 5, MOD(P1 / 65536, 256)); bytearea := SET_BYTE(bytearea, 6, MOD(P1 / 256, 256)); bytearea := SET_BYTE(bytearea, 7, MOD(P1, 256)); RETURN bytearea; END;$BODY$ LANGUAGE 'plpgsql'; WARNING: there is no transaction in progress
Спасибо сказали:
Ay49Mihas
Сообщения: 54
ОС: OpenSuSE 10.3

Re: 1C 8.1 не создается база в postgresql

Сообщение Ay49Mihas »

LVS писал(а):
23.07.2008 14:22
Из остнаски сервер создался, а вот при попытки создания базы ошибка (через пару секунд после нажатия OK):
"Ошибка создания информационной базы:
Ошибка информационной базы
Ошибка установки или изменения национальных настроек информационной базы
Порядок сортировки не поддерживается базой данных"
Записи о базе есть, при попытки подключится к ней через 1С-клиент выдается ошибка о несоответствии региональных настроек, воспользуйтесь конструктором (он тоже ругается).


initdb с --encoding=UTF8 делал или нет?
Спасибо сказали:
LVS
Сообщения: 264
Статус: All Hail Random
ОС: Kubuntu, CentOS, Slackware

Re: 1C 8.1 не создается база в postgresql

Сообщение LVS »

Так не делал, но база создавалась так
LANG=ru_RU.utf8 /etc/init.d/postgresql start

При этом в postgres.conf:
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'

Сейчас попробую.... Все то же самое.
Спасибо сказали:
Lunnyi
Сообщения: 25

Re: 1C 8.1 не создается база в postgresql

Сообщение Lunnyi »

LVS писал(а):
24.07.2008 12:10
Так не делал, но база создавалась так
LANG=ru_RU.utf8 /etc/init.d/postgresql start

При этом в postgres.conf:
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'

Сейчас попробую.... Все то же самое.

релиз 8.1.11.67? Тоже сейчас этим мучаюсь...
Спасибо сказали:
LVS
Сообщения: 264
Статус: All Hail Random
ОС: Kubuntu, CentOS, Slackware

Re: 1C 8.1 не создается база в postgresql

Сообщение LVS »

Да. Этот релиз.
Только что все заработало. Решение как всегда тривиальное: поставил другую версию postgresql, а именно 8.1.5-17.1C.
Уже подцепил тестовую базу, работает во много раз быстрее. До этого база лежала на samba сервере.

Кратко что нужно для установки 1C на slackware 12:
1. Пакеты 1С сервера конвертировать утилитой rpm2tgz
2. Установить их с помощью pkgtool
3. То же самое для пакетов postgresql (просто, contrib, pl, libs, server)
4. Отредактировать /etc/init.d/postgresql:
убрать . /etc/sysconfig/network
изменить строки, начинающиеся на $SU -l postgres -c " ... 'var' ..." на $SU postgres -c " ... \"var\" ... "
5. Отредактировать /etc/init.d/functions: runuser переделать на su
6. Права доступа:
groupadd postgres
useradd -g postgres postgres
chown -R postgres.postgres /var/lib/pgsql
groupadd usr1cv81
useradd -g usr1cv81 usr1cv81
chown -R usr1cv81.usr1cv81 /opt/1C
7. Отредактировать /usr/share/pgsql/postgresql.conf.sample
default_with_oids = on
stats_row_level = off
8. Скачать и установить PAM
http://ftp.kernel.org/pub/linux/libs/pam/l...M-1.0.1.tar.bz2
configure --prefix=/usr
make
make check
будут ошибки нужно наличие двух файлов:
/etc/pam.d/postgresql
#%PAM-1.0
auth include system-auth
account include system-auth

/etc/pam.d/other
#%PAM-1.0
auth required pam_deny.so
account required pam_deny.so
password required pam_deny.so
session required pam_deny.so

Опять make check, если все нормально make install
11. Запуск postgresql и создание базы:
LANG=ru_RU.utf8 /etc/init.d/postgresql start
Initializing database: [ OK ]
Starting postgresql service: [ OK ]
12. Меняем пароль
psql -h localhost postgres postgres
ALTER USER postgres PASSWORD 'your_new_password';
13. Запуск 1С:
LANG=ru_RU.utf8 /etc/init.d/srv1cv81 start

С локалями еще мутил:
#locale -a | grep en_US
en_US
en_US.ISO-8859-1
en_US.ISO8859-1
en_US.ISO88591
en_US.iso-8859-1
en_US.iso8859-1
en_US.iso88591
en_US.iso885915
en_US.utf8

Хрен знает как правильно пишется.

Вроде все.
Спасибо сказали:
Lunnyi
Сообщения: 25

Re: 1C 8.1 не создается база в postgresql

Сообщение Lunnyi »

По пункту 13 вопрос. Запускаю постгре без указания LANG. Потому как локаль и так ru_RU.utf8. Скорее всего в большинстве современных дистрибутивах такая же локаль. Так что тайного смысла не вижу. Если он есть - то подскажите.
LVS
А можешь скинуть дамп(схему) пустой базы? Попробую создать не через оснастку,a sql запросом. Не хочу использовать постгре 8.1 - по сравнения даже с 8.2 глючнее и тормознутее (со слов знакомых, кто мучает эту СУБД не только для 1С).
Спасибо сказали:
LVS
Сообщения: 264
Статус: All Hail Random
ОС: Kubuntu, CentOS, Slackware

Re: 1C 8.1 не создается база в postgresql

Сообщение LVS »

Lunnyi писал(а):
25.07.2008 09:38
По пункту 13 вопрос. Запускаю постгре без указания LANG. Потому как локаль и так ru_RU.utf8. Скорее всего в большинстве современных дистрибутивах такая же локаль. Так что тайного смысла не вижу. Если он есть - то подскажите.

У меня локаль en_US. Мне так удобнее. А этим прогам говорю чтоб на русском работали, так как база русскоязычная. Возможно ragent'у и не надо указывать локаль.

Lunnyi писал(а):
25.07.2008 09:38
LVS
А можешь скинуть дамп(схему) пустой базы? Попробую создать не через оснастку,a sql запросом. Не хочу использовать постгре 8.1 - по сравнения даже с 8.2 глючнее и тормознутее (со слов знакомых, кто мучает эту СУБД не только для 1С).

Могу. Только это наврятли поможет, так как по всей видимости не корректно обрабатывается эскейпинг символов.
Скинь мыло в личку, отошлю.
Спасибо сказали:
zlob
Сообщения: 8

Re: 1C 8.1 не создается база в postgresql

Сообщение zlob »

LVS писал(а):
23.07.2008 17:01
Теперь другая ошибка:
CODE

NOTICE: using pg_pltemplate information instead of CREATE LANGUAGE parameters
ERROR: syntax error at or near "SECOND" at character 203
STATEMENT: CREATE OR REPLACE FUNCTION public.datediff(varchar, timestamp, timestamp)
RETURNS int4 AS


Мне помогло
standard_conforming_strings = off
Спасибо сказали:
LVS
Сообщения: 264
Статус: All Hail Random
ОС: Kubuntu, CentOS, Slackware

Re: 1C 8.1 не создается база в postgresql

Сообщение LVS »

Мне такое не помогало.
На фтп етерсофта выложены бинарники новой версии. Может с ними уже нормально работает.
Спасибо сказали:
zlob
Сообщения: 8

Re: 1C 8.1 не создается база в postgresql

Сообщение zlob »

LVS писал(а):
08.08.2008 12:44
Мне такое не помогало.
На фтп етерсофта выложены бинарники новой версии. Может с ними уже нормально работает.


Я правда не с етерсофта брал а отсюда
http://v8.1c.ru/overview/postgresql_patche....4-6.1C.src.rpm
и пересобирал rpm ( у меня slackware 12)
У меня все заработало. Счас пишу инструкцию. Если интересно пиши zlob@mail.ru.
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: 1C 8.1 не создается база в postgresql

Сообщение bsavelev »

у этерсофта сборки прежде всего для сельты.
отличий по исходникам с 1с практически нет.
отличия по дефолтным конфигам, так что надо там искать
Спасибо сказали:
zlob
Сообщения: 8

Re: 1C 8.1 не создается база в postgresql

Сообщение zlob »

Установка сервера 1C Предприятие 8.1 релиз 8.1.11.67 и PostgreSQL 8.2 на Slackware 12
  • Устанавливаем Slackware 12 (Полная уcтановка пакетов A,AP,D,K,L,N,TCL).
  • Имя хоста должно быть разрешимо в вашей сети. Для этого нужно настроить DNS или прописать в hosts имя хоста, как на сервере, так и на рабочих станциях. Управление сервером 1С Предприятие 8.1 из консоли по ip-адресу невозможно.

Cервер 1C Предприятие 8.1
  • Устанавливаем с диска ИТС следующие пакеты:
    1C_Enterprise-common-8.1.11-67.i386.rpm
    1C_Enterprise-common-nls-8.1.11-67.i386.rpm
    1C_Enterprise-crs-8.1.11-67.i386.rpm
    1C_Enterprise-crs-nls-8.1.11-67.i386.rpm
    1C_Enterprise-server-8.1.11-67.i386.rpm
    1C_Enterprise-server-nls-8.1.11-67.i386.rpm

    # rpm --nodeps -Uvh *
    Preparing... ########################################### [100%]
    1:1C_Enterprise-server-nl########################################### [ 17%]
    2:1C_Enterprise-common ########################################### [ 33%]
    3:1C_Enterprise-common-nl########################################### [ 50%]
    4:1C_Enterprise-crs ########################################### [ 67%]
    5:1C_Enterprise-crs-nls ########################################### [ 83%]
    6:1C_Enterprise-server ########################################### [100%]
  • Настраиваем домашний каталог у пользователя usr1cv81. В этом каталоге храняться метаданные и логи сервера 1С Предприятие 8.1.
    # mkdir -p /var/usr1cv81
    # chown -R usr1cv81.grp1cv81 /var/usr1cv81
    # usermod -d /var/usr1cv81 usr1cv81
  • Исправляем стартовый скрипт /etc/init.d/srv1cv81

    Код:

    --- srv1cv81.orig 2008-08-10 12:52:01.000000000 +0500 +++ srv1cv81 2008-08-10 12:53:55.000000000 +0500 @@ -171,7 +171,7 @@ if [ -z "$user" ]; then $* else - $SU -s /bin/bash - $user -c "$*" + $SU - $user -c "$*" fi [ "$?" -eq 0 ] && successbuiltin $"$base startup" || failurebuiltin $"$base startup" }
  • Исправляем /etc/init.d/functions

    Код:

    --- functions.orig 2008-08-10 12:58:46.000000000 +0500 +++ functions 2008-08-10 12:58:57.000000000 +0500 @@ -223,7 +223,7 @@ if [ -z "$user" ]; then $nice /bin/bash -c "$corelimit >/dev/null 2>&1 ; $*" else - $nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $*" + $nice su - $user -c "$corelimit >/dev/null 2>&1 ; $*" fi [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup" }
  • Запускаем.
    # /etc/init.d/srv1cv81 start
    Starting 1C:Enterprise 8.1 server: [ OK ]

PostgreSQL 8.2
  • Скачиваем http://v8.1c.ru/overview/postgresql_patche....4-6.1C.src.rpm
  • Скачиваем ftp://ftp.software.ibm.com/software/globa...1/icu-3.4.1.tgz
  • Скачиваем ftp://ftp.kernel.org/pub/linux/libs/pam/l...M-1.0.1.tar.bz2
  • Устанавливаем Linux-PAM.
    # ./configure --prefix=/usr
    # make
    # make install
  • Устанавливаем ICU.
    # ./runConfigureICU Linux
    # make
    # make install
  • Устанавливаем исходники.
    # rpm -Uvh postgresql-8.2.4-6.1C.src.rpm
  • Создаем файл /etc/pam.d/postgresql

    Код:

    #%PAM-1.0 auth include system-auth account include system-auth
  • Если будем сразу собирать, то получим такое сообщение:
    This platform is not thread-safe. Check the file 'config.log'for the
    exact reason.

    You can use the configure option --enable-thread-safety-force to force
    threads to be enabled. But you must then run the program in
    src/test/thread and add locking function calls to your applications to
    guarantee thread safety.
  • Исправляем /usr/src/rpm/SPECS/postgresql-8.2.1C.spec

    Код:

    --- postgresql-8.2.1C.spec.orig 2008-08-10 13:45:55.000000000 +0500 +++ postgresql-8.2.1C.spec 2008-08-10 13:45:58.000000000 +0500 @@ -81,7 +81,7 @@ %{!?nls:%define nls 1} %{!?xml:%define xml 1} %{!?pam:%define pam 1} -%{!?pgfts:%define pgfts 1} +%{!?pgfts:%define pgfts 0} %{!?runselftest:%define runselftest 0} Summary: PostgreSQL client programs and libraries
  • Собираем.
    # rpmbuild --nodeps -ba /usr/src/rpm/SPECS/postgresql-8.2.1C.spec
  • Создаем пользователя.
    # groupadd postgres
    # useradd -g postgres postgres
  • Устанавливаем получившиеся пакеты.
    # rpm --nodeps -Uvh /usr/src/rpm/RPMS/i386/postgresql-8.2.4-6.1C.i386.rpm \
    /usr/src/rpm/RPMS/i386/postgresql-libs-8.2.4-6.1C.i386.rpm \
    /usr/src/rpm/RPMS/i386/postgresql-server-8.2.4-6.1C.i386.rpm \
    /usr/src/rpm/RPMS/i386/postgresql-contrib-8.2.4-6.1C.i386.rpm \
    /usr/src/rpm/RPMS/i386/postgresql-plperl-8.2.4-6.1C.i386.rpm \
    /usr/src/rpm/RPMS/i386/postgresql-plpython-8.2.4-6.1C.i386.rpm \
    /usr/src/rpm/RPMS/i386/postgresql-pltcl-8.2.4-6.1C.i386.rpm
  • Исправляем /etc/rc.d/init.d/postgresql

    Код:

    --- postgresql.orig 2008-08-10 14:42:38.000000000 +0500 +++ postgresql 2008-08-10 14:51:37.000000000 +0500 @@ -81,7 +81,9 @@ TYPESET=`typeset -f|grep "declare"` # Get config. -. /etc/sysconfig/network +if [ -r /etc/sysconfig/network ]; then + . /etc/sysconfig/network +fi # Find the name of the script NAME=`basename $0` @@ -180,7 +182,7 @@ fi echo -n "$PSQL_START" - $SU -l postgres -c "$PGENGINE/postmaster -p '$PGPORT' -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2>&1 < /dev/null + $SU postgres -c "$PGENGINE/postmaster -p '$PGPORT' -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2>&1 < /dev/null sleep 2 pid=`pidof -s "$PGENGINE/postmaster"` if [ $pid ] && [ -f "$PGDATA/postmaster.pid" ] @@ -198,7 +200,7 @@ stop(){ echo -n $"Stopping ${NAME} service: " - $SU -l postgres -c "$PGENGINE/pg_ctl stop -D '$PGDATA' -s -m fast" > /dev/null 2>&1 < /dev/null + $SU postgres -c "$PGENGINE/pg_ctl stop -D '$PGDATA' -s -m fast" > /dev/null 2>&1 < /dev/null ret=$? if [ $ret -eq 0 ] then @@ -233,7 +235,7 @@ # Clean up SELinux tagging for PGDATA [ -x /sbin/restorecon ] && /sbin/restorecon "$PGDATA" # Initialize the database - $SU -l postgres -c "$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident sameuser'" >> "$PGLOG" 2>&1 < /dev/null + $SU postgres -c "$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident sameuser'" >> "$PGLOG" 2>&1 < /dev/null # Create directory for postmaster log mkdir "$PGDATA/pg_log" chown postgres:postgres "$PGDATA/pg_log" @@ -253,7 +255,7 @@ } reload(){ - $SU -l postgres -c "$PGENGINE/pg_ctl reload -D '$PGDATA' -s" > /dev/null 2>&1 < /dev/null + $SU postgres -c "$PGENGINE/pg_ctl reload -D '$PGDATA' -s" > /dev/null 2>&1 < /dev/null } # This script is slightly unusual in that the name of the daemon (postmaster)
  • Создаем файл /etc/sysctl.conf

    Код:

    kernel.shmmax = 134217728 kernel.shmall = 2097152
  • Применяем эти параметры.
    # /sbin/sysctl -e -p /etc/sysctl.conf
  • Инициализируем базу данных.
    # LANG=ru_RU.UTF-8 LC_COLLATE=ru_RU.UTF-8 /etc/init.d/postgresql initdb
    Initializing database: [ OK ]
  • Временно модифицируем /var/lib/pgsql/data/pg_hba.conf

    Код:

    --- pg_hba.conf.orig 2008-08-10 15:01:35.046006675 +0500 +++ pg_hba.conf 2008-08-10 15:02:27.050964847 +0500 @@ -67,4 +67,5 @@ #host all all 127.0.0.1/32 ident sameuser # IPv6 local connections: #host all all ::1/128 ident sameuser +host all all 127.0.0.1/32 trust host all all 0.0.0.0/0 md5
  • Запускаем PostgreSQL.
    # /etc/init.d/postgresql start
  • Устанавливаем пароль.
    # psql -h localhost postgres postgres
    ALTER USER postgres PASSWORD 'your_new_password';
  • Возвращаем обратно /var/lib/pgsql/data/pg_hba.conf
  • Перезапускаем PostgreSQL.
    # /etc/init.d/postgresql restart
    Stopping postgresql service: [ OK ]
    Starting postgresql service: [ OK ]


И наконец...

Ну и в конце создаем симлинки в /etc/rc[0-6].d чтоб запускалось/останавливалось автоматом ( Да, да у Slackware есть поддержка SysV)

Дополнительно можно подправить /var/lib/pgsql/data/postgresql.conf

escape_string_warning = off
effective_cache_size = 1024MB (Как сказано у 1С, не менее половины оперативной памяти)


Ну вот и все. Можно создавать кластер и базы в консоли.
Я все это проделал, сейчас тестирую на рабочей базе.
Спасибо сказали:
zlob
Сообщения: 8

Re: 1C 8.1 не создается база в postgresql

Сообщение zlob »

zlob писал(а):
12.08.2008 19:23
Ну вот и все. Можно создавать кластер и базы в консоли.
Я все это проделал, сейчас тестирую на рабочей базе.


На следующий же день. В логах все хорошо, только НДФЛ считается неправильно. Выгрузил в MSSQL - все расчитывает правильно. Вот уроды.
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: 1C 8.1 не создается база в postgresql

Сообщение bsavelev »

это 100% бага.
надо в сапорт писать
Спасибо сказали:
zlob
Сообщения: 8

Re: 1C 8.1 не создается база в postgresql

Сообщение zlob »

bsavelev писал(а):
14.08.2008 10:54
это 100% бага.
надо в сапорт писать


Вот начиления зп за июль

Работник Начисление Результат
Работник1 Оклад по дням 6000
Работник1 Премия 3955
Работник2 Оклад по дням 15000
Работник2 Премия 14917
Работник3 Оклад по дням 7000
Работник3 Премия 4744

Вот так выглядит расчет НДФЛ на Linux Slacware 12 + PostgreSQL 8.2

Работник Налог
Работник1 1242
Работник1 52
Работник2 78
Работник2 3811
Работник2 78
Работник3 1527

Вот так выглядит расчет НДФЛ на Windows 2003 + MSSQL 2005

Работник Налог
Работник1 1294
Работник1 -52
Работник2 78
Работник2 3889
Работник2 -78
Работник3 1527
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: 1C 8.1 не создается база в postgresql

Сообщение bsavelev »

тут конечно закралась ошибка.
очень хотелось бы чтобы 1с что-нить сказала по этому поводу
Спасибо сказали:
zlob
Сообщения: 8

Re: 1C 8.1 не создается база в postgresql

Сообщение zlob »

bsavelev писал(а):
16.08.2008 09:29
тут конечно закралась ошибка.
очень хотелось бы чтобы 1с что-нить сказала по этому поводу


Вот найдет наш 1с-ник время, посмотрим в какой функции/запросе расхождение возникает, тогда отпишу багу в 1с.
Спасибо сказали: