1C/MultiClient
Установка и настройка нескольких версий клиентов 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
Установка дополнительной версии клиента 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