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

Материал из ALT Linux Wiki
< 1C
(Установка и настройка нескольких версий клиентов 1С 8.3)
 
м (Отмена правки 66861, сделанной Pauli (обсуждение). Не протухло, рабочая для старых платформ.)
Метка: отмена
 
(не показано 6 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{stub}}
{{note|С версии 8.3.18.1208 данная инструкция не требуется - 1С наконец реализовал установку различных версий платформ в различные папки!}}
= Установка и настройка нескольких версий клиентов 1С 8.3 =
= Установка и настройка нескольких версий клиентов 1С 8.3 =
почему не как в винде? вопрос к
Необходимость в использовании нескольких версий платформ 1С на клиентских машинах актуальна, когда в организации несколько серверов 1С, и на каждом из них, установлена своя версия 1С-платформы.
 
Для примера имеются: сервер vm-db2 (192.168.0.10) - c версией платформы 1C 8.3.5-1460 и vm-pg9 (192.168.0.11) - c версией платформы 1C 8.3.9-2033.
В данном случае для подключения к базам на одном ПК необходимо установить обе версии. В Windows проблем нет - каждая платформа ставится как отдельная программа. Например, после установки данных платформа - структура папок такова:
C:\Program Files (x86)\1cv8\8.3.5.1460
C:\Program Files (x86)\1cv8\8.3.9.2033
C:\Program Files (x86)\1cv8\common
В последней папке лежит файл 1cestart.exe, который выбирает при запуске базы из списка (он единый, хранится в Users\AppData) платформу, соответствующую установленной на сервере хранения этой базы.
 
Однако под Linux разработчики 1С не потрудились организовать такую же установку, при установке второй версии - просто обновляется...
 
Идеальной была бы реализация, как у пакетов ядра kernel-image-*... Но пока справляемся своими силами.
 
== Первичная установка одной из версий ==
== Первичная установка одной из версий ==
Одну из необходимых версий нужно установить обычным способом, см. [[1C/Quick]].
Одну из необходимых версий нужно установить обычным способом, см. [[1C/Quick]].  
== Создание архива с другой версией клиента ==
 
ТODO - выложить скрипт, описать работу
В нашем случае выбрана 8.3.9-2033 (так как на данном сервере 1С - vm-pg9 - платформа обновляется намного чаще, чем на vm-db2).
== Установка подготовленной версии ==
 
распаковать архив от рута:
ОС - BaseAlt Рабочая Станция 8.1, x86_64 (установлен {{pkg|1c-preinstall-full}} и четыре необходимых RPM-пакета)
 
== Создание архива клиента ==
Другую версию 1С нужно распаковать в папку /opt/1C/v8.3.x-xxxx. Для удобства был написан [[1C/MultiClient#1ctarball.sh|скрипт (см.ниже)]], который намного упростит это действие.
* Скрипт (можно скачать [https://yadi.sk/d/Sx3TXYQY3DoGaZ здесь]) положите в папку вместе с распакованными [[1C/Quick#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2|RPM-пакетами]]
* Если у архитектура требуемого клиента x86_64 - скрипт менять не нужно. Если же нет - откройте его и измените значение переменной ''arch'' на i386.
* Сделайте его исполняемым ({{cmd|chmod +x 1ctarball.sh}})
* Запустите его в таком формате: {{cmd|./1ctarball.sh <номер версии 1с в формате 8.3.x-xxxx>}} (в нашем случае {{cmd|./1ctarball.sh 8.3.5-1460}})
* Результатом будет архив c именем 1С_8.3.5-1460.tgz
{{note|Данное действие можно производить на любом компьютере (понадобятся пакеты {{pkg|rpm}} и {{pkg|tar}}), не обязательно на котором необходимо установить клиент 1С}}
== Установка дополнительной версии клиента 1С==
На клиентской машине (с уже установленной другой версией платформы!) выполняем от рута следующие команды:
tar -xzvf 1С_8.3.5-1460.tgz -C /
chown -R root:root /opt/1C/v8.3.5-1460
Теперь рядом с директорией {{path|/opt/1C/v8.3}} (в которой установлена версия 8.3.9-2033) есть с другой версией: {{path|/opt/1C/v8.3.5-1460}}. Все, на вашем Линуксе установлено две версии клиента 1С (можно сделать и больше)
 
== Настройка доступа к базам 1С ==
== Настройка доступа к базам 1С ==
ярлыки + ibases2
Затем необходимо настроить подключение к базам 1С. Из одного меню запуска, как в Windows, подключение к базам с разными версиями сделать не получится (так как исполняемый файл 1cestart для каждой из платформ свой), хотя список баз и будет общий - хранится в {{path|~/.1C/1cestart}}.
 
Для подключения к серверу БД с версией 1С, которая установлена обычным способом (apt-get install), используется команда: {{cmd|/opt/1C/v8.3/x86_64/1cestart}}.
Для подключения с помощью других имеющихся версий: {{cmd|/opt/1C/v8.3.x-xxxx/x86_64/1cestart}}
 
Остается только настроить ярлыки для каждой из версий (самое простое - скопировать из меню существующий и изменить в нем команду)
 
= 1ctarball.sh =
<source lang="bash">
#!/bin/bash
arch=x86_64
if [ -z $1 ]; then
    echo "Введите номер версии 1С в формате 8.3.x-xxxx"
    exit 1
else
    name="1C_Enterprise83"
    if ! [ -f $name-client-$1.$arch.rpm ]; then
        echo "В текущей директории не найдены необходимые пакеты для указанной версии 1С.
Убедитесь в наличие всех следующих пакетов:
* $name-client-$1.$arch.rpm
* $name-client-nls-$1.$arch.rpm
* $name-server-$1.$arch.rpm
* $name-common-$1.$arch.rpm"
        exit 1
    else
    echo -n "Подождите, операция выполняется..."
    rpm2cpio $name-client-$1.$arch.rpm | cpio -idmv 2> /dev/null
    rpm2cpio $name-client-nls-$1.$arch.rpm | cpio -idmv 2> /dev/null
    rpm2cpio $name-server-$1.$arch.rpm | cpio -idmv 2> /dev/null
    rpm2cpio $name-common-$1.$arch.rpm | cpio -idmv 2> /dev/null
    mv opt/1C/v8.3 opt/1C/v$1
    tar -cpzf 1С_$1.tgz opt
    rm -rf opt/ etc/ usr/
    echo; echo "Выполнено, установите сгенерированный архив в систему командой (c правами root):
# tar -xzvf 1С_$1.tgz -C /"
    exit 0
    fi
fi
</source>


{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}}

Текущая версия от 16:24, 20 июля 2023

Примечание: С версии 8.3.18.1208 данная инструкция не требуется - 1С наконец реализовал установку различных версий платформ в различные папки!

Установка и настройка нескольких версий клиентов 1С 8.3

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

Для примера имеются: сервер vm-db2 (192.168.0.10) - c версией платформы 1C 8.3.5-1460 и vm-pg9 (192.168.0.11) - c версией платформы 1C 8.3.9-2033. В данном случае для подключения к базам на одном ПК необходимо установить обе версии. В Windows проблем нет - каждая платформа ставится как отдельная программа. Например, после установки данных платформа - структура папок такова:

C:\Program Files (x86)\1cv8\8.3.5.1460
C:\Program Files (x86)\1cv8\8.3.9.2033
C:\Program Files (x86)\1cv8\common

В последней папке лежит файл 1cestart.exe, который выбирает при запуске базы из списка (он единый, хранится в Users\AppData) платформу, соответствующую установленной на сервере хранения этой базы.

Однако под Linux разработчики 1С не потрудились организовать такую же установку, при установке второй версии - 1С просто обновляется...

Идеальной была бы реализация, как у пакетов ядра kernel-image-*... Но пока справляемся своими силами.

Первичная установка одной из версий

Одну из необходимых версий нужно установить обычным способом, см. 1C/Quick.

В нашем случае выбрана 8.3.9-2033 (так как на данном сервере 1С - vm-pg9 - платформа обновляется намного чаще, чем на vm-db2).

ОС - BaseAlt Рабочая Станция 8.1, x86_64 (установлен 1c-preinstall-full и четыре необходимых RPM-пакета)

Создание архива клиента 1С

Другую версию 1С нужно распаковать в папку /opt/1C/v8.3.x-xxxx. Для удобства был написан скрипт (см.ниже), который намного упростит это действие.

  • Скрипт (можно скачать здесь) положите в папку вместе с распакованными RPM-пакетами
  • Если у архитектура требуемого клиента x86_64 - скрипт менять не нужно. Если же нет - откройте его и измените значение переменной arch на i386.
  • Сделайте его исполняемым (chmod +x 1ctarball.sh)
  • Запустите его в таком формате: ./1ctarball.sh <номер версии 1с в формате 8.3.x-xxxx> (в нашем случае ./1ctarball.sh 8.3.5-1460)
  • Результатом будет архив c именем 1С_8.3.5-1460.tgz
Примечание: Данное действие можно производить на любом компьютере (понадобятся пакеты rpm и tar), не обязательно на котором необходимо установить клиент 1С

Установка дополнительной версии клиента 1С

На клиентской машине (с уже установленной другой версией платформы!) выполняем от рута следующие команды:

tar -xzvf 1С_8.3.5-1460.tgz -C /
chown -R root:root /opt/1C/v8.3.5-1460

Теперь рядом с директорией /opt/1C/v8.3 (в которой установлена версия 8.3.9-2033) есть с другой версией: /opt/1C/v8.3.5-1460. Все, на вашем Линуксе установлено две версии клиента 1С (можно сделать и больше)

Настройка доступа к базам 1С

Затем необходимо настроить подключение к базам 1С. Из одного меню запуска, как в Windows, подключение к базам с разными версиями сделать не получится (так как исполняемый файл 1cestart для каждой из платформ свой), хотя список баз и будет общий - хранится в ~/.1C/1cestart.

Для подключения к серверу БД с версией 1С, которая установлена обычным способом (apt-get install), используется команда: /opt/1C/v8.3/x86_64/1cestart. Для подключения с помощью других имеющихся версий: /opt/1C/v8.3.x-xxxx/x86_64/1cestart

Остается только настроить ярлыки для каждой из версий (самое простое - скопировать из меню существующий и изменить в нем команду)

1ctarball.sh

#!/bin/bash
arch=x86_64
if [ -z $1 ]; then
    echo "Введите номер версии 1С в формате 8.3.x-xxxx"
    exit 1
else
    name="1C_Enterprise83"
    if ! [ -f $name-client-$1.$arch.rpm ]; then
        echo "В текущей директории не найдены необходимые пакеты для указанной версии 1С. 
Убедитесь в наличие всех следующих пакетов:
* $name-client-$1.$arch.rpm
* $name-client-nls-$1.$arch.rpm
* $name-server-$1.$arch.rpm
* $name-common-$1.$arch.rpm"
        exit 1 
    else
    echo -n "Подождите, операция выполняется..."
    rpm2cpio $name-client-$1.$arch.rpm | cpio -idmv 2> /dev/null
    rpm2cpio $name-client-nls-$1.$arch.rpm | cpio -idmv 2> /dev/null
    rpm2cpio $name-server-$1.$arch.rpm | cpio -idmv 2> /dev/null
    rpm2cpio $name-common-$1.$arch.rpm | cpio -idmv 2> /dev/null
    mv opt/1C/v8.3 opt/1C/v$1
    tar -cpzf 1С_$1.tgz opt
    rm -rf opt/ etc/ usr/
    echo; echo "Выполнено, установите сгенерированный архив в систему командой (c правами root):
# tar -xzvf 1С_$1.tgz -C /"
    exit 0
    fi
fi