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

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Удалить старую версию postgres с модификациями для 1С)
(Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С)
 
(не показано 16 промежуточных версий этого же участника)
Строка 48: Строка 48:
 
===Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С===
 
===Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С===
  
  apt-get install postgresql15-1C postgresql15-1C-server
+
  apt-get install postgresql15-1C postgresql15-1C-server postgresql15-1C-contrib postgresql15-1C-llvmjit postgresql15-1C-perl postgresql15-1C-python postgresql15-1C-tcl postgresql15-1C-pg_repack postgresql15-1C-docs
 +
 
 +
 
 +
/etc/init.d/postgresql initdb
  
 
  cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.backup
 
  cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.backup
Строка 73: Строка 76:
 
<pre>
 
<pre>
 
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf  
 
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf  
listen_addresses = '*' # what IP address(es) to listen on;
+
listen_addresses = '*'
 
max_connections = 100 # (change requires restart)
 
max_connections = 100 # (change requires restart)
shared_buffers = 128MB # min 128kB
+
shared_buffers = 4GB # min 128kB
 
dynamic_shared_memory_type = posix # the default is usually the first option
 
dynamic_shared_memory_type = posix # the default is usually the first option
max_wal_size = 1GB
+
max_wal_size = 2GB
min_wal_size = 80MB
+
min_wal_size = 1GB
 
log_destination = 'stderr' # Valid values are combinations of
 
log_destination = 'stderr' # Valid values are combinations of
 
logging_collector = on # Enable capturing of stderr, jsonlog,
 
logging_collector = on # Enable capturing of stderr, jsonlog,
Строка 87: Строка 90:
 
log_min_messages = warning # values in order of decreasing detail:
 
log_min_messages = warning # values in order of decreasing detail:
 
log_checkpoints = off
 
log_checkpoints = off
log_connections = off
+
log_timezone = 'Europe/Moscow'
log_disconnections = off
+
datestyle = 'iso, dmy'
log_timezone = UTC
+
timezone = 'Europe/Moscow'
datestyle = 'iso, mdy'
+
lc_messages = 'ru_RU.UTF-8' # locale for system error message
timezone = UTC
+
lc_monetary = 'ru_RU.UTF-8' # locale for monetary formatting
default_text_search_config = 'pg_catalog.english'
+
lc_numeric = 'ru_RU.UTF-8' # locale for number formatting
 +
lc_time = 'ru_RU.UTF-8' # locale for time formatting
 +
default_text_search_config = 'pg_catalog.russian'
 
EOF
 
EOF
 
</pre>
 
</pre>
Строка 101: Строка 106:
 
  psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template0';";
 
  psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template0';";
 
  psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template1';";
 
  psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template1';";
 +
 +
NEW_PASS='ваш новый пароль здесь'
 +
psql -U postgres -c "ALTER USER postgres WITH PASSWORD '${NEW_PASS}'";
  
 
===Залить дампы обратно===
 
===Залить дампы обратно===
 +
 +
cd
 +
 +
====Создать пустые базы====
 +
 +
dbname='cp'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='dcp'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='cp_demo'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='libr'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='passport'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
====Залить в них дампы====
 +
 +
psql -U postgres cp -f dump_cp.sql
 +
 +
psql -U postgres dcp -f dump_dcp.sql
 +
 +
psql -U postgres cp_demo -f dump_cp_demo.sql
 +
 +
psql -U postgres libr -f dump_libr.sql
 +
 +
psql -U postgres passport -f dump_passport.sql
  
 
=Установка продуктов 1C на Ubuntu14.04=
 
=Установка продуктов 1C на Ubuntu14.04=

Текущая версия на 14:10, 8 июня 2024

На ОС Альт платформы p9 и p10

Обновление ос с платформы p9 на p10

Снять дампы баз данных из postgres

su - root
pg_dump -U postgres cp > dump_cp.sql
pg_dump -U postgres cp_demo > dump_cp_demo.sql
pg_dump -U postgres dcp > dump_dcp.sql
pg_dump -U postgres libr > dump_libr.sql
pg_dump -U postgres postgres > dump_passport.sql

Обновить дистрибутив до самого свежего p9

apt-get update
apt-get dist-upgrade

Изменить источники для обновления

apt-get install apt-repo
apt-repo set p10

Обновиться до p10

apt-get update
apt-get clean
apt-get dist-upgrade -d

Первая команда удалит из кэша apt все старые пакеты, вторая скачает (но не установит) все нужные пакеты. Полученное содержимое /var/cache/apt может быть использовано для последующей массовой установки пакетов посредством rpm.

apt-get dist-upgrade
update-kernel -t std-def
reboot

Удалить старую версию postgres с модификациями для 1С

apt-get remove --purge postgresql12-1C postgresql12-1C-server
mv /var/lib/pgsql/data /var/lib/pgsql/data_old

Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С

apt-get install postgresql15-1C postgresql15-1C-server postgresql15-1C-contrib postgresql15-1C-llvmjit postgresql15-1C-perl postgresql15-1C-python postgresql15-1C-tcl postgresql15-1C-pg_repack postgresql15-1C-docs


/etc/init.d/postgresql initdb
cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.backup
cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.backup
cat << 'EOF' > /var/lib/pgsql/data/pg_hba.conf 
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0            md5

# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
EOF
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf 
listen_addresses = '*'
max_connections = 100			# (change requires restart)
shared_buffers = 4GB			# min 128kB
dynamic_shared_memory_type = posix	# the default is usually the first option
max_wal_size = 2GB
min_wal_size = 1GB
log_destination = 'stderr'		# Valid values are combinations of
logging_collector = on		# Enable capturing of stderr, jsonlog,
log_directory = 'log'			# directory where log files are written,
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
log_file_mode = 0600			# creation mode for log files,
log_rotation_size = 10MB		# Automatic rotation of logfiles will
log_min_messages = warning		# values in order of decreasing detail:
log_checkpoints = off
log_timezone = 'Europe/Moscow'
datestyle = 'iso, dmy'
timezone = 'Europe/Moscow'
lc_messages = 'ru_RU.UTF-8'			# locale for system error message
lc_monetary = 'ru_RU.UTF-8'			# locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8'			# locale for number formatting
lc_time = 'ru_RU.UTF-8'				# locale for time formatting
default_text_search_config = 'pg_catalog.russian'
EOF
systemctl enable --now postgresql
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='postgres';";
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template0';";
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template1';";
NEW_PASS='ваш новый пароль здесь'
psql -U postgres -c "ALTER USER postgres WITH PASSWORD '${NEW_PASS}'";

Залить дампы обратно

cd

Создать пустые базы

dbname='cp'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='dcp'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='cp_demo'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='libr'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='passport'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"

Залить в них дампы

psql -U postgres cp -f dump_cp.sql
psql -U postgres dcp -f dump_dcp.sql
psql -U postgres cp_demo -f dump_cp_demo.sql
psql -U postgres libr -f dump_libr.sql
psql -U postgres passport -f dump_passport.sql

Установка продуктов 1C на Ubuntu14.04

Установка сервера

Для удобства администрирования был выбран дистрибутив UbuntuMATERemix со старым добрым GNOME-ом версии 2 (ныне существующим под названием MATE)

Установка происходит в обычном режиме. Если нужно, настраивается доступ через NoMachine.

Особенность:

На Ubuntu Server 14.04 из репозитория устанавливается Apache 2.4, с которым не работает 1C при публикации WEB-клиента
Нужно снизить версию Apache до 2.2, чтобы получилось опубликовать веб-клиент по HTTP

Снижение версии Apache до 2.2

Рабочий вариант по снижению версии был найден в этом блоге IT-шника и заключается в следующем:

Открываем файл (его по умолчанию нет):

nano /etc/apt/sources.list.d/ubuntu1204.list

Добавляем туда содержимое:

deb http://ru.archive.ubuntu.com/ubuntu/ precise main

Открываем файл (его по умолчанию тоже нет):

nano /etc/apt/preferences.d/apache22

Добавляем туда содержимое:

Package: apache*
Pin: release a=precise
Pin-Priority: 500

Обновляем список репозиториев

apt-get update

Обновляем систему (если надо)

sudo apt-get dist-upgrade

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

sudo apt-get install apache2

Проверяем версию apache

apache2 -v

Должна быть

2.2

Работало вчера (--Vovan (обсуждение) 06:34, 27 декабря 2014 (UTC))

Установка платформы 1C:Предприятие

Установка

Для установки платформы 1С необходимо

  • Зарегистрироваться на личный кабинет пользователя 1С путем ввода данных регистрационного номера и пин кода с белого конверта, входящего в состав решения, которое приобретено у дилера 1C
  • Найти в личном кабинете дистрибутив в виде deb-пакетов
  • Скачать их, например, в домашнюю директорию пользователя
  • Распаковать, перейти в директорию с пакетами и установить (dpkg -i ./*.deb)

Развёртывание конфигурации

Для развертывания конфигурации нужно

  • запустить 1C:Предприятие и добавить конфигурацию стандартным способом (см. инструкции от 1С)
  • запустить конфигуратор для развернутой конфигурации

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

Теперь самое интересное и В А Ж Н О Е:

Если вы, например, запустили 1С:Предприятие под пользовтаелем administrator и получили программную лицензию,
то в домашней директории пользователя administrator в скрытой директории .1cv8 будет создана директория 1C,
внутри которой будет находиться полученная программная лицензия. С этого момента запуск конфигурации ПРИВЯЗАН к пользовтаелю administrator.
То есть, если Вы вдруг поставили apache2, настроили все как пишут в учебниках и в вебе конфигурация запускается, но просит лицензию, то знайте - 
пока вы не запустите apache2 от пользователя administrator, а не из под www-data (по уполчанию) - лицензия не будет найдена.

Почему?

Видимо, потому, что при запуске веб-клиента, проверяется пользователь, от которого запущен процесс apache2, далее система проверяет наличие
скрытой директории с лицензией в домашней директории пользователя, под которым работает apache2.

Важно:

Даже если Вы захотите переложить директорию с лицензией в домашнюю директорию пользвоателя www-data, ничего не получится, т.к. файл лицензии при её
запросе завязан на имя пользователя, от которого работала платформа в момент получения лицензии (ну и еще на ряд параметров железа, при изменении 
которых лицензия слетает, см. официальные руководства от 1С)

И как же быть? - Заставить apache2 запускаться от пользователя, от которого получали лицензию (в контексте этой статьи - administrator).

Как заставить Apache запускаться от пользователя, под которым была получена программная лицензия?

Открыть файл

nano /etc/apache2/envvars

Заменить строки

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

На

export APACHE_RUN_USER=administrator
export APACHE_RUN_GROUP=administrator

Перезапустить apache2

service apache2 restart