Ошибка установки или изменения национальных настроек информационной базы

Специалисты компании CorpSoft24 рассказывают, как избавиться от ошибки национальных настроек информационной базы в 1C .

«Национальные настройки информационной базы (ИБ) не соответствуют настройкам базы данных» — распространенная ошибка в работе систем 1С.

Для исправления советуют запустить Конфигуратор, однако и там при загрузке базы из dt-файла (файл, который можно получить при создании копии базы через Конфигуратор, с помощью которого можно восстановить копию базы) выскочила ошибка:

«Ошибка установки или изменения национальных настроек информационной базы»

по причине:

«Порядок сортировки не поддерживается базой данных».

Для базы-приемника проверяем настройки: «Администрирование -> Региональные установки информационной базы».

Для базы-источника проверяем настройки: загружаем dt-файл в новую пустую файловую базу, затем «Администрирование -> Региональные установки информационной базы».

Как видим, настройки отличаются.

Решение

Для базы-приемника выставляем настройки, аналогичные базе-источнику, которая загружена из dt-файла.

Не баг, а фича: странное поведение языков программирования

Бывает так, что невозможно сменить региональные настройки базы-приемника.

Тогда приходится менять настройки в отдельной среде (другой сервер или другая СУБД, другая версия платформы 1С), в которой загружаем базу из dt-файла, меняем настройки на нужные, после чего выгружаем базу в dt-файл и загружаем в базу-приемник.

Бывает так, что невозможно загрузить dt-файл в файловую базу.

В таком случае придется либо уточнить региональные настройки у человека, который предоставил dt-файл, либо перебирать настройки -устанавливать и пробовать загрузку и т.д. до успеха.

Причина может быть в банальной смене свойства «Язык — Русский» в панели управления Windows -> «Язык и региональные стандарты».

Эта настройка может поменяться на, к примеру, «Русский — Молдова» (раскладка клавиатуры), и этого будет достаточно для того, чтобы произошел подобный сбой.

Как вариант профилактики:

— указать русский в качестве языка по умолчанию при установке платформы;

— запускать с ключом /Lru;

— прописать параметр запуска SystemLanguage=RU в конфигурационном файле conf.cfg;

— через конфигуратор настроить региональные установки информационной базы.

Не загружается dt в MS SQL выгруженная из Postgresql ☑ 0

datum

05.05.20

17:04

Пишет вот такую не приятную вещь:

Ошибка установки или изменения национальных настроек информационной базы

Ошибка СУБД:

Microsoft SQL Server Native Client 11.0: The database could not be exclusively locked to perform the operation.

HRESULT=80040E14, HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=5072, line=1

SQLSrvr: SQLSTATE=42000, state=5, Severity=10, native=5030, line=1

Что делать?

1

VladZ

05.05.20

17:38

(0) Посмотреть, если ли подключения к базе. Если есть — всех отрубить.

2

datum

05.05.20

19:42

(1) кроме консоли кластера никаких подключений нет, конфигурация пустая

3

Фрэнки

05.05.20

19:51

а какие установки были в той базе, откуда выгружали и в базе под загрузку?

Они просто не совпадают друг с другом, а в процессе загрузки попытка изменить кодировку «на лету» выдает ошибку.

Это настолько очевидный трабл, что никто даже подсказывать не хочет.

4

rphosts

05.05.20

20:03

>Что делать?

перевести «The database could not be exclusively locked to perform the operation.»

5

МихаилМ

05.05.20

22:17

6

DEVIce

06.05.20

05:04

(2) Подключение консоли тоже надо отключать.

7

dmrjan

06.05.20

09:20

Места на всех дисках хватает?

8

fisher

06.05.20

09:40

(2) ЛЮБЫЕ подключения. Из студии банально может быть подключение. Просто «переступи» на другую базу или вообще закрой.

В данной статье мы рассмотрим установку программы «1С:Документооборот КОРП 2.0» с модулем «Корпоративные процессы» на виртуальный сервер VPS (или VDS). Вы также можете установить любой другой продукт на базе «1С:Предприятие 8.3».

Мы постараемся изложить информацию так, что бы пользователи и администраторы, мало знакомые с Linux (Ubuntu), могли выполнить все действия и развернуть базу данных в среде Linux.1С Документооборот на Linux VPSДля установки «1С:Документооборот» будем использовать виртуальный сервер VPS для установки демонстрационной версии и нам будет достаточно VPS с такими системными характеристиками: RAM 2G, HDD 15GB и, что достаточно важно CPU не менее, чем с 2 или 3-я ядрами 2.6GHz. Для коммерческой эксплуатации виртуального сервера VPS с «1С:Документооборот КОРП» понадобиться более производительный сервер, с оперативной памятью минимум 4-6, а лучше 8-12 GB, а также SSD диском.

Так как основной рабочей операционной системой у нас является Windows, а установка VPS будет идти по протоколу SSH в Linux (Ubuntu 14 LTS), то необходимо установить клиентскую программу putty.exe. Данная программа является бесплатной и позволяет подключаться по протоколу SSH к удаленным серверам.

Подключимся к нашему новому VPS (VDS) серверу для установки на него демо-версии программы «1С:Документооборот КОРП» с интегрированным модулем «Корпоративные процессы».

Подготовка сервера Ubuntu для установки «1С:Предприятие 8.3»

Проверим, какая операционная система у нас установлена:
cat /etc/issue
Проверим свободное и занятое место на диске:
df -h
Проверим доступную и занятую память:
free -m
Если все ОК, установим новый пароль для нашего пользователя
passwd root
Обновим список программ, доступных из репозитория
apt-get update
и выполним их обновление
apt-get upgrade
Установим редактор текстовых файлов
apt-get install nano
Диспетчер файлов Midnight Commander (похожий на Norton Comander из MS DOS).
apt-get install mc
Программу, показывающую загрузку процессора
apt-get install htop

Теперь немного обезопасим наш сервер от несанкционированного доступа. В частности, мы запретим вход пользователю root, создадим нового пользователя для доступа к серверу, изменим номер порта SSH и выполним другие настройки.

Обратите внимание на то, что хотя мы запретим логин пользователю root, мы всё равно в любой момент сможем работать под этой учетной записью введя команду su и пароль учетной записи root

Создаем нового пользователя myuser и его домашний каталог
useradd myuser -m
После выполнения данной команды были созданы новый пользовтель myuser и его домашний каталог /home/myuser
добавляем нашего нового пользователя в группу sudo, что бы он мог выполнять привилегированные операции
usermod -aG sudo myuser
Установим пароль пользователя
passwd myuser
Установим bash средой исполнения для нашего нового пользователя
chsh -s /bin/bash main
Внесем изменения в параметры доступа по SSH, для этого отредактируем файл sshd_config
выполним команду
nano /etc/ssh/sshd_config
заменим порт 22 на порт
port 2234
установим запрет на вход с правами root
PermitRootLogin no
установим разрешение для входа нашего нового пользователя
AllowUsers myuser
если данной строки в файле
sshd_config
нет, то её нужно будет добавить.

Для сохранения файла нажмем в редакторе nano сочетание клавиш Ctrl+O и Enter, для выхода из редактора nano нажмем Ctrl+X и перезапустим наш сервис SSH, что бы изменился порт доступа и другие параметры
service ssh restart

Теперь, не закрывая сеанса root, проверим возможность доступа нашего нового пользователя по новому порту через putty.exe
Запускаем putty.exe, устанавливаем новый порт и проверяем вход через myuserПодключние к 1С серверу через puttyМы можем упростить и, в тоже время, дополнительно обезопасить вход на наш сервер заменив вход по паролю на вход с использованием открытого ключа SSH.

Создадим в домашнем каталоге нашего пользователя каталог для хранения открытых ключей доступа компьютеров, с которых возможен вход на наш VPS сервер.
mkdir ~/.ssh

Если мы ранее не создавали пары открытых и закрытых ключей SSH, то их необходимо создать, например с помощью утилиты puttygen.exe, создание ключей несколько выходит за рамки нашей статьи о развертывании базы данных «1С:Документооборот КОРП» на VPS-сервере и широко освещено в сети Интернет.

После создания открытых ключей нам необходимо добавить их в файл authorized_keys на нашем сервере. Для этого выполните команду
nano ~/.ssh/authorized_keys

Обратите внимание — быстро скопировать текст из буфера Windows в терминал SSH можно кликнув правой кнопкой мышки, текст из буфера будет вставлен в открытую в терминале программу (например, в текстовый редактор nano или командную строку).

Скопируйте все открытые ключи, владельцы которых будут иметь возможность входить на наш VPS без пароля.

Например, это может быть SSH ключ, сгенерированный на рабочей станции Windows, на ноутбуке, а также ключи, сгенерированные на других серверах Linux, например для выполнения регулярных операций архивирования на удаленные сервера и прочее.

После входа пользователя myuser мы можем выполнять все команды с префиксом sudo либо сразу переключиться в среду пользователя root, выполнив команду
su

Теперь нам необходимо проверить имя нашего компьютера, выполним команду
hostname
и получим текущее имя компьютера.

Проверим доступ к нему командой
ping имя
где имя это имя нашего сервера полученное командой hostname
если пинг не идет, то это обязательно нужно исправить, иначе сервер «1С:Предприятие 8.3» с большой вероятностью при запуске командой
service srv1cv83 start
не будет запускаться и будет выдавать неочевидную ошибку:
Starting 1C:Enterprise 8.3 server: Error: service failed to start!
Итак, если команда
ping имя
не выполняется корректно, то добавим имя нашего сервера в файл hosts, выполним команду
nano /etc/hosts
добавим в конец файла строку
127.0.0.1 имя
Снова выполним
ping имя

Установка вспомогательных программ и библиотек Ubuntu

Теперь можно переходить к установке «1С:Предприятие 8.3» для нашей базы «1С:Документооборот КОРП» и сервера PostgreSQL.

Сервер PostgreSQL можно достаточно просто заменить на IBM DB2, установка которого более простая и быстрая, но в данной статье мы будем ставить именно PostgreSQL.

Предварительно нам нужно будет поставить ряд вспомогательных программ (imagemagick и другие) их, конечно, можно поставить вручную скачав с сайта разработчика и установив нужные пакеты. Но, операционные системы Linux, в том числе Ubuntu представляют более удобные механизмы установки из репозиториев программ выполнением простой команды apt-get install <имя пакета>. Команда apt-get является достаточно мощным средством установки программ (apt = advanced packaging tool).

К сожалению, список доступных пакетов в репозиториях программ после установки Ubuntu не достаточно полный, точнее он содержит только ссылки на актульные, проверенные и одобренные программы. Как это часто бывает, такой список не всегда полный, поэтому мы отредактируем список источников репозитория, выполнив команду
nano /etc/apt/sources.list

Дополним файл источников следующим списком:
deb https://archive.canonical.com/ubuntu trusty partner
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty multiverse
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb https://archive.ubuntu.com/ubuntu precise main restricted universe
deb https://archive.ubuntu.com/ubuntu precise-updates main restricted universe
deb https://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb https://archive.canonical.com/ubuntu lucid partner
deb-src https://archive.canonical.com/ubuntu lucid partner

Как мы писали ранее, можно вставить эти строки в буфер Windows и затем нажать правую кнопку мышки в терминале, таким образом все строки будут скопированы в редактор nano из буфера. Сохраним файл, нажав Ctrl+O и выйдем из редактора нажав Ctrl+X.

Обновим списки программ репозитория, выполнив команду
apt-get update
Теперь всё готово к установке вспомогательных программ. Выполним команду
apt-get install libssl0.9.8 libossp-uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick unixodbc texlive-base libgfs-1.3-2
Далее установим шрифты Microsoft, которые корректно отображают данные в «1С:Предприятие 8.3». Такие шрифты не встроены в Ubuntu, так как они являются проприетарными и лицензированы Microsoft. Тем не менее мы теперь можем их устанавливать, т.к. отредактировали список источников /etc/apt/sources.list. Итак, выполним команду
apt-get install ttf-mscorefonts-installer
После выполнения команды начнется процедура установки шрифтов, будет выведено лицензионное соглашение Microsoft которое будет необходимо принять.

Перейдем теперь к установке сервера PostgreSQL.

Установка сервера PostgreSQL для «1С:Предприятие 8» на сервере Ubuntu

Установку PostgreSQL для «1С:Документооборот КОРП» необходимо выполнять из специального дистрибутива, подготовленного фирмой «1С» и размещенного на её официальном сайте, либо оригинального дистрибутива PostgreSQL с применением специальных патчей. В противном случае работа «1С:Документооборот» на таком сервере будет невозможна.

Так как нам необходимо обеспечить работу PostgreSQL с базами данных «1С:Предприятие 8.3» которые имеют кодировку UTF8 и русскую сортировку, то необходимо предварительно настроить локаль операционной системы.

Установим специальный пакет, обеспечивающий полнофункциональную поддержку Unicode и локали. Для операционной системы Ubuntu версии 14 этот пакет имеет наименование libicu52. Установим его, выполнив команду
apt-get install libicu52
Посмотрим, какая текущая локаль у нас имеется, выполним команду
locale
Если в ней нет ru_RU.UTF-8, то её необходимо установить. Давайте установим, выполним следующие команды:
locale-gen en_US ru_RU
locale-gen ru_RU.UTF-8
export LANG=ru_RU.UTF-8
dpkg-reconfigure locales
Снова выполним команду
locale
В результате выполнения мы должны получить примерно такие значения:PostgreSQL порядок сортировки базы данных 1СПосле выполнения всех действий давайте перезагрузим наш VPS первый раз, выполнив команду
reboot

После перезагрузки зайдем под пользователем myuser и выполним команду
su
для входа как пользователь root.

Проверим текущую локаль. Выполним команду
locale
если локаль сбросилась, то добавим в файл
/root/.bashrc строку
export LANG=ru_RU.UTF-8
и также выполним команду
export LANG=ru_RU.UTF-8
Отредактировать файл .bashrc можно командой
nano /root/.bashrc

Перейдем к установке PostgreSQL из дистрибутивов. Если несколько способов загрузить дистрибутивы на VPS сервер, например можно воспользоваться командой wget или другими. Из среды Windows проще всего передать файлы через дополнительную программу, например, через WinSCP.

Откроем наш VPS с пользователем myuser из этой программы, указав наш порт 2234 и IP адрес. Создадим в домашнем каталоге пользователя каталог /home/myuser/1c/postgre и загрузим на него дистрибутив PostgreSQL, можем сразу загрузить в каталог /home/myuser/1c/server и дистрибутив «1С:Предприятие 8» для Linux (DEB-пакеты).Загрузка пакетов deb на сервер 1СС помощью программы WinSCP мы загрузили дистрибутивы в формате .tar.gz. Это файлы архивов их можно распаковать программой tar (если она у вас не установлена, вы можете её установить через apt-get install tar). Например, для распаковки в текущую директорию можно выполнить команду
tar xvzf <имя>.tar.gz

Но мы ранее установили файловый менеджер Midnight Comander, поэтому давайте его запустим, выполнив команду
mc

Перейдем в каталог /home/myuser/1c, войдем в архивный файл, выделим кнопкой Ins на клавиатуре все файлы и нажимаем F5 для их извлечениz в другую часть окна MC (в ней также должен быть выбран каталог /home/myuser/1c).Распаковка пакетов deb для установки 1С сервера на ubuntuВыйдем из программы MC нажав F10, перейдем в каталог с распакованными дистрибутивами, набрав в консоли
cd /home/myusers/1c/postgres

Теперь всё готово к установке PostgreSQL для запуска нашей базы данных «1С:Документооборот КОРП». Так как все пакеты с расширением .deb уже доступны на нашем VPS мы воспользуемся командой dpkg (Depackager).

Эта команда является одной из основных в Linux и устанавливает программы из пакетов .deb (в ветви Linux Debian). В отличие от команды apt-get она не проверяет наличие программ в каких-либо репозиатриях и ничего не скачивает из интернета, просто берет пакет с жесткого диска и устанавливает его.

Итак, в каталоге /home/myusers/1c/postgres выполним команду
dpkg -i *.deb
Данная команда установит все файлы с расширением .deb.
В ходе установки будет выдано много сообщений, если среди них вы заметите сообщения об ошибках, то пытайтесь их исправить введя команду
apt-get -f install

Основная причина сообщений об ошибках — это отсутствие каких-либо необходимых библиотек или программ. Команда apt-get -f install команда анализирует такие ситуации и автоматчиски устанавливает недостающие библиотеки и программы (ключ -f это значение force, что значит принудительно).

Если всё же ошибки остаются, то причин может быть множество, возможно в вашем дистрибутиве Ubuntu есть какие то особенности либо он содержит не все библиотеки по умолчанию. Попробуйте найти информацию в в google, т.к. дистрибутив Ubuntu и PostgreSQL являются широкораспространенными и информации по ним много.

Если ошибок не было или все они были исправлены командой apt-get -f install, то перейдем к нашему серверу и проверим, что же было установлен. Выполним команду
su — postgres
Данная команда запускает среду выполнения пользователя postgres (дефис говорит о том, что будут загружены все параметры среды исполнения пользователя postgres).
Давайте выведем текущий список баз данных PostgreSQL. Выполним
psql -l
Внимательно проверьте список. Везде должна быть указана кодировка UTF-8 и ru_RU.UTF-8

Если кодировка будет отличаться, то в «1С» мы получим сообщение «Ошибка установки или изменения национальных настроек информационной базы. Порядок сортировки не поддерживается базой данных» при попытке создать новую базу данных на таком сервере.

Нажмите Ctrl-Z для выхода из списка баз данных.

Теперь установим пароль пользователя postgres. Под пользователем root выполним команду
sudo -u postgres psql
Далее наберем
password
введем два раза новый пароль
и наберем команду
q
для выхода.
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu

Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных «1С:Документооборот». Выполним
service postgresql status
Мы должны получить строку с номером порта (обычно 5432) и статусом online.
PostgreSQL и 1С:ПредприятиеЕсли всё ОК, то пока завершим установку PostgreSQL и перейдем к установке сервера «1С:Предприятие 8.3»

Установка сервера «1С:Предприятие 8.3» на Ubuntu

Для установки программы «1С:Документооборот» на сервер «1С:Предприятие 8.3» под управление Ubuntu, необходимо скопировать файлы дистрибутива с сервера «1С» в каталог нашего VPS. Мы проделали это с помощью программы WinSCP когда копировали файлы дистрибутива PostgreSQL. Теперь дистрибутив «1С» располагается в каталоге /home/myuser/1c/server.

Перейдем в каталог, набрав в командной строке Linux
cd /home/myusers/1c/server (путь может отличаться, если вы загрузили файлы в другой каталог вашего VPS-сервера).

Извлечем файлы с помощью команды tar xvzf <имя>.tar.gz или, что нам кажется проще, через копирование из архива в Midnight Commander как мы делали при распаковке архивов PostgreSQL.

После распаковки архивов .gz в пакеты .deb можно переходить к их установке.
В отличие от установки пакетов сервера PostgreSQL, установку пакетов сервера «1С:Предприятие 8.3» лучше выполнять в определенной последовательности. Вот она:
dpkg -i 1c-enterprise83-common_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-ws_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-ws-nls_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-common-nls_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-server_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-crs_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-server-nls_8.3.6-2299_i386.deb

В примере выше указаны пакеты сервера «1С» версии 2299, актуального на момент написания данной статьи, в вашем случае цифры релиза могут быть другие.

Кроме того, мы устанавливаем пакеты для 32-х разрядной операционной системы, т.к. у нашей VPS всего 2GB оперативной памяти и смысла ставить 64-х разрядную операционную систему и «1С» нет.

Вы также можете установить пакеты командой
dpkg -i *.deb и затем
apt-get -f install
но корректность такой установки не гарантируется. На данный день рекомендуем всё же ставить пакеты в указанной выше последовательности.

В процессе установки сервера «1С:Предприятие 8.3» у нас был создан новый пользователь операционной системы Ubuntu usr1cv8 и группа grp1cv8.

Давайте теперь установим им права доступа на каталог /opt/1C, где располагаются файлы сервера «1С:Предприятие 8.3» в операционной системе Ubuntu.
Установим права доступа на каталог
chown -R usr1cv8:grp1cv8 /opt/1C
После этого можно перейти к запуску сервиса сервера. Наберем в командной строке
service srv1cv8 start

Должен появиться статус OK.
К сожалению, иногда мы видим надпись:
Starting 1C:Enterprise 8.3 server: Error: service failed to start!

Средства диагностики и логирования проблем в «1С:Предприятие 8.3» для Linux достаточно ограничены. Основываясь на нашем опыте, основная причина появления такого сообщения (если все компоненты были установлены корректно), это проблема с hostname, точнее с записями в DNS или /etc/hosts как было описано выше.

Вы также можете запустить встроенные средства диагностики Ubuntu (а также Debain) выполняя команду
bash -x /etc/init.d/srv1cv83 start
и анализируя полученные диагностические сообщения.

Если вам потребуется полностью переустановить «1С:Предприятие 8.3» под Linux, то необходимо будет удалить все пакеты 1c-enterprise83. Получить их список можно командой
dpkg -l | grep 1c-
Далее начинаем удалять в такой, рекомендуемой, последовательности:
dpkg -remove 1c-enterprise83-common
dpkg -remove 1c-enterprise83-crs
dpkg -remove 1c-enterprise83-ws
dpkg -remove 1c-enterprise83-server-nls
dpkg -remove 1c-enterprise83-server
dpkg -remove 1c-enterprise83-common-nls
dpkg -remove 1c-enterprise83-common
dpkg -remove 1c-enterprise83-server
dpkg — purge 1c-enterprise83-server
Проверяем, что пакетов не осталось, снова выполнив
dpkg -l | grep 1c-
После удаления можно перейти к повторной установке deb пакетов сервера «1С:Предприятие 8.3». Если установка или запуск сервера не удается, рекомендуем поискать ответ в google.

Проверка, настройка и оптимизация сервера PostgreSQL

Ранее мы уже установили PostgreSQL и сервер «1С:Предприятие 8.3». Давайте теперь выполним настройку и оптимизацию сервера баз данных PostgreSQL.

Сервер PostgreSQL имеет достаточно больше количество параметров, влияющих на его производительность в конкретной среде при выполнении конкретных задач.

Основные параметры расположены в файле postgresql.conf. Давайте отредактируем его, выполнив команду
nano /etc/postgresql/9.4/main/postgresql.conf
Наш VPS сервер имеет всего 2GB оперативной памяти, постараемся использовать их наиболее оптимальным способом.

Установим следующие значения:
work_mem 64MB
maintenance_work_mem 256MB
temp_buffers 16MB
wal_buffers 512KB
Если вы готовы ради роста производительности несколько снизить надежность записи на диски, то можно отключить постоянную синхронизацию кэша. Для этого установим следующие параметры:
fsync = off
full_page_writes = off

Если на вашем VPS используется SSD диск, то имеет смысл установить следующее значение параметра
random_page_cost=1.5
Приведенные выше параметры являются ориентировочными и применимыми для VPS с размером памяти 2GB. PostgreSQL имеет большие возможности по настройке и оптимизации производительности в работе с базами данных «1С:Предприятие 8.3».

Также есть утилиты, разработанные третьими фирмами для автоматической настройки оптимальных параметров на основе анализа существующих баз данных.

Полная оптимизация PostgreSQL для работы с базами данных «1С:Документооборот» выходит за рамки данной статьи.

После изменения параметров сервера, перезапустим его:
service postgresql restart

Подключение нового сервера и создание базы данных

Так как мы не устанавливали клиентские пакеты на сервере VPS с Ubuntu, то нам остается выполнить создание и подключение баз данных с рабочей станции с Windows. Для этого запустим программу «Администрирование серверов «1С:Предприятия» и добавим наш новый сервер.

Укажем у сервера IP адрес и порт 1540. По умолчанию «1С» создает локальный кластер, мы можем использовать его, но его локальный адрес нужно будет прописывать в файле lmhosts, сопоставляя с IP-адресом виртуального VPS сервера. Рекомендуем удалить локальный кластер и создать новый, при создании нового кластера серверов «1С:Предприятие 8.3» указать IP адрес нашего виртуального VPS сервера и порт 1541.

В новом кластере создадим информационную базу данных для «1С:Документооборот». На рисунке ниже показан пример создания такой базы данных. Укажите тип сервера PostgreSQL, IP адрес сервера, в качестве пользователя укажите postgres и пароль, который вы установили ранее.

Создание новой базы данных на 1С сервереПопробуем создать базу данных. Можно отследить рост нагрузки на ваш сервер запустив команду
htop

Пример вывода из htop в процессе создания базы данных приведен на рисунке ниже.

Создание базы данных 1С на VPS

Создание базы данных может занять продолжительное время, при этом загрузка ядер процессоров VPS может отличаться, в некоторые периоды нагрузка падает почти до нуля, в некоторые возрастает до 100%.

Если создание прошло успешно, то можно подключать данную информационную базу, входить в режиме «1С:Конфигуратор» и загружать базу «1С:Документооборот КОРП» из архива.

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

Не редко встречается сообщение об ошибке порядка сортировки базы данных. В таком случае нужно будет изменить кодировку PostgreSQL.

Продолжим установку и настройку на следующей странице.

Заказали виртуальный сервер на FastVPS, купили мини сервер 1С и пришло время установки.

В сети нашлась хорошая статья, где все по порядку:

Итак, устанавливаем минимальный CentOS, настраиваем имена хостов, DNSы и сетевые подключения и приступаем собственно к установке серверных компонентов.

1. Установка Postgre SQL server

Обновление от 03-ноя-2016: в последних версиях CentOS (у меня сегодня был 7.2.1511) отсутствует поддержка libtermcap (и как-то «иначе» реализована libreadline), из-за чего сборки с сайта 1С не устанавливаются — решил поставить сборку от Postgres Professionals https://postgrespro.ru/products/1c_build — вроде работает, но о стабильности и производительности пока судить рано. Так что у кого проблемы с libtermcap.so.2() и/ли libreadline.so.5() при установке PostgreSQL с патчами 1С, можете попробовать этот альтернативный вариант.

Для установки использовался рекомендованный (адаптированный) 1С дистрибутив, для чего потребуется скачать его из раздела поддержки пользователей сайта 1С. В моём случае это был «Дистрибутив СУБД PostgreSQL для Linux x86 (64-bit) одним архивом (RPM)», который я сохранил в /root/temp. Распаковываем архив:

[root@vm-sql01 temp]# tar -vxf postgresql-9.2.1-1.1C_x86_64_rpm.tar.gz

postgresql92-9.2.1-1.1C.x86_64.rpm

postgresql92-libs-9.2.1-1.1C.x86_64.rpm

postgresql92-server-9.2.1-1.1C.x86_64.rpm

postgresql92-contrib-9.2.1-1.1C.x86_64.rpm

[root@vm-sql01 temp]#

Устанавливаем в следующей последовательности:

yum install postgresql92-libs-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-server-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-contrib-9.2.1-1.1C.x86_64.rpm

Все недостающие зависимости (пакеты) будут установлены в процессе установки этих rpm, хотя на сайте 1С рекомендуют предварительно установить пакеты readline, libtermcap, krb5-libs и openssl, но в моём случае они либо уже были установлены, либо не были обнаружены в репозиториях.

2. Первый запуск Postgre SQL server

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

[root@vm-sql01 pgsql]# su postgres -c ‘/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data —locale=ru_RU.UTF-8’

Файлы, относящиеся к этой СУБД, будут принадлежать пользователю «postgres».

От его имени также будет запускаться процесс сервера.

Кластер баз данных будет инициализирован с локалью «ru_RU.UTF-8».

Кодировка БД по умолчанию, выбранная в соответствии с настройками: «UTF8».

Выбрана конфигурация текстового поиска по умолчанию «russian».

исправление прав для существующего каталога /var/lib/pgsql/9.2/data… ок

создание подкаталогов… ок

выбирается значение max_connections… 100

выбирается значение shared_buffers… 32MB

создание конфигурационных файлов… ок

создание базы template1 в /var/lib/pgsql/9.2/data/base/1… ок

инициализация pg_authid… ок

инициализация зависимостей… ок

создание системных представлений… ок

загрузка описаний системных объектов… ок

создание правил сортировки… ок

создание преобразований… ок

создание словарей… ок

установка прав для встроенных объектов… ок

создание информационной схемы… ок

загрузка серверного языка PL/pgSQL… ок

очистка базы данных template1… ок

копирование template1 в template0… ок

копирование template1 в postgres… ок

ВНИМАНИЕ: используется проверка подлинности «trust» для локальных подключений.

Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,

—auth-local или —auth-host при следующем выполнении initdb.

Готово. Теперь вы можете запустить сервер баз данных:

/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data

или

/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start

-bash-4.1$

Или тот же вывод на английском языке:

[root@vm-sql01 ~]# su postgres -c ‘/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data —locale=ru_RU.UTF-8’

could not change directory to «/root»

The files belonging to this database system will be owned by user «postgres».

This user must also own the server process.

The database cluster will be initialized with locale «ru_RU.UTF-8».

The default database encoding has accordingly been set to «UTF8».

The default text search configuration will be set to «russian».

fixing permissions on existing directory /var/lib/pgsql/9.2/data … ok

creating subdirectories … ok

selecting default max_connections … 100

selecting default shared_buffers … 32MB

creating configuration files … ok

creating template1 database in /var/lib/pgsql/9.2/data/base/1 … ok

initializing pg_authid … ok

initializing dependencies … ok

creating system views … ok

loading system objects’ descriptions … ok

creating collations … ok

creating conversions … ok

creating dictionaries … ok

setting privileges on built-in objects … ok

creating information schema … ok

loading PL/pgSQL server-side language … ok

vacuuming database template1 … ok

copying template1 to template0 … ok

copying template1 to postgres … ok

WARNING: enabling «trust» authentication for local connections

You can change this by editing pg_hba.conf or using the option -A, or

—auth-local and —auth-host, the next time you run initdb.

Success. You can now start the database server using:

/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data

or

/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start

[root@vm-sql01 ~]#

Или второй, более простой, но не всегда дающий необходимый результат (зависит от региональных настроек сервера, но у меня иногда приводивший к установке базы данных без поддержки необходимого collation ru_RU.UTF-8):

[root@vm-sql01 pgsql]# service postgresql-9.2 initdb

Инициализируется база данных: [ OK ]

[root@vm-sql01 pgsql]#

В результате была создана структура базы данных (с настройками) в /var/lib/pgsql/9.2/data. Хочу обратить особое внимание на конструкцию —locale=ru_RU.UTF-8, которую необходимо указать при инициализации, иначе сервер может быть инициализирован с неверным набором языковых параметров, что в конечном итоге приведёт к сообщениям

Ошибка установки или изменения национальных настроек информационной базы

Порядок сортировки не поддерживается базой данных

по причине:

Порядок сортировки не поддерживается базой данных

при установке информационной базы. Теперь можно настраивать автоматический запуск sql-сервера и, собственно, запускать его:

[root@vm-sql01 temp]# chkconfig postgresql-9.2 on

[root@vm-sql01 temp]# service postgresql-9.2 start

Запускается служба postgresql-9.2: [ OK ]

[root@vm-sql01 temp]#

Всё. Для локальных подключений сервер настроен. В моём случае сервер 1С и сервер SQL находятся на разных машинах, поэтому потребуется настроить и удалённые подключения с авторизацией.

В случае каких-то проблем, читаем содержимое файлов:

/var/lib/pgsql/9.2/pgstartup.log

/var/lib/pgsql/9.2/data/postgresql-*.log

Для повышения быстродействия документация PostgreSQL рекомендует как минимум унести журнал /var/lib/pgsql/9.2/data/pg_xlog на отдельный физический том и создать симлинк на него в исходном месте; из личных наблюдений — надо ещё и значительно увеличить размер используемой памяти… но необъятное не охватить, поэтому за статьями по оптимизации работы PostgreSQL для 1С предлагаю обращаться в поисковые системы, а оттуда — на профильные форумы.

3. Настройка пользователей (ролей) Postgre SQL server

Для управления PostgreSQL на начальном этапе потребуется сменить текущего пользователя на postgres и создать нового пользователя из командной строки:

[root@vm-sql01 temp]# su — postgres

-bash-4.1$ cd /usr/pgsql-9.2/bin

-bash-4.1$ createuser —interactive -P

Введите имя новой роли:server1c

Введите пароль для новой роли:

Повторите его:

Должна ли новая роль иметь полномочия суперпользователя? (y — да/n — нет) n

Новая роль должна иметь право создавать базы данных? (y — да/n — нет) y

Новая роль должна иметь право создавать другие роли? (y — да/n — нет) n

-bash-4.1$ exit

logout

[root@vm-sql01 temp]#

В принципе, для обслуживания полезно иметь пользователя с правами суперпользователя — создавать его можно тем же путём.

Теперь осталось разрешить удалённое подключение с авторизацией — для этого в файле /var/lib/pgsql/9.2/data/pg_hba.conf потребуется заменить значение ident на md5 в строке «host all all 0.0.0.0/0 md5» и перезапустить сервис.

Не следует забывать и про настройки iptables — для работы Postgre SQL необходимо открыть как минимум порт tcp 5432, хотя привычнее (да и проще) объявить сетевой интерфейс «внутренним» (разрешить все подключения на интерфейсе).

Для управления сервером потребуется pgAdmin, который можно установить из репозиториев используемого для административных целей линукса, либо скачать с сайта проекта.

4. Установка компонентов сервера 1С

Внимание!!! Для избежания проблем с зависимостями, желательно, чтобы разрядность сервера 1С совпадала с разрядностью используемого дистрибутива Linux! Иначе (если ставим 32-битный 1С на 64-битный Linux), при входе в базу, можно получить сообщение типа «Ошибка загрузки библиотеки libWand.so по причине:Библиотека не обнаружена. Часть функций будет недоступна.» и клиенты не будут запускаться (хотя конфигуратор — будет). В принципе, я с этой проблемой справился на CentOS 7 (которой не выпускают больше в 32-битном исполнении) — просто поставил не только ‘ImageMagick’, но и ‘ImageMagick.i686’ (yum install ImageMagick.i686) — всё заработало (хоть и притянуло за собой гору зависимостей).

Первый шаг установки сервера 1С мало отличается от аналогичного этапа с SQL-сервером — распаковать скачанный дистрибутив сервера командой tar -vxf rpm64.tar.gz. В итоге получим файлы:

1C_Enterprise83-common-8.3.3-715.x86_64.rpm — основные файлы 1С (включая русский и английский интерфейсы)

1C_Enterprise83-common-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-server-8.3.3-715.x86_64.rpm — сервер 1С

1C_Enterprise83-server-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-ws-8.3.3-715.x86_64.rpm — компоненты вэб-сервера 1С

1C_Enterprise83-ws-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-crs-8.3.3-715.i386.rpm — хранилище конфигураций (только в 32-битном комплекте)

Устанавливаем нужные пакеты командами:

yum install 1C_Enterprise83-common-8.3.3-715.x86_64.rpm

yum install 1C_Enterprise83-server-8.3.3-715.x86_64.rpm

Настраиваем автоматический запуск демона и стартуем его:

[root@vh-1c83 temp]# chkconfig srv1cv83 on

[root@vh-1c83 temp]# service srv1cv83 start

Starting 1C:Enterprise 8.3 server: Error: service failed to start!

FAILED

[root@vh-1c83 temp]# service srv1cv83 start

Starting 1C:Enterprise 8.3 server: OK

[root@vh-1c83 temp]#

Хочу обратить внимание — если сразу после установки сервис (как в приведённом примере) не стартовал, а при второй попытке старта он запустился, скорее всего не настроен DNS — об этом чуть ниже. Если верить информации с многочисленных форумов, то наш сервер уже готов обслуживать до 12 клиентов. Для работы большего числа пользователей, необходимо установить лицензию сервера — либо в виде USB HASP и драйвера, либо в виде электронной лицензии. Про установку аппаратных ключей я уже писал, а установка программных лицензий достаточно проста: запускаем конфигуратор (с клиентской машины; кластер уже должен быть настроен и должна быть информационная база), вызываем «Сервис» — «Получение лицензии», вводим номер комплекта (с коробки или «Регистрационный номер» с карточки из конверта «Пинкоды программной лицензии») и пин-код (с той самой карточки из конверта), ставим галочку «Установка на сервер», вводим имя сервера в соответствующем поле, нажимаем «Далее», говорим, что это — «Первый запуск», заполняем форму «Владелец лицензии» (к стати, я не понял что писать в полях «Фамилия», «Имя», «Отчество» — то ли ответственного за эксплуатацию, то ли генерального директора — оставил поля пустыми, и оно получило лицензию, не ругнувшись), «Далее», «Автоматически» — профит! в /var/1C/licenses на сервере появился файлик XXXXXXXXXXXXXX.lic и серверу «стало хорошо» (если это была многопользовательская лицензия, то клиентам тоже «станет хорошо», т.к. они будут получать лицензии на сервере).

Для работы с графическими объектами и экспорта в xls, могут потребоваться дополнительные пакеты: ImageMagick, freetype (входит в зависимости ImageMagick), libgsf (входит в зависимости ImageMagick), corefonts (отсутствует в репозитариях CentOS — см. раздел 6); для «ТАКСИ» и «Управляемого приложения» они необходимы, для классического толстого клиента вроде бы не особо нужны, но 1С всё равно ругается на их отсутствие, хоть и работает.

По умолчанию сервер 1С слушает порт tcp 1541(1540) и для соединений использует диапазон портов 1560-1691.

5. Настройка экземпляра (кластера) сервера 1С

Информации о наличии оснастки управления сервером 1С для Linux мне не попадалось, так что для управления сервером будем использовать традиционную оснастку mmc для Windows «Администрирование серверов 1С:Предприятия», которую следует поставить из дистрибутива технологической платформы для Windows.

В этом месте на тестовом сервере возникли трудности — кластер по умолчанию отсутствовал, а при попытке создания нового кластера, ragent аварийно завершал работу с сообщением Sep 3 21:29:04 vh-1c83 kernel: ragent[1879]: segfault at 8 ip 00007f56473c9fd4 sp 00007f563b7b14a0 error 4 in rserver.so[7f56472db000+70e000]… странно, но если верить форумам, на CentOS у многих сервер 1С 8.3 ставится некорректно — не создаётся начальная конфигурация, включающая «Кластер по умолчанию». Краткий анализ ситуации выявил, что настройки кластера по умолчанию не были сгенерированы полностью и не попали в /home/usr1cv8/.1cv8/1C/1cv8/.

При попытке подложить файлы с рабочего сервера на неудачный, сервис 1С не запускается абсолютно без каких-либо диагностических сообщений — подобное поведение я видел при проблемах (неверных контекстах) SELinux, но в данном случае никаких отказов в audit.log не обнаружилось.

В результате детального изучения проблемы с применением strace удалось выяснить, что агент сервера при запуске ищет настройки по пути ~/.1cv8/1C/1cv8/ (в домашнем каталоге запустившего пользователя) и если не находит, пытается создать настройки кластера по умолчанию, для чего ему нужно имя хоста (выяснено экспериментально), и если верить «Руководству администратора», нужен корректно работающий DNS; экспериментально же был установлен факт, что сначала ragent читает файл /etc/hosts, затем обращается к DNS-серверу, а затем вызывает uname и снова лезет в hosts и к DNS и если не находит сопоставления, аварийно завершается. Итак, для нормального запуска потребуется полноценная и правильно настроенная сетевая инфраструктура, ну а в отсутствии работающего DNS достаточно дописать строчку в /etc/hosts и привести его примерно к такому виду:

127.0.0.1 localhost

192.168.122.227 vh-1c83.test.lan vh-1c83

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

За дальнейшими инструкциями пока отсылаю к своей статье про 8.2 — принципиальных отличий пока нет. Единственное замечание — при создании новой информационной базы, если указывать пользователя подключения к базе данных не с правами суперпользователя (а с набором прав из пункта 3), информационная база не создавалась, а в /var/lib/pgsql/9.2/data/pg_log/postgresql-Xxx.log наблюдались сообщения:

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: нет доступа к языку c

ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS ‘$libdir/plpgsql’ LANGUAGE C

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: ошибка синтаксиса (примерное положение: «application») в символе 24

ОПЕРАТОР: lock table pg_class in application share mode

ПРЕДУПРЕЖДЕНИЕ: нет незавершённой транзакции

ОШИБКА: тип «mvarchar» не существует в символе 31

ОПЕРАТОР: create table Config (FileName mvarchar(128) not null, Creation timestamp not null, Modified timestamp not null, Attributes int not null, DataSize int8 not null, BinaryData bytea not null, PartNo int not null, PRIMARY KEY (FileName, PartNo))

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: нет доступа к языку c

ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS ‘$libdir/plpgsql’ LANGUAGE C

После подключения с учётными данными суперпользователя БД, сообщения изменились на англоязычные и проблемы исчезли. Судя по всему, если на сервере установлен язык по умолчанию en_US, данного казуса не случится, но это — не проверенная информация, а лишь предположение, сделанное по прочтении чужой статьи про 8.1 и праздных раздумий =)

Ещё одна странность — если создать пустую SQL базу не из шаблона1 (см. официальную документацию по 1С), и попытаться ей указать на этапе создания ИБ, то всё равно получим сообщение «ОШИБКА: тип «mvarchar» не существует (символ 31)»/»ERROR: type «mvarchar» does not exist at character 31″, но мне так и не удалось создать из требуемого шаблона БД — валились разные ошибки, но если пользователя sql, от которого создаётся ИБ временно повысить до суперпользователя с правом создания БД, и указать создание базы данных в случае её отсутствия, то всё получается в лучшем виде, так что на этапе первичной настройки, видимо, придётся повышать пользователя до супер…

Что порадовало — теперь в 1С можно работать непосредственно из Linux, что актуально для компаний, использующих его как основную ОС в корпоративной сети (я сейчас работаю как раз в такой компании); из неожиданностей — что при установке клиента 1С, он заявляет о зависимости от сервера и требует его установки, но потом ставится, прописывает значки запуска в «Офис» — «Финансы» и работает довольно сносно (по ощущениям — чуть менее комфортно, чем 8.2 под Windows, но заметно приятнее, чем тот же 8.2 через WINE от Ethersoft).

6. Установка недостающих зависимостей

При запуске клиента к настроенному по данной инструкции серверу, появится сообщение «На сервере отсутствуют шрифты из состава Microsoft Core Fonts. Внешний вид приложения может отличаться от ожидаемого. Процедура установки описана в справочной системе…» — данное сообщение появляется достаточно редко (периодичность не выявил, но появляется точно не единожды, но и не при каждом запуске), и на работе особо не сказывается, но «для красоты» я решил пройтись по всей цепочке и поставить рекомендуемые пакеты. Всё, кроме «corefonts» поставилось из репозиториев (хотя в той самой «справочной системе» безбожно перепутаны регистры в названиях пакетов, из-за чего их идентификация оказалась весьма развлекательна), ну а шрифты я решил пересобрать (в соответствии с рекомендациями из «справочной системы») и результат прикрепляю к статье — msttcorefonts-2.5-1.noarch.rpm, заодно и сами шрифты (уже переименованные в нижний регистр, как происходит при сборке rpm рекомендованным скриптом) — msttcorefonts.tar.gz — содержимое этого архива рекомендуют распаковать в /home/usr1cv8/.fonts (не забыв сменить владельца как на папку, так и на файлы!), если нет возможности установить предложенный .rpm

Кроме «ImageMagick» и шрифтов, для возможности сохранения в табличные файлы (кроме xls — его я пока не заставил формироваться, хотя xlsx формируется), на клиенте должны быть установлены пакеты «libMagickWand5», «libgomp1», «liblcms2-2» и «libbz2-1» — на ряде машин они отсутствовали. При чём той же разрядности, что и сервер 1С (см. п. 4).

7. Настройка аппаратного hasp для виртуализированного сервера 1С (работающего на виртуальной машине KVM)

Не планировал описывать эту процедуру, но раз уж столкнулся с такой ситуацией, опишу… Итак, на этот раз я использовал драйвер от «Alladin Knowledge Systems USB HASP», предоставляемый компанией Sentinel — мне попались две версии:

2878061 сен 11 2012 aksusbd-2.0-1.i386.rpm — с сайта aladdin-rd.ru

3009880 авг 6 16:35 aksusbd-2.2-1.i386.rpm — с сайта safenet-inc.com

Можно воспользоваться драйвером эзерсофт — окончательный выбор следует делать из опыта практической эксплуатации.

Наиболее правильная (на мой взгляд) последовательность действий:

а) убедиться, что на хост-машине драйвер HASP не установлен;

б) установить выбранный драйвер USB HASP4 на виртуальном сервере;

в) выяснить список подключенных USB-устройств к хост-машине

[root@vh01 files]# ls -R /dev/bus/usb

/dev/bus/usb:

001

002

003

004

/dev/bus/usb/001:

001

002

/dev/bus/usb/002:

001

/dev/bus/usb/003:

001

/dev/bus/usb/004:

001

[root@vh01 files]#

г) подключить USB-HASP к хост-машине и выяснить адрес ключа:

[root@vh01 files]# ls -R /dev/bus/usb

/dev/bus/usb:

001

002

003

004

/dev/bus/usb/001:

001

002

/dev/bus/usb/002:

001

/dev/bus/usb/003:

001

/dev/bus/usb/004:

001

002 <==== это наш ключ — раньше его не было

[root@vh01 files]#

д) используя любой из способов (я использовал Virtual Manager на удалённой машине) добавить «USB Host Device» с найденным адресом (в моём примере — 004:002) к виртуальной машине 1С — может потребоваться выключение и включение машины (я добавлял устройство на выключенную машину).

Собственно, всё — на CentOS 6.4 x64/i686 всё работает (были багрепорты про CentOS 6.0/6.1, но вроде всё починили). Если при запуске виртуалки выдаётся сообщение о занятости устройства, скорее всего подцепился драйвер на хост-машине (так писали на паре форумов, хотя мне эту ситуацию воспроизвести не получилось — даже с установленным драйвером на сервере устройство мапилось корректно). Естественно, если переставить ключ в другой порт USB, придётся перенацеливать и виртуальную машину!

И напоследок, коротко о том «что где лежит»:

/etc/sysconfig/srv1cv83 — файл конфигурации сервера 1С

/home/usr1cv8/.1cv8/1C/1cv8/1cv8wsrv.lst — файл, в котором хранятся основные свойства сервера — например, учётные данные администратора сервера, зарегистрированые кластеры и т.п.

/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst — файл, в котором хранятся свойства кластера по умолчанию

/opt/1C/v8.3/x86_64/ — (вместо «x86_64» может быть «i386» — в зависимости от архитектуры системы) исполняемые файлы и сопутствующие ресурсы сервера (и клиента) 1С

/var/1C/licenses — здесь лежат файлы электронных ключей лицензий

8. Настройка локального репозитория 1С для удобства обновления платформы 

В процессе эксплуатации 1С нередко приходится обновлять платформу. Если всё установлено по приведённой выше инструкции, это вызывает определённые неудобства — надо останавливать сервис, удалять старые пакеты, ставить новые… не знаю — мне это ещё в винде надоело смертельно. Linux предлагает очень удобный механизм пакетного обновления из локального репозитория — всё, что нужно — это выбрать место, где будут лежать обновки: для одиночного сервера, к которому все ходят только через web-интерфейс, это может быть /root/repo (всё равно обновление под рутом идёт), ну а в общем случае — хоть /var/www/1c-repo — главное, чтобы все, кому он нужен, его видели. Далее надо установить пакет ‘createrepo’ (yum install createrepo) — за собой он притащит немало зависимостей, но не смертельно. Теперь командой ‘createrepo /root/repo’ (где «/root/repo» — выбранный путь хранения репозитория) создаём его «описание» и можно пользоваться.

Затем создаём файл описания нашего репозитория и помещаем его в каталог описаний репозиториев (для CentOS это /etc/yum.repos.d). Пример конфига локального файлового репозитария:

[root@1c yum.repos.d]# cat local-1c.repo

[local-1c]

name=1C Enterprise

#baseurl=http://inhost.firm.lan/repo

baseurl=file:///root/repo

gpgcheck=0

enabled=1

По-моему, разъяснять что за что отвечает, особого смысла нет. Единственное, что важно — сразу yum его может не увидеть — в этой ситуации поможет очистка его кэшей (yum clean all).

Всё. Теперь если надо обновиться, то помещаем новые файлы дистрибутива 1С рядом со старыми, повторяем ‘createrepo /root/repo’ вызываем ‘yum update’ — и всё — платформа пошла обновляться! Естественно, за сохранностью и защищённостью своего репозитория надо следить, так как GPG у нас выключен, и это всё же дыра в безопасности, хоть и не особо толстая…

В данной статье мы рассмотрим установку программы «1С:Документооборот КОРП 2.0» с модулем «Корпоративные процессы» на виртуальный сервер VPS (или VDS). Вы также можете установить любой другой продукт на базе «1С:Предприятие 8.3».

Мы постараемся изложить информацию так, что бы пользователи и администраторы, мало знакомые с Linux (Ubuntu), могли выполнить все действия и развернуть базу данных в среде Linux.1С Документооборот на Linux VPSДля установки «1С:Документооборот» будем использовать виртуальный сервер VPS для установки демонстрационной версии и нам будет достаточно VPS с такими системными характеристиками: RAM 2G, HDD 15GB и, что достаточно важно CPU не менее, чем с 2 или 3-я ядрами 2.6GHz. Для коммерческой эксплуатации виртуального сервера VPS с «1С:Документооборот КОРП» понадобиться более производительный сервер, с оперативной памятью минимум 4-6, а лучше 8-12 GB, а также SSD диском.

Так как основной рабочей операционной системой у нас является Windows, а установка VPS будет идти по протоколу SSH в Linux (Ubuntu 14 LTS), то необходимо установить клиентскую программу putty.exe. Данная программа является бесплатной и позволяет подключаться по протоколу SSH к удаленным серверам.

Подключимся к нашему новому VPS (VDS) серверу для установки на него демо-версии программы «1С:Документооборот КОРП» с интегрированным модулем «Корпоративные процессы».

Подготовка сервера Ubuntu для установки «1С:Предприятие 8.3»

Проверим, какая операционная система у нас установлена:
cat /etc/issue
Проверим свободное и занятое место на диске:
df -h
Проверим доступную и занятую память:
free -m
Если все ОК, установим новый пароль для нашего пользователя
passwd root
Обновим список программ, доступных из репозитория
apt-get update
и выполним их обновление
apt-get upgrade
Установим редактор текстовых файлов
apt-get install nano
Диспетчер файлов Midnight Commander (похожий на Norton Comander из MS DOS).
apt-get install mc
Программу, показывающую загрузку процессора
apt-get install htop

Теперь немного обезопасим наш сервер от несанкционированного доступа. В частности, мы запретим вход пользователю root, создадим нового пользователя для доступа к серверу, изменим номер порта SSH и выполним другие настройки.

Обратите внимание на то, что хотя мы запретим логин пользователю root, мы всё равно в любой момент сможем работать под этой учетной записью введя команду su и пароль учетной записи root

Создаем нового пользователя myuser и его домашний каталог
useradd myuser -m
После выполнения данной команды были созданы новый пользовтель myuser и его домашний каталог /home/myuser
добавляем нашего нового пользователя в группу sudo, что бы он мог выполнять привилегированные операции
usermod -aG sudo myuser
Установим пароль пользователя
passwd myuser
Установим bash средой исполнения для нашего нового пользователя
chsh -s /bin/bash main
Внесем изменения в параметры доступа по SSH, для этого отредактируем файл sshd_config
выполним команду
nano /etc/ssh/sshd_config
заменим порт 22 на порт
port 2234
установим запрет на вход с правами root
PermitRootLogin no
установим разрешение для входа нашего нового пользователя
AllowUsers myuser
если данной строки в файле
sshd_config
нет, то её нужно будет добавить.

Для сохранения файла нажмем в редакторе nano сочетание клавиш Ctrl+O и Enter, для выхода из редактора nano нажмем Ctrl+X и перезапустим наш сервис SSH, что бы изменился порт доступа и другие параметры
service ssh restart

Теперь, не закрывая сеанса root, проверим возможность доступа нашего нового пользователя по новому порту через putty.exe
Запускаем putty.exe, устанавливаем новый порт и проверяем вход через myuserПодключние к 1С серверу через puttyМы можем упростить и, в тоже время, дополнительно обезопасить вход на наш сервер заменив вход по паролю на вход с использованием открытого ключа SSH.

Создадим в домашнем каталоге нашего пользователя каталог для хранения открытых ключей доступа компьютеров, с которых возможен вход на наш VPS сервер.
mkdir ~/.ssh

Если мы ранее не создавали пары открытых и закрытых ключей SSH, то их необходимо создать, например с помощью утилиты puttygen.exe, создание ключей несколько выходит за рамки нашей статьи о развертывании базы данных «1С:Документооборот КОРП» на VPS-сервере и широко освещено в сети Интернет.

После создания открытых ключей нам необходимо добавить их в файл authorized_keys на нашем сервере. Для этого выполните команду
nano ~/.ssh/authorized_keys

Обратите внимание — быстро скопировать текст из буфера Windows в терминал SSH можно кликнув правой кнопкой мышки, текст из буфера будет вставлен в открытую в терминале программу (например, в текстовый редактор nano или командную строку).

Скопируйте все открытые ключи, владельцы которых будут иметь возможность входить на наш VPS без пароля.

Например, это может быть SSH ключ, сгенерированный на рабочей станции Windows, на ноутбуке, а также ключи, сгенерированные на других серверах Linux, например для выполнения регулярных операций архивирования на удаленные сервера и прочее.

После входа пользователя myuser мы можем выполнять все команды с префиксом sudo либо сразу переключиться в среду пользователя root, выполнив команду
su

Теперь нам необходимо проверить имя нашего компьютера, выполним команду
hostname
и получим текущее имя компьютера.

Проверим доступ к нему командой
ping имя
где имя это имя нашего сервера полученное командой hostname
если пинг не идет, то это обязательно нужно исправить, иначе сервер «1С:Предприятие 8.3» с большой вероятностью при запуске командой
service srv1cv83 start
не будет запускаться и будет выдавать неочевидную ошибку:
Starting 1C:Enterprise 8.3 server: Error: service failed to start!
Итак, если команда
ping имя
не выполняется корректно, то добавим имя нашего сервера в файл hosts, выполним команду
nano /etc/hosts
добавим в конец файла строку
127.0.0.1 имя
Снова выполним
ping имя

Установка вспомогательных программ и библиотек Ubuntu

Теперь можно переходить к установке «1С:Предприятие 8.3» для нашей базы «1С:Документооборот КОРП» и сервера PostgreSQL.

Сервер PostgreSQL можно достаточно просто заменить на IBM DB2, установка которого более простая и быстрая, но в данной статье мы будем ставить именно PostgreSQL.

Предварительно нам нужно будет поставить ряд вспомогательных программ (imagemagick и другие) их, конечно, можно поставить вручную скачав с сайта разработчика и установив нужные пакеты. Но, операционные системы Linux, в том числе Ubuntu представляют более удобные механизмы установки из репозиториев программ выполнением простой команды apt-get install <имя пакета>. Команда apt-get является достаточно мощным средством установки программ (apt = advanced packaging tool).

К сожалению, список доступных пакетов в репозиториях программ после установки Ubuntu не достаточно полный, точнее он содержит только ссылки на актульные, проверенные и одобренные программы. Как это часто бывает, такой список не всегда полный, поэтому мы отредактируем список источников репозитория, выполнив команду
nano /etc/apt/sources.list

Дополним файл источников следующим списком:
deb https://archive.canonical.com/ubuntu trusty partner
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty multiverse
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src https://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb https://archive.ubuntu.com/ubuntu precise main restricted universe
deb https://archive.ubuntu.com/ubuntu precise-updates main restricted universe
deb https://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb https://archive.canonical.com/ubuntu lucid partner
deb-src https://archive.canonical.com/ubuntu lucid partner

Как мы писали ранее, можно вставить эти строки в буфер Windows и затем нажать правую кнопку мышки в терминале, таким образом все строки будут скопированы в редактор nano из буфера. Сохраним файл, нажав Ctrl+O и выйдем из редактора нажав Ctrl+X.

Обновим списки программ репозитория, выполнив команду
apt-get update
Теперь всё готово к установке вспомогательных программ. Выполним команду
apt-get install libssl0.9.8 libossp-uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick unixodbc texlive-base libgfs-1.3-2
Далее установим шрифты Microsoft, которые корректно отображают данные в «1С:Предприятие 8.3». Такие шрифты не встроены в Ubuntu, так как они являются проприетарными и лицензированы Microsoft. Тем не менее мы теперь можем их устанавливать, т.к. отредактировали список источников /etc/apt/sources.list. Итак, выполним команду
apt-get install ttf-mscorefonts-installer
После выполнения команды начнется процедура установки шрифтов, будет выведено лицензионное соглашение Microsoft которое будет необходимо принять.

Перейдем теперь к установке сервера PostgreSQL.

Установка сервера PostgreSQL для «1С:Предприятие 8» на сервере Ubuntu

Установку PostgreSQL для «1С:Документооборот КОРП» необходимо выполнять из специального дистрибутива, подготовленного фирмой «1С» и размещенного на её официальном сайте, либо оригинального дистрибутива PostgreSQL с применением специальных патчей. В противном случае работа «1С:Документооборот» на таком сервере будет невозможна.

Так как нам необходимо обеспечить работу PostgreSQL с базами данных «1С:Предприятие 8.3» которые имеют кодировку UTF8 и русскую сортировку, то необходимо предварительно настроить локаль операционной системы.

Установим специальный пакет, обеспечивающий полнофункциональную поддержку Unicode и локали. Для операционной системы Ubuntu версии 14 этот пакет имеет наименование libicu52. Установим его, выполнив команду
apt-get install libicu52
Посмотрим, какая текущая локаль у нас имеется, выполним команду
locale
Если в ней нет ru_RU.UTF-8, то её необходимо установить. Давайте установим, выполним следующие команды:
locale-gen en_US ru_RU
locale-gen ru_RU.UTF-8
export LANG=ru_RU.UTF-8
dpkg-reconfigure locales
Снова выполним команду
locale
В результате выполнения мы должны получить примерно такие значения:PostgreSQL порядок сортировки базы данных 1СПосле выполнения всех действий давайте перезагрузим наш VPS первый раз, выполнив команду
reboot

После перезагрузки зайдем под пользователем myuser и выполним команду
su
для входа как пользователь root.

Проверим текущую локаль. Выполним команду
locale
если локаль сбросилась, то добавим в файл
/root/.bashrc строку
export LANG=ru_RU.UTF-8
и также выполним команду
export LANG=ru_RU.UTF-8
Отредактировать файл .bashrc можно командой
nano /root/.bashrc

Перейдем к установке PostgreSQL из дистрибутивов. Если несколько способов загрузить дистрибутивы на VPS сервер, например можно воспользоваться командой wget или другими. Из среды Windows проще всего передать файлы через дополнительную программу, например, через WinSCP.

Откроем наш VPS с пользователем myuser из этой программы, указав наш порт 2234 и IP адрес. Создадим в домашнем каталоге пользователя каталог /home/myuser/1c/postgre и загрузим на него дистрибутив PostgreSQL, можем сразу загрузить в каталог /home/myuser/1c/server и дистрибутив «1С:Предприятие 8» для Linux (DEB-пакеты).Загрузка пакетов deb на сервер 1СС помощью программы WinSCP мы загрузили дистрибутивы в формате .tar.gz. Это файлы архивов их можно распаковать программой tar (если она у вас не установлена, вы можете её установить через apt-get install tar). Например, для распаковки в текущую директорию можно выполнить команду
tar xvzf <имя>.tar.gz

Но мы ранее установили файловый менеджер Midnight Comander, поэтому давайте его запустим, выполнив команду
mc

Перейдем в каталог /home/myuser/1c, войдем в архивный файл, выделим кнопкой Ins на клавиатуре все файлы и нажимаем F5 для их извлечениz в другую часть окна MC (в ней также должен быть выбран каталог /home/myuser/1c).Распаковка пакетов deb для установки 1С сервера на ubuntuВыйдем из программы MC нажав F10, перейдем в каталог с распакованными дистрибутивами, набрав в консоли
cd /home/myusers/1c/postgres

Теперь всё готово к установке PostgreSQL для запуска нашей базы данных «1С:Документооборот КОРП». Так как все пакеты с расширением .deb уже доступны на нашем VPS мы воспользуемся командой dpkg (Depackager).

Эта команда является одной из основных в Linux и устанавливает программы из пакетов .deb (в ветви Linux Debian). В отличие от команды apt-get она не проверяет наличие программ в каких-либо репозиатриях и ничего не скачивает из интернета, просто берет пакет с жесткого диска и устанавливает его.

Итак, в каталоге /home/myusers/1c/postgres выполним команду
dpkg -i *.deb
Данная команда установит все файлы с расширением .deb.
В ходе установки будет выдано много сообщений, если среди них вы заметите сообщения об ошибках, то пытайтесь их исправить введя команду
apt-get -f install

Основная причина сообщений об ошибках — это отсутствие каких-либо необходимых библиотек или программ. Команда apt-get -f install команда анализирует такие ситуации и автоматчиски устанавливает недостающие библиотеки и программы (ключ -f это значение force, что значит принудительно).

Если всё же ошибки остаются, то причин может быть множество, возможно в вашем дистрибутиве Ubuntu есть какие то особенности либо он содержит не все библиотеки по умолчанию. Попробуйте найти информацию в в google, т.к. дистрибутив Ubuntu и PostgreSQL являются широкораспространенными и информации по ним много.

Если ошибок не было или все они были исправлены командой apt-get -f install, то перейдем к нашему серверу и проверим, что же было установлен. Выполним команду
su — postgres
Данная команда запускает среду выполнения пользователя postgres (дефис говорит о том, что будут загружены все параметры среды исполнения пользователя postgres).
Давайте выведем текущий список баз данных PostgreSQL. Выполним
psql -l
Внимательно проверьте список. Везде должна быть указана кодировка UTF-8 и ru_RU.UTF-8

Если кодировка будет отличаться, то в «1С» мы получим сообщение «Ошибка установки или изменения национальных настроек информационной базы. Порядок сортировки не поддерживается базой данных» при попытке создать новую базу данных на таком сервере.

Нажмите Ctrl-Z для выхода из списка баз данных.

Теперь установим пароль пользователя postgres. Под пользователем root выполним команду
sudo -u postgres psql
Далее наберем
password
введем два раза новый пароль
и наберем команду
q
для выхода.
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu

Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных «1С:Документооборот». Выполним
service postgresql status
Мы должны получить строку с номером порта (обычно 5432) и статусом online.
PostgreSQL и 1С:ПредприятиеЕсли всё ОК, то пока завершим установку PostgreSQL и перейдем к установке сервера «1С:Предприятие 8.3»

Установка сервера «1С:Предприятие 8.3» на Ubuntu

Для установки программы «1С:Документооборот» на сервер «1С:Предприятие 8.3» под управление Ubuntu, необходимо скопировать файлы дистрибутива с сервера «1С» в каталог нашего VPS. Мы проделали это с помощью программы WinSCP когда копировали файлы дистрибутива PostgreSQL. Теперь дистрибутив «1С» располагается в каталоге /home/myuser/1c/server.

Перейдем в каталог, набрав в командной строке Linux
cd /home/myusers/1c/server (путь может отличаться, если вы загрузили файлы в другой каталог вашего VPS-сервера).

Извлечем файлы с помощью команды tar xvzf <имя>.tar.gz или, что нам кажется проще, через копирование из архива в Midnight Commander как мы делали при распаковке архивов PostgreSQL.

После распаковки архивов .gz в пакеты .deb можно переходить к их установке.
В отличие от установки пакетов сервера PostgreSQL, установку пакетов сервера «1С:Предприятие 8.3» лучше выполнять в определенной последовательности. Вот она:
dpkg -i 1c-enterprise83-common_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-ws_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-ws-nls_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-common-nls_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-server_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-crs_8.3.6-2299_i386.deb
dpkg -i 1c-enterprise83-server-nls_8.3.6-2299_i386.deb

В примере выше указаны пакеты сервера «1С» версии 2299, актуального на момент написания данной статьи, в вашем случае цифры релиза могут быть другие.

Кроме того, мы устанавливаем пакеты для 32-х разрядной операционной системы, т.к. у нашей VPS всего 2GB оперативной памяти и смысла ставить 64-х разрядную операционную систему и «1С» нет.

Вы также можете установить пакеты командой
dpkg -i *.deb и затем
apt-get -f install
но корректность такой установки не гарантируется. На данный день рекомендуем всё же ставить пакеты в указанной выше последовательности.

В процессе установки сервера «1С:Предприятие 8.3» у нас был создан новый пользователь операционной системы Ubuntu usr1cv8 и группа grp1cv8.

Давайте теперь установим им права доступа на каталог /opt/1C, где располагаются файлы сервера «1С:Предприятие 8.3» в операционной системе Ubuntu.
Установим права доступа на каталог
chown -R usr1cv8:grp1cv8 /opt/1C
После этого можно перейти к запуску сервиса сервера. Наберем в командной строке
service srv1cv8 start

Должен появиться статус OK.
К сожалению, иногда мы видим надпись:
Starting 1C:Enterprise 8.3 server: Error: service failed to start!

Средства диагностики и логирования проблем в «1С:Предприятие 8.3» для Linux достаточно ограничены. Основываясь на нашем опыте, основная причина появления такого сообщения (если все компоненты были установлены корректно), это проблема с hostname, точнее с записями в DNS или /etc/hosts как было описано выше.

Вы также можете запустить встроенные средства диагностики Ubuntu (а также Debain) выполняя команду
bash -x /etc/init.d/srv1cv83 start
и анализируя полученные диагностические сообщения.

Если вам потребуется полностью переустановить «1С:Предприятие 8.3» под Linux, то необходимо будет удалить все пакеты 1c-enterprise83. Получить их список можно командой
dpkg -l | grep 1c-
Далее начинаем удалять в такой, рекомендуемой, последовательности:
dpkg -remove 1c-enterprise83-common
dpkg -remove 1c-enterprise83-crs
dpkg -remove 1c-enterprise83-ws
dpkg -remove 1c-enterprise83-server-nls
dpkg -remove 1c-enterprise83-server
dpkg -remove 1c-enterprise83-common-nls
dpkg -remove 1c-enterprise83-common
dpkg -remove 1c-enterprise83-server
dpkg — purge 1c-enterprise83-server
Проверяем, что пакетов не осталось, снова выполнив
dpkg -l | grep 1c-
После удаления можно перейти к повторной установке deb пакетов сервера «1С:Предприятие 8.3». Если установка или запуск сервера не удается, рекомендуем поискать ответ в google.

Проверка, настройка и оптимизация сервера PostgreSQL

Ранее мы уже установили PostgreSQL и сервер «1С:Предприятие 8.3». Давайте теперь выполним настройку и оптимизацию сервера баз данных PostgreSQL.

Сервер PostgreSQL имеет достаточно больше количество параметров, влияющих на его производительность в конкретной среде при выполнении конкретных задач.

Основные параметры расположены в файле postgresql.conf. Давайте отредактируем его, выполнив команду
nano /etc/postgresql/9.4/main/postgresql.conf
Наш VPS сервер имеет всего 2GB оперативной памяти, постараемся использовать их наиболее оптимальным способом.

Установим следующие значения:
work_mem 64MB
maintenance_work_mem 256MB
temp_buffers 16MB
wal_buffers 512KB
Если вы готовы ради роста производительности несколько снизить надежность записи на диски, то можно отключить постоянную синхронизацию кэша. Для этого установим следующие параметры:
fsync = off
full_page_writes = off

Если на вашем VPS используется SSD диск, то имеет смысл установить следующее значение параметра
random_page_cost=1.5
Приведенные выше параметры являются ориентировочными и применимыми для VPS с размером памяти 2GB. PostgreSQL имеет большие возможности по настройке и оптимизации производительности в работе с базами данных «1С:Предприятие 8.3».

Также есть утилиты, разработанные третьими фирмами для автоматической настройки оптимальных параметров на основе анализа существующих баз данных.

Полная оптимизация PostgreSQL для работы с базами данных «1С:Документооборот» выходит за рамки данной статьи.

После изменения параметров сервера, перезапустим его:
service postgresql restart

Подключение нового сервера и создание базы данных

Так как мы не устанавливали клиентские пакеты на сервере VPS с Ubuntu, то нам остается выполнить создание и подключение баз данных с рабочей станции с Windows. Для этого запустим программу «Администрирование серверов «1С:Предприятия» и добавим наш новый сервер.

Укажем у сервера IP адрес и порт 1540. По умолчанию «1С» создает локальный кластер, мы можем использовать его, но его локальный адрес нужно будет прописывать в файле lmhosts, сопоставляя с IP-адресом виртуального VPS сервера. Рекомендуем удалить локальный кластер и создать новый, при создании нового кластера серверов «1С:Предприятие 8.3» указать IP адрес нашего виртуального VPS сервера и порт 1541.

В новом кластере создадим информационную базу данных для «1С:Документооборот». На рисунке ниже показан пример создания такой базы данных. Укажите тип сервера PostgreSQL, IP адрес сервера, в качестве пользователя укажите postgres и пароль, который вы установили ранее.

Создание новой базы данных на 1С сервереПопробуем создать базу данных. Можно отследить рост нагрузки на ваш сервер запустив команду
htop

Пример вывода из htop в процессе создания базы данных приведен на рисунке ниже.

Создание базы данных 1С на VPS

Создание базы данных может занять продолжительное время, при этом загрузка ядер процессоров VPS может отличаться, в некоторые периоды нагрузка падает почти до нуля, в некоторые возрастает до 100%.

Если создание прошло успешно, то можно подключать данную информационную базу, входить в режиме «1С:Конфигуратор» и загружать базу «1С:Документооборот КОРП» из архива.

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

Не редко встречается сообщение об ошибке порядка сортировки базы данных. В таком случае нужно будет изменить кодировку PostgreSQL.

Продолжим установку и настройку на следующей странице.

Заказали виртуальный сервер на FastVPS, купили мини сервер 1С и пришло время установки.

В сети нашлась хорошая статья, где все по порядку:

Итак, устанавливаем минимальный CentOS, настраиваем имена хостов, DNSы и сетевые подключения и приступаем собственно к установке серверных компонентов.

1. Установка Postgre SQL server

Обновление от 03-ноя-2016: в последних версиях CentOS (у меня сегодня был 7.2.1511) отсутствует поддержка libtermcap (и как-то «иначе» реализована libreadline), из-за чего сборки с сайта 1С не устанавливаются — решил поставить сборку от Postgres Professionals https://postgrespro.ru/products/1c_build — вроде работает, но о стабильности и производительности пока судить рано. Так что у кого проблемы с libtermcap.so.2() и/ли libreadline.so.5() при установке PostgreSQL с патчами 1С, можете попробовать этот альтернативный вариант.

Для установки использовался рекомендованный (адаптированный) 1С дистрибутив, для чего потребуется скачать его из раздела поддержки пользователей сайта 1С. В моём случае это был «Дистрибутив СУБД PostgreSQL для Linux x86 (64-bit) одним архивом (RPM)», который я сохранил в /root/temp. Распаковываем архив:

[root@vm-sql01 temp]# tar -vxf postgresql-9.2.1-1.1C_x86_64_rpm.tar.gz

postgresql92-9.2.1-1.1C.x86_64.rpm

postgresql92-libs-9.2.1-1.1C.x86_64.rpm

postgresql92-server-9.2.1-1.1C.x86_64.rpm

postgresql92-contrib-9.2.1-1.1C.x86_64.rpm

[root@vm-sql01 temp]#

Устанавливаем в следующей последовательности:

yum install postgresql92-libs-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-server-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-contrib-9.2.1-1.1C.x86_64.rpm

Все недостающие зависимости (пакеты) будут установлены в процессе установки этих rpm, хотя на сайте 1С рекомендуют предварительно установить пакеты readline, libtermcap, krb5-libs и openssl, но в моём случае они либо уже были установлены, либо не были обнаружены в репозиториях.

2. Первый запуск Postgre SQL server

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

[root@vm-sql01 pgsql]# su postgres -c ‘/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data —locale=ru_RU.UTF-8’

Файлы, относящиеся к этой СУБД, будут принадлежать пользователю «postgres».

От его имени также будет запускаться процесс сервера.

Кластер баз данных будет инициализирован с локалью «ru_RU.UTF-8».

Кодировка БД по умолчанию, выбранная в соответствии с настройками: «UTF8».

Выбрана конфигурация текстового поиска по умолчанию «russian».

исправление прав для существующего каталога /var/lib/pgsql/9.2/data… ок

создание подкаталогов… ок

выбирается значение max_connections… 100

выбирается значение shared_buffers… 32MB

создание конфигурационных файлов… ок

создание базы template1 в /var/lib/pgsql/9.2/data/base/1… ок

инициализация pg_authid… ок

инициализация зависимостей… ок

создание системных представлений… ок

загрузка описаний системных объектов… ок

создание правил сортировки… ок

создание преобразований… ок

создание словарей… ок

установка прав для встроенных объектов… ок

создание информационной схемы… ок

загрузка серверного языка PL/pgSQL… ок

очистка базы данных template1… ок

копирование template1 в template0… ок

копирование template1 в postgres… ок

ВНИМАНИЕ: используется проверка подлинности «trust» для локальных подключений.

Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,

—auth-local или —auth-host при следующем выполнении initdb.

Готово. Теперь вы можете запустить сервер баз данных:

/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data

или

/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start

-bash-4.1$

Или тот же вывод на английском языке:

[root@vm-sql01 ~]# su postgres -c ‘/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data —locale=ru_RU.UTF-8’

could not change directory to «/root»

The files belonging to this database system will be owned by user «postgres».

This user must also own the server process.

The database cluster will be initialized with locale «ru_RU.UTF-8».

The default database encoding has accordingly been set to «UTF8».

The default text search configuration will be set to «russian».

fixing permissions on existing directory /var/lib/pgsql/9.2/data … ok

creating subdirectories … ok

selecting default max_connections … 100

selecting default shared_buffers … 32MB

creating configuration files … ok

creating template1 database in /var/lib/pgsql/9.2/data/base/1 … ok

initializing pg_authid … ok

initializing dependencies … ok

creating system views … ok

loading system objects’ descriptions … ok

creating collations … ok

creating conversions … ok

creating dictionaries … ok

setting privileges on built-in objects … ok

creating information schema … ok

loading PL/pgSQL server-side language … ok

vacuuming database template1 … ok

copying template1 to template0 … ok

copying template1 to postgres … ok

WARNING: enabling «trust» authentication for local connections

You can change this by editing pg_hba.conf or using the option -A, or

—auth-local and —auth-host, the next time you run initdb.

Success. You can now start the database server using:

/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data

or

/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start

[root@vm-sql01 ~]#

Или второй, более простой, но не всегда дающий необходимый результат (зависит от региональных настроек сервера, но у меня иногда приводивший к установке базы данных без поддержки необходимого collation ru_RU.UTF-8):

[root@vm-sql01 pgsql]# service postgresql-9.2 initdb

Инициализируется база данных: [ OK ]

[root@vm-sql01 pgsql]#

В результате была создана структура базы данных (с настройками) в /var/lib/pgsql/9.2/data. Хочу обратить особое внимание на конструкцию —locale=ru_RU.UTF-8, которую необходимо указать при инициализации, иначе сервер может быть инициализирован с неверным набором языковых параметров, что в конечном итоге приведёт к сообщениям

Ошибка установки или изменения национальных настроек информационной базы

Порядок сортировки не поддерживается базой данных

по причине:

Порядок сортировки не поддерживается базой данных

при установке информационной базы. Теперь можно настраивать автоматический запуск sql-сервера и, собственно, запускать его:

[root@vm-sql01 temp]# chkconfig postgresql-9.2 on

[root@vm-sql01 temp]# service postgresql-9.2 start

Запускается служба postgresql-9.2: [ OK ]

[root@vm-sql01 temp]#

Всё. Для локальных подключений сервер настроен. В моём случае сервер 1С и сервер SQL находятся на разных машинах, поэтому потребуется настроить и удалённые подключения с авторизацией.

В случае каких-то проблем, читаем содержимое файлов:

/var/lib/pgsql/9.2/pgstartup.log

/var/lib/pgsql/9.2/data/postgresql-*.log

Для повышения быстродействия документация PostgreSQL рекомендует как минимум унести журнал /var/lib/pgsql/9.2/data/pg_xlog на отдельный физический том и создать симлинк на него в исходном месте; из личных наблюдений — надо ещё и значительно увеличить размер используемой памяти… но необъятное не охватить, поэтому за статьями по оптимизации работы PostgreSQL для 1С предлагаю обращаться в поисковые системы, а оттуда — на профильные форумы.

3. Настройка пользователей (ролей) Postgre SQL server

Для управления PostgreSQL на начальном этапе потребуется сменить текущего пользователя на postgres и создать нового пользователя из командной строки:

[root@vm-sql01 temp]# su — postgres

-bash-4.1$ cd /usr/pgsql-9.2/bin

-bash-4.1$ createuser —interactive -P

Введите имя новой роли:server1c

Введите пароль для новой роли:

Повторите его:

Должна ли новая роль иметь полномочия суперпользователя? (y — да/n — нет) n

Новая роль должна иметь право создавать базы данных? (y — да/n — нет) y

Новая роль должна иметь право создавать другие роли? (y — да/n — нет) n

-bash-4.1$ exit

logout

[root@vm-sql01 temp]#

В принципе, для обслуживания полезно иметь пользователя с правами суперпользователя — создавать его можно тем же путём.

Теперь осталось разрешить удалённое подключение с авторизацией — для этого в файле /var/lib/pgsql/9.2/data/pg_hba.conf потребуется заменить значение ident на md5 в строке «host all all 0.0.0.0/0 md5» и перезапустить сервис.

Не следует забывать и про настройки iptables — для работы Postgre SQL необходимо открыть как минимум порт tcp 5432, хотя привычнее (да и проще) объявить сетевой интерфейс «внутренним» (разрешить все подключения на интерфейсе).

Для управления сервером потребуется pgAdmin, который можно установить из репозиториев используемого для административных целей линукса, либо скачать с сайта проекта.

4. Установка компонентов сервера 1С

Внимание!!! Для избежания проблем с зависимостями, желательно, чтобы разрядность сервера 1С совпадала с разрядностью используемого дистрибутива Linux! Иначе (если ставим 32-битный 1С на 64-битный Linux), при входе в базу, можно получить сообщение типа «Ошибка загрузки библиотеки libWand.so по причине:Библиотека не обнаружена. Часть функций будет недоступна.» и клиенты не будут запускаться (хотя конфигуратор — будет). В принципе, я с этой проблемой справился на CentOS 7 (которой не выпускают больше в 32-битном исполнении) — просто поставил не только ‘ImageMagick’, но и ‘ImageMagick.i686’ (yum install ImageMagick.i686) — всё заработало (хоть и притянуло за собой гору зависимостей).

Первый шаг установки сервера 1С мало отличается от аналогичного этапа с SQL-сервером — распаковать скачанный дистрибутив сервера командой tar -vxf rpm64.tar.gz. В итоге получим файлы:

1C_Enterprise83-common-8.3.3-715.x86_64.rpm — основные файлы 1С (включая русский и английский интерфейсы)

1C_Enterprise83-common-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-server-8.3.3-715.x86_64.rpm — сервер 1С

1C_Enterprise83-server-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-ws-8.3.3-715.x86_64.rpm — компоненты вэб-сервера 1С

1C_Enterprise83-ws-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-crs-8.3.3-715.i386.rpm — хранилище конфигураций (только в 32-битном комплекте)

Устанавливаем нужные пакеты командами:

yum install 1C_Enterprise83-common-8.3.3-715.x86_64.rpm

yum install 1C_Enterprise83-server-8.3.3-715.x86_64.rpm

Настраиваем автоматический запуск демона и стартуем его:

[root@vh-1c83 temp]# chkconfig srv1cv83 on

[root@vh-1c83 temp]# service srv1cv83 start

Starting 1C:Enterprise 8.3 server: Error: service failed to start!

FAILED

[root@vh-1c83 temp]# service srv1cv83 start

Starting 1C:Enterprise 8.3 server: OK

[root@vh-1c83 temp]#

Хочу обратить внимание — если сразу после установки сервис (как в приведённом примере) не стартовал, а при второй попытке старта он запустился, скорее всего не настроен DNS — об этом чуть ниже. Если верить информации с многочисленных форумов, то наш сервер уже готов обслуживать до 12 клиентов. Для работы большего числа пользователей, необходимо установить лицензию сервера — либо в виде USB HASP и драйвера, либо в виде электронной лицензии. Про установку аппаратных ключей я уже писал, а установка программных лицензий достаточно проста: запускаем конфигуратор (с клиентской машины; кластер уже должен быть настроен и должна быть информационная база), вызываем «Сервис» — «Получение лицензии», вводим номер комплекта (с коробки или «Регистрационный номер» с карточки из конверта «Пинкоды программной лицензии») и пин-код (с той самой карточки из конверта), ставим галочку «Установка на сервер», вводим имя сервера в соответствующем поле, нажимаем «Далее», говорим, что это — «Первый запуск», заполняем форму «Владелец лицензии» (к стати, я не понял что писать в полях «Фамилия», «Имя», «Отчество» — то ли ответственного за эксплуатацию, то ли генерального директора — оставил поля пустыми, и оно получило лицензию, не ругнувшись), «Далее», «Автоматически» — профит! в /var/1C/licenses на сервере появился файлик XXXXXXXXXXXXXX.lic и серверу «стало хорошо» (если это была многопользовательская лицензия, то клиентам тоже «станет хорошо», т.к. они будут получать лицензии на сервере).

Для работы с графическими объектами и экспорта в xls, могут потребоваться дополнительные пакеты: ImageMagick, freetype (входит в зависимости ImageMagick), libgsf (входит в зависимости ImageMagick), corefonts (отсутствует в репозитариях CentOS — см. раздел 6); для «ТАКСИ» и «Управляемого приложения» они необходимы, для классического толстого клиента вроде бы не особо нужны, но 1С всё равно ругается на их отсутствие, хоть и работает.

По умолчанию сервер 1С слушает порт tcp 1541(1540) и для соединений использует диапазон портов 1560-1691.

5. Настройка экземпляра (кластера) сервера 1С

Информации о наличии оснастки управления сервером 1С для Linux мне не попадалось, так что для управления сервером будем использовать традиционную оснастку mmc для Windows «Администрирование серверов 1С:Предприятия», которую следует поставить из дистрибутива технологической платформы для Windows.

В этом месте на тестовом сервере возникли трудности — кластер по умолчанию отсутствовал, а при попытке создания нового кластера, ragent аварийно завершал работу с сообщением Sep 3 21:29:04 vh-1c83 kernel: ragent[1879]: segfault at 8 ip 00007f56473c9fd4 sp 00007f563b7b14a0 error 4 in rserver.so[7f56472db000+70e000]… странно, но если верить форумам, на CentOS у многих сервер 1С 8.3 ставится некорректно — не создаётся начальная конфигурация, включающая «Кластер по умолчанию». Краткий анализ ситуации выявил, что настройки кластера по умолчанию не были сгенерированы полностью и не попали в /home/usr1cv8/.1cv8/1C/1cv8/.

При попытке подложить файлы с рабочего сервера на неудачный, сервис 1С не запускается абсолютно без каких-либо диагностических сообщений — подобное поведение я видел при проблемах (неверных контекстах) SELinux, но в данном случае никаких отказов в audit.log не обнаружилось.

В результате детального изучения проблемы с применением strace удалось выяснить, что агент сервера при запуске ищет настройки по пути ~/.1cv8/1C/1cv8/ (в домашнем каталоге запустившего пользователя) и если не находит, пытается создать настройки кластера по умолчанию, для чего ему нужно имя хоста (выяснено экспериментально), и если верить «Руководству администратора», нужен корректно работающий DNS; экспериментально же был установлен факт, что сначала ragent читает файл /etc/hosts, затем обращается к DNS-серверу, а затем вызывает uname и снова лезет в hosts и к DNS и если не находит сопоставления, аварийно завершается. Итак, для нормального запуска потребуется полноценная и правильно настроенная сетевая инфраструктура, ну а в отсутствии работающего DNS достаточно дописать строчку в /etc/hosts и привести его примерно к такому виду:

127.0.0.1 localhost

192.168.122.227 vh-1c83.test.lan vh-1c83

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

За дальнейшими инструкциями пока отсылаю к своей статье про 8.2 — принципиальных отличий пока нет. Единственное замечание — при создании новой информационной базы, если указывать пользователя подключения к базе данных не с правами суперпользователя (а с набором прав из пункта 3), информационная база не создавалась, а в /var/lib/pgsql/9.2/data/pg_log/postgresql-Xxx.log наблюдались сообщения:

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: нет доступа к языку c

ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS ‘$libdir/plpgsql’ LANGUAGE C

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: ошибка синтаксиса (примерное положение: «application») в символе 24

ОПЕРАТОР: lock table pg_class in application share mode

ПРЕДУПРЕЖДЕНИЕ: нет незавершённой транзакции

ОШИБКА: тип «mvarchar» не существует в символе 31

ОПЕРАТОР: create table Config (FileName mvarchar(128) not null, Creation timestamp not null, Modified timestamp not null, Attributes int not null, DataSize int8 not null, BinaryData bytea not null, PartNo int not null, PRIMARY KEY (FileName, PartNo))

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: нет доступа к языку c

ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS ‘$libdir/plpgsql’ LANGUAGE C

После подключения с учётными данными суперпользователя БД, сообщения изменились на англоязычные и проблемы исчезли. Судя по всему, если на сервере установлен язык по умолчанию en_US, данного казуса не случится, но это — не проверенная информация, а лишь предположение, сделанное по прочтении чужой статьи про 8.1 и праздных раздумий =)

Ещё одна странность — если создать пустую SQL базу не из шаблона1 (см. официальную документацию по 1С), и попытаться ей указать на этапе создания ИБ, то всё равно получим сообщение «ОШИБКА: тип «mvarchar» не существует (символ 31)»/»ERROR: type «mvarchar» does not exist at character 31″, но мне так и не удалось создать из требуемого шаблона БД — валились разные ошибки, но если пользователя sql, от которого создаётся ИБ временно повысить до суперпользователя с правом создания БД, и указать создание базы данных в случае её отсутствия, то всё получается в лучшем виде, так что на этапе первичной настройки, видимо, придётся повышать пользователя до супер…

Что порадовало — теперь в 1С можно работать непосредственно из Linux, что актуально для компаний, использующих его как основную ОС в корпоративной сети (я сейчас работаю как раз в такой компании); из неожиданностей — что при установке клиента 1С, он заявляет о зависимости от сервера и требует его установки, но потом ставится, прописывает значки запуска в «Офис» — «Финансы» и работает довольно сносно (по ощущениям — чуть менее комфортно, чем 8.2 под Windows, но заметно приятнее, чем тот же 8.2 через WINE от Ethersoft).

6. Установка недостающих зависимостей

При запуске клиента к настроенному по данной инструкции серверу, появится сообщение «На сервере отсутствуют шрифты из состава Microsoft Core Fonts. Внешний вид приложения может отличаться от ожидаемого. Процедура установки описана в справочной системе…» — данное сообщение появляется достаточно редко (периодичность не выявил, но появляется точно не единожды, но и не при каждом запуске), и на работе особо не сказывается, но «для красоты» я решил пройтись по всей цепочке и поставить рекомендуемые пакеты. Всё, кроме «corefonts» поставилось из репозиториев (хотя в той самой «справочной системе» безбожно перепутаны регистры в названиях пакетов, из-за чего их идентификация оказалась весьма развлекательна), ну а шрифты я решил пересобрать (в соответствии с рекомендациями из «справочной системы») и результат прикрепляю к статье — msttcorefonts-2.5-1.noarch.rpm, заодно и сами шрифты (уже переименованные в нижний регистр, как происходит при сборке rpm рекомендованным скриптом) — msttcorefonts.tar.gz — содержимое этого архива рекомендуют распаковать в /home/usr1cv8/.fonts (не забыв сменить владельца как на папку, так и на файлы!), если нет возможности установить предложенный .rpm

Кроме «ImageMagick» и шрифтов, для возможности сохранения в табличные файлы (кроме xls — его я пока не заставил формироваться, хотя xlsx формируется), на клиенте должны быть установлены пакеты «libMagickWand5», «libgomp1», «liblcms2-2» и «libbz2-1» — на ряде машин они отсутствовали. При чём той же разрядности, что и сервер 1С (см. п. 4).

7. Настройка аппаратного hasp для виртуализированного сервера 1С (работающего на виртуальной машине KVM)

Не планировал описывать эту процедуру, но раз уж столкнулся с такой ситуацией, опишу… Итак, на этот раз я использовал драйвер от «Alladin Knowledge Systems USB HASP», предоставляемый компанией Sentinel — мне попались две версии:

2878061 сен 11 2012 aksusbd-2.0-1.i386.rpm — с сайта aladdin-rd.ru

3009880 авг 6 16:35 aksusbd-2.2-1.i386.rpm — с сайта safenet-inc.com

Можно воспользоваться драйвером эзерсофт — окончательный выбор следует делать из опыта практической эксплуатации.

Наиболее правильная (на мой взгляд) последовательность действий:

а) убедиться, что на хост-машине драйвер HASP не установлен;

б) установить выбранный драйвер USB HASP4 на виртуальном сервере;

в) выяснить список подключенных USB-устройств к хост-машине

[root@vh01 files]# ls -R /dev/bus/usb

/dev/bus/usb:

001

002

003

004

/dev/bus/usb/001:

001

002

/dev/bus/usb/002:

001

/dev/bus/usb/003:

001

/dev/bus/usb/004:

001

[root@vh01 files]#

г) подключить USB-HASP к хост-машине и выяснить адрес ключа:

[root@vh01 files]# ls -R /dev/bus/usb

/dev/bus/usb:

001

002

003

004

/dev/bus/usb/001:

001

002

/dev/bus/usb/002:

001

/dev/bus/usb/003:

001

/dev/bus/usb/004:

001

002 <==== это наш ключ — раньше его не было

[root@vh01 files]#

д) используя любой из способов (я использовал Virtual Manager на удалённой машине) добавить «USB Host Device» с найденным адресом (в моём примере — 004:002) к виртуальной машине 1С — может потребоваться выключение и включение машины (я добавлял устройство на выключенную машину).

Собственно, всё — на CentOS 6.4 x64/i686 всё работает (были багрепорты про CentOS 6.0/6.1, но вроде всё починили). Если при запуске виртуалки выдаётся сообщение о занятости устройства, скорее всего подцепился драйвер на хост-машине (так писали на паре форумов, хотя мне эту ситуацию воспроизвести не получилось — даже с установленным драйвером на сервере устройство мапилось корректно). Естественно, если переставить ключ в другой порт USB, придётся перенацеливать и виртуальную машину!

И напоследок, коротко о том «что где лежит»:

/etc/sysconfig/srv1cv83 — файл конфигурации сервера 1С

/home/usr1cv8/.1cv8/1C/1cv8/1cv8wsrv.lst — файл, в котором хранятся основные свойства сервера — например, учётные данные администратора сервера, зарегистрированые кластеры и т.п.

/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst — файл, в котором хранятся свойства кластера по умолчанию

/opt/1C/v8.3/x86_64/ — (вместо «x86_64» может быть «i386» — в зависимости от архитектуры системы) исполняемые файлы и сопутствующие ресурсы сервера (и клиента) 1С

/var/1C/licenses — здесь лежат файлы электронных ключей лицензий

8. Настройка локального репозитория 1С для удобства обновления платформы 

В процессе эксплуатации 1С нередко приходится обновлять платформу. Если всё установлено по приведённой выше инструкции, это вызывает определённые неудобства — надо останавливать сервис, удалять старые пакеты, ставить новые… не знаю — мне это ещё в винде надоело смертельно. Linux предлагает очень удобный механизм пакетного обновления из локального репозитория — всё, что нужно — это выбрать место, где будут лежать обновки: для одиночного сервера, к которому все ходят только через web-интерфейс, это может быть /root/repo (всё равно обновление под рутом идёт), ну а в общем случае — хоть /var/www/1c-repo — главное, чтобы все, кому он нужен, его видели. Далее надо установить пакет ‘createrepo’ (yum install createrepo) — за собой он притащит немало зависимостей, но не смертельно. Теперь командой ‘createrepo /root/repo’ (где «/root/repo» — выбранный путь хранения репозитория) создаём его «описание» и можно пользоваться.

Затем создаём файл описания нашего репозитория и помещаем его в каталог описаний репозиториев (для CentOS это /etc/yum.repos.d). Пример конфига локального файлового репозитария:

[root@1c yum.repos.d]# cat local-1c.repo

[local-1c]

name=1C Enterprise

#baseurl=http://inhost.firm.lan/repo

baseurl=file:///root/repo

gpgcheck=0

enabled=1

По-моему, разъяснять что за что отвечает, особого смысла нет. Единственное, что важно — сразу yum его может не увидеть — в этой ситуации поможет очистка его кэшей (yum clean all).

Всё. Теперь если надо обновиться, то помещаем новые файлы дистрибутива 1С рядом со старыми, повторяем ‘createrepo /root/repo’ вызываем ‘yum update’ — и всё — платформа пошла обновляться! Естественно, за сохранностью и защищённостью своего репозитория надо следить, так как GPG у нас выключен, и это всё же дыра в безопасности, хоть и не особо толстая…

Содержание

  1. Как решить ошибку национальных настроек информационной базы в 1C
  2. Решение
  3. Александр Рудницкий
  4. Страницы
  5. пятница, 15 января 2021 г.
  6. Ошибка установки или изменения национальных настроек информационной базы
  7. Национальные настройки информационной базы не соответствуют настройкам базы данн
  8. Как решить ошибку национальных настроек информационной базы в 1C
  9. Решение
  10. Как решить ошибку национальных настроек информационной базы в 1C
  11. Решение

Как решить ошибку национальных настроек информационной базы в 1C

«Национальные настройки информационной базы (ИБ) не соответствуют настройкам базы данных» — распространенная ошибка в работе систем 1С.

Для исправления советуют запустить Конфигуратор, однако и там при загрузке базы из dt-файла (файл, который можно получить при создании копии базы через Конфигуратор, с помощью которого можно восстановить копию базы) выскочила ошибка:

«Ошибка установки или изменения национальных настроек информационной базы»

«Порядок сортировки не поддерживается базой данных».

Для базы-приемника проверяем настройки: «Администрирование -> Региональные установки информационной базы».

Для базы-источника проверяем настройки: загружаем dt-файл в новую пустую файловую базу, затем «Администрирование -> Региональные установки информационной базы».

Как видим, настройки отличаются.

Решение

Для базы-приемника выставляем настройки, аналогичные базе-источнику, которая загружена из dt-файла.

Бывает так, что невозможно сменить региональные настройки базы-приемника.

Тогда приходится менять настройки в отдельной среде (другой сервер или другая СУБД, другая версия платформы 1С), в которой загружаем базу из dt-файла, меняем настройки на нужные, после чего выгружаем базу в dt-файл и загружаем в базу-приемник.

Бывает так, что невозможно загрузить dt-файл в файловую базу.

В таком случае придется либо уточнить региональные настройки у человека, который предоставил dt-файл, либо перебирать настройки -устанавливать и пробовать загрузку и т.д. до успеха.

Причина может быть в банальной смене свойства «Язык — Русский» в панели управления Windows -> «Язык и региональные стандарты».

Эта настройка может поменяться на, к примеру, «Русский — Молдова» (раскладка клавиатуры), и этого будет достаточно для того, чтобы произошел подобный сбой.

Как вариант профилактики:

— указать русский в качестве языка по умолчанию при установке платформы;

— запускать с ключом /Lru;

— прописать параметр запуска SystemLanguage=RU в конфигурационном файле conf.cfg;

— через конфигуратор настроить региональные установки информационной базы.

Источник

Александр Рудницкий

Страницы

пятница, 15 января 2021 г.

Ошибка установки или изменения национальных настроек информационной базы

В конфигураторе при загрузке базы из dt файла выскочила ошибка:

Ошибка установки или изменения национальных настроек информационной базы
Порядок сортировки не поддерживается базой данных
по причине:
Порядок сортировки не поддерживается базой данных

Для базы-приемника проверяем настройки: «Администрирование -> Региональные установки информационной базы»

Для базы-источника проверяем настройки: загружаем dt файл в новую пустую файловую базу, затем «Администрирование -> Региональные установки информационной базы»

Для базы-приемника выставляем аналогичные настройки, как у базы-источника, которая загружена из dt файла.

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

Бывает так, что невозможно загрузить dt файл в файловую базу — в таком случае придется либо уточнить региональные настройки у человека, который предоствил dt файл, либо перебирать настройки (устанавливать и пробовать загрузку, устанавливать и пробовать загрузку, и т.д. до успеха).

Источник

Национальные настройки информационной базы не соответствуют настройкам базы данн

БП 2.0 Файловая. Платформа: (8.3.8.1747)
Вчера работала.
Сегодня с чего-то появилась ошибка:
Национальные настройки информационной базы не соответствуют настройкам базы данных. Для исправления запустите Конфигуратор.
При входе в Конфигуратор выходит ошибка «Ошибочное имя локализации»
chdbfl.exe ошибок нет.
Пробовал на разных компах, на разных платформах. Результат один и тот же.
Tool_1CD.exe файл открывает и вот что пишет:
Версия базы 8.2.14.0
Locale ru_RU
Количество таблиц 1887

Я видел эту тему. У меня стоит в настройках Россия/Русский.
Я попробовал на нескольких компьютерах везде стоит Россия/Русский.

И тот случай отличается от моего тем что после текста «Ошибочное имя локализации» у меня ничего нет, а там «rm-CH»

Попробуйте на одном из компов переустановить платформу, выбрав в процессе установки региональные настройки «наоборот», если вы выбирали «системные установки», то выберите «русский», если «русский», то «системные», и попробуйте войти в конфигуратор.

Если сможете чем-нибудь добраться до таблицы Params, попробуйте поискать в ней. Сам такое ни разу не делал, так что вряд-ли подскажу как.

Ихахаха, в косячном файле через Hex редактор просто заменил странную строку в BinaryData на
<«ru_RU»,0,0,»»,-1,»»,»»,»»,»»,1>.

Чекдбфл прошел, ТИИ, прошел. Сейчас запустил перепровдение всех документов.

Похоже на физическое повреждение файла с базой.

Если есть заведомо исправная рабочая или демо база того же релиза — выгрузите с нее cf и попробуйте обновить копию базы через поддержка — обновление — выбор файла вручную. Если не будет «конфигурации идентичны», то есть ещё повреждения. Или выйдет очередное обновление — попробуйте его накатить на копию.

Настройте ежедневный бэкап папки с базой любыми подручными средствами — программой, скриптом, батником с вызовом архиватора. Подняли бы бэкап и всё )

Источник

Как решить ошибку национальных настроек информационной базы в 1C

«Национальные настройки информационной базы (ИБ) не соответствуют настройкам базы данных» — распространенная ошибка в работе систем 1С.

Для исправления советуют запустить Конфигуратор, однако и там при загрузке базы из dt-файла (файл, который можно получить при создании копии базы через Конфигуратор, с помощью которого можно восстановить копию базы) выскочила ошибка:

«Ошибка установки или изменения национальных настроек информационной базы»

«Порядок сортировки не поддерживается базой данных».

Для базы-приемника проверяем настройки: «Администрирование -> Региональные установки информационной базы».

Для базы-источника проверяем настройки: загружаем dt-файл в новую пустую файловую базу, затем «Администрирование -> Региональные установки информационной базы».

Как видим, настройки отличаются.

Решение

Для базы-приемника выставляем настройки, аналогичные базе-источнику, которая загружена из dt-файла.

Не баг, а фича: странное поведение языков программирования

Бывает так, что невозможно сменить региональные настройки базы-приемника.

Тогда приходится менять настройки в отдельной среде (другой сервер или другая СУБД, другая версия платформы 1С), в которой загружаем базу из dt-файла, меняем настройки на нужные, после чего выгружаем базу в dt-файл и загружаем в базу-приемник.

Бывает так, что невозможно загрузить dt-файл в файловую базу.

В таком случае придется либо уточнить региональные настройки у человека, который предоставил dt-файл, либо перебирать настройки -устанавливать и пробовать загрузку и т.д. до успеха.

Причина может быть в банальной смене свойства «Язык — Русский» в панели управления Windows -> «Язык и региональные стандарты».

Эта настройка может поменяться на, к примеру, «Русский — Молдова » (раскладка клавиатуры), и этого будет достаточно для того, чтобы произошел подобный сбой.

Как вариант профилактики:

— указать русский в качестве языка по умолчанию при установке платформы;

— запускать с ключом /Lru;

— прописать параметр запуска SystemLanguage=RU в конфигурационном файле conf.cfg;

— через конфигуратор настроить региональные установки информационной базы.

Источник

Как решить ошибку национальных настроек информационной базы в 1C

«Национальные настройки информационной базы (ИБ) не соответствуют настройкам базы данных» — распространенная ошибка в работе систем 1С.

Для исправления советуют запустить Конфигуратор, однако и там при загрузке базы из dt-файла (файл, который можно получить при создании копии базы через Конфигуратор, с помощью которого можно восстановить копию базы) выскочила ошибка:

«Ошибка установки или изменения национальных настроек информационной базы»

«Порядок сортировки не поддерживается базой данных».

Для базы-приемника проверяем настройки: «Администрирование -> Региональные установки информационной базы».

Для базы-источника проверяем настройки: загружаем dt-файл в новую пустую файловую базу, затем «Администрирование -> Региональные установки информационной базы».

Как видим, настройки отличаются.

Решение

Для базы-приемника выставляем настройки, аналогичные базе-источнику, которая загружена из dt-файла.

Не баг, а фича: странное поведение языков программирования

Бывает так, что невозможно сменить региональные настройки базы-приемника.

Тогда приходится менять настройки в отдельной среде (другой сервер или другая СУБД, другая версия платформы 1С), в которой загружаем базу из dt-файла, меняем настройки на нужные, после чего выгружаем базу в dt-файл и загружаем в базу-приемник.

Бывает так, что невозможно загрузить dt-файл в файловую базу.

В таком случае придется либо уточнить региональные настройки у человека, который предоставил dt-файл, либо перебирать настройки -устанавливать и пробовать загрузку и т.д. до успеха.

Причина может быть в банальной смене свойства «Язык — Русский» в панели управления Windows -> «Язык и региональные стандарты».

Эта настройка может поменяться на, к примеру, «Русский — Молдова » (раскладка клавиатуры), и этого будет достаточно для того, чтобы произошел подобный сбой.

Как вариант профилактики:

— указать русский в качестве языка по умолчанию при установке платформы;

— запускать с ключом /Lru;

— прописать параметр запуска SystemLanguage=RU в конфигурационном файле conf.cfg;

— через конфигуратор настроить региональные установки информационной базы.

Источник

Заказали виртуальный сервер на FastVPS, купили мини сервер 1С и пришло время установки.

В сети нашлась хорошая статья, где все по порядку:

Итак, устанавливаем минимальный CentOS, настраиваем имена хостов, DNSы и сетевые подключения и приступаем собственно к установке серверных компонентов.

1. Установка Postgre SQL server

Обновление от 03-ноя-2016: в последних версиях CentOS (у меня сегодня был 7.2.1511) отсутствует поддержка libtermcap (и как-то «иначе» реализована libreadline), из-за чего сборки с сайта 1С не устанавливаются — решил поставить сборку от Postgres Professionals https://postgrespro.ru/products/1c_build — вроде работает, но о стабильности и производительности пока судить рано. Так что у кого проблемы с libtermcap.so.2() и/ли libreadline.so.5() при установке PostgreSQL с патчами 1С, можете попробовать этот альтернативный вариант.

Для установки использовался рекомендованный (адаптированный) 1С дистрибутив, для чего потребуется скачать его из раздела поддержки пользователей сайта 1С. В моём случае это был «Дистрибутив СУБД PostgreSQL для Linux x86 (64-bit) одним архивом (RPM)», который я сохранил в /root/temp. Распаковываем архив:

[root@vm-sql01 temp]# tar -vxf postgresql-9.2.1-1.1C_x86_64_rpm.tar.gz

postgresql92-9.2.1-1.1C.x86_64.rpm

postgresql92-libs-9.2.1-1.1C.x86_64.rpm

postgresql92-server-9.2.1-1.1C.x86_64.rpm

postgresql92-contrib-9.2.1-1.1C.x86_64.rpm

[root@vm-sql01 temp]#

Устанавливаем в следующей последовательности:

yum install postgresql92-libs-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-server-9.2.1-1.1C.x86_64.rpm

yum install postgresql92-contrib-9.2.1-1.1C.x86_64.rpm

Все недостающие зависимости (пакеты) будут установлены в процессе установки этих rpm, хотя на сайте 1С рекомендуют предварительно установить пакеты readline, libtermcap, krb5-libs и openssl, но в моём случае они либо уже были установлены, либо не были обнаружены в репозиториях.

2. Первый запуск Postgre SQL server

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

[root@vm-sql01 pgsql]# su postgres -c ‘/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data —locale=ru_RU.UTF-8’

Файлы, относящиеся к этой СУБД, будут принадлежать пользователю «postgres».

От его имени также будет запускаться процесс сервера.

Кластер баз данных будет инициализирован с локалью «ru_RU.UTF-8».

Кодировка БД по умолчанию, выбранная в соответствии с настройками: «UTF8».

Выбрана конфигурация текстового поиска по умолчанию «russian».

исправление прав для существующего каталога /var/lib/pgsql/9.2/data… ок

создание подкаталогов… ок

выбирается значение max_connections… 100

выбирается значение shared_buffers… 32MB

создание конфигурационных файлов… ок

создание базы template1 в /var/lib/pgsql/9.2/data/base/1… ок

инициализация pg_authid… ок

инициализация зависимостей… ок

создание системных представлений… ок

загрузка описаний системных объектов… ок

создание правил сортировки… ок

создание преобразований… ок

создание словарей… ок

установка прав для встроенных объектов… ок

создание информационной схемы… ок

загрузка серверного языка PL/pgSQL… ок

очистка базы данных template1… ок

копирование template1 в template0… ок

копирование template1 в postgres… ок

ВНИМАНИЕ: используется проверка подлинности «trust» для локальных подключений.

Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,

—auth-local или —auth-host при следующем выполнении initdb.

Готово. Теперь вы можете запустить сервер баз данных:

/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data

или

/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start

-bash-4.1$

Или тот же вывод на английском языке:

[root@vm-sql01 ~]# su postgres -c ‘/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data —locale=ru_RU.UTF-8’

could not change directory to «/root»

The files belonging to this database system will be owned by user «postgres».

This user must also own the server process.

The database cluster will be initialized with locale «ru_RU.UTF-8».

The default database encoding has accordingly been set to «UTF8».

The default text search configuration will be set to «russian».

fixing permissions on existing directory /var/lib/pgsql/9.2/data … ok

creating subdirectories … ok

selecting default max_connections … 100

selecting default shared_buffers … 32MB

creating configuration files … ok

creating template1 database in /var/lib/pgsql/9.2/data/base/1 … ok

initializing pg_authid … ok

initializing dependencies … ok

creating system views … ok

loading system objects’ descriptions … ok

creating collations … ok

creating conversions … ok

creating dictionaries … ok

setting privileges on built-in objects … ok

creating information schema … ok

loading PL/pgSQL server-side language … ok

vacuuming database template1 … ok

copying template1 to template0 … ok

copying template1 to postgres … ok

WARNING: enabling «trust» authentication for local connections

You can change this by editing pg_hba.conf or using the option -A, or

—auth-local and —auth-host, the next time you run initdb.

Success. You can now start the database server using:

/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data

or

/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start

[root@vm-sql01 ~]#

Или второй, более простой, но не всегда дающий необходимый результат (зависит от региональных настроек сервера, но у меня иногда приводивший к установке базы данных без поддержки необходимого collation ru_RU.UTF-8):

[root@vm-sql01 pgsql]# service postgresql-9.2 initdb

Инициализируется база данных: [ OK ]

[root@vm-sql01 pgsql]#

В результате была создана структура базы данных (с настройками) в /var/lib/pgsql/9.2/data. Хочу обратить особое внимание на конструкцию —locale=ru_RU.UTF-8, которую необходимо указать при инициализации, иначе сервер может быть инициализирован с неверным набором языковых параметров, что в конечном итоге приведёт к сообщениям

Ошибка установки или изменения национальных настроек информационной базы

Порядок сортировки не поддерживается базой данных

по причине:

Порядок сортировки не поддерживается базой данных

при установке информационной базы. Теперь можно настраивать автоматический запуск sql-сервера и, собственно, запускать его:

[root@vm-sql01 temp]# chkconfig postgresql-9.2 on

[root@vm-sql01 temp]# service postgresql-9.2 start

Запускается служба postgresql-9.2: [ OK ]

[root@vm-sql01 temp]#

Всё. Для локальных подключений сервер настроен. В моём случае сервер 1С и сервер SQL находятся на разных машинах, поэтому потребуется настроить и удалённые подключения с авторизацией.

В случае каких-то проблем, читаем содержимое файлов:

/var/lib/pgsql/9.2/pgstartup.log

/var/lib/pgsql/9.2/data/postgresql-*.log

Для повышения быстродействия документация PostgreSQL рекомендует как минимум унести журнал /var/lib/pgsql/9.2/data/pg_xlog на отдельный физический том и создать симлинк на него в исходном месте; из личных наблюдений — надо ещё и значительно увеличить размер используемой памяти… но необъятное не охватить, поэтому за статьями по оптимизации работы PostgreSQL для 1С предлагаю обращаться в поисковые системы, а оттуда — на профильные форумы.

3. Настройка пользователей (ролей) Postgre SQL server

Для управления PostgreSQL на начальном этапе потребуется сменить текущего пользователя на postgres и создать нового пользователя из командной строки:

[root@vm-sql01 temp]# su — postgres

-bash-4.1$ cd /usr/pgsql-9.2/bin

-bash-4.1$ createuser —interactive -P

Введите имя новой роли:server1c

Введите пароль для новой роли:

Повторите его:

Должна ли новая роль иметь полномочия суперпользователя? (y — да/n — нет) n

Новая роль должна иметь право создавать базы данных? (y — да/n — нет) y

Новая роль должна иметь право создавать другие роли? (y — да/n — нет) n

-bash-4.1$ exit

logout

[root@vm-sql01 temp]#

В принципе, для обслуживания полезно иметь пользователя с правами суперпользователя — создавать его можно тем же путём.

Теперь осталось разрешить удалённое подключение с авторизацией — для этого в файле /var/lib/pgsql/9.2/data/pg_hba.conf потребуется заменить значение ident на md5 в строке «host all all 0.0.0.0/0 md5» и перезапустить сервис.

Не следует забывать и про настройки iptables — для работы Postgre SQL необходимо открыть как минимум порт tcp 5432, хотя привычнее (да и проще) объявить сетевой интерфейс «внутренним» (разрешить все подключения на интерфейсе).

Для управления сервером потребуется pgAdmin, который можно установить из репозиториев используемого для административных целей линукса, либо скачать с сайта проекта.

4. Установка компонентов сервера 1С

Внимание!!! Для избежания проблем с зависимостями, желательно, чтобы разрядность сервера 1С совпадала с разрядностью используемого дистрибутива Linux! Иначе (если ставим 32-битный 1С на 64-битный Linux), при входе в базу, можно получить сообщение типа «Ошибка загрузки библиотеки libWand.so по причине:Библиотека не обнаружена. Часть функций будет недоступна.» и клиенты не будут запускаться (хотя конфигуратор — будет). В принципе, я с этой проблемой справился на CentOS 7 (которой не выпускают больше в 32-битном исполнении) — просто поставил не только ‘ImageMagick’, но и ‘ImageMagick.i686’ (yum install ImageMagick.i686) — всё заработало (хоть и притянуло за собой гору зависимостей).

Первый шаг установки сервера 1С мало отличается от аналогичного этапа с SQL-сервером — распаковать скачанный дистрибутив сервера командой tar -vxf rpm64.tar.gz. В итоге получим файлы:

1C_Enterprise83-common-8.3.3-715.x86_64.rpm — основные файлы 1С (включая русский и английский интерфейсы)

1C_Enterprise83-common-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-server-8.3.3-715.x86_64.rpm — сервер 1С

1C_Enterprise83-server-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-ws-8.3.3-715.x86_64.rpm — компоненты вэб-сервера 1С

1C_Enterprise83-ws-nls-8.3.3-715.x86_64.rpm — дополнительные языковые модули

1C_Enterprise83-crs-8.3.3-715.i386.rpm — хранилище конфигураций (только в 32-битном комплекте)

Устанавливаем нужные пакеты командами:

yum install 1C_Enterprise83-common-8.3.3-715.x86_64.rpm

yum install 1C_Enterprise83-server-8.3.3-715.x86_64.rpm

Настраиваем автоматический запуск демона и стартуем его:

[root@vh-1c83 temp]# chkconfig srv1cv83 on

[root@vh-1c83 temp]# service srv1cv83 start

Starting 1C:Enterprise 8.3 server: Error: service failed to start!

FAILED

[root@vh-1c83 temp]# service srv1cv83 start

Starting 1C:Enterprise 8.3 server: OK

[root@vh-1c83 temp]#

Хочу обратить внимание — если сразу после установки сервис (как в приведённом примере) не стартовал, а при второй попытке старта он запустился, скорее всего не настроен DNS — об этом чуть ниже. Если верить информации с многочисленных форумов, то наш сервер уже готов обслуживать до 12 клиентов. Для работы большего числа пользователей, необходимо установить лицензию сервера — либо в виде USB HASP и драйвера, либо в виде электронной лицензии. Про установку аппаратных ключей я уже писал, а установка программных лицензий достаточно проста: запускаем конфигуратор (с клиентской машины; кластер уже должен быть настроен и должна быть информационная база), вызываем «Сервис» — «Получение лицензии», вводим номер комплекта (с коробки или «Регистрационный номер» с карточки из конверта «Пинкоды программной лицензии») и пин-код (с той самой карточки из конверта), ставим галочку «Установка на сервер», вводим имя сервера в соответствующем поле, нажимаем «Далее», говорим, что это — «Первый запуск», заполняем форму «Владелец лицензии» (к стати, я не понял что писать в полях «Фамилия», «Имя», «Отчество» — то ли ответственного за эксплуатацию, то ли генерального директора — оставил поля пустыми, и оно получило лицензию, не ругнувшись), «Далее», «Автоматически» — профит! в /var/1C/licenses на сервере появился файлик XXXXXXXXXXXXXX.lic и серверу «стало хорошо» (если это была многопользовательская лицензия, то клиентам тоже «станет хорошо», т.к. они будут получать лицензии на сервере).

Для работы с графическими объектами и экспорта в xls, могут потребоваться дополнительные пакеты: ImageMagick, freetype (входит в зависимости ImageMagick), libgsf (входит в зависимости ImageMagick), corefonts (отсутствует в репозитариях CentOS — см. раздел 6); для «ТАКСИ» и «Управляемого приложения» они необходимы, для классического толстого клиента вроде бы не особо нужны, но 1С всё равно ругается на их отсутствие, хоть и работает.

По умолчанию сервер 1С слушает порт tcp 1541(1540) и для соединений использует диапазон портов 1560-1691.

5. Настройка экземпляра (кластера) сервера 1С

Информации о наличии оснастки управления сервером 1С для Linux мне не попадалось, так что для управления сервером будем использовать традиционную оснастку mmc для Windows «Администрирование серверов 1С:Предприятия», которую следует поставить из дистрибутива технологической платформы для Windows.

В этом месте на тестовом сервере возникли трудности — кластер по умолчанию отсутствовал, а при попытке создания нового кластера, ragent аварийно завершал работу с сообщением Sep 3 21:29:04 vh-1c83 kernel: ragent[1879]: segfault at 8 ip 00007f56473c9fd4 sp 00007f563b7b14a0 error 4 in rserver.so[7f56472db000+70e000]… странно, но если верить форумам, на CentOS у многих сервер 1С 8.3 ставится некорректно — не создаётся начальная конфигурация, включающая «Кластер по умолчанию». Краткий анализ ситуации выявил, что настройки кластера по умолчанию не были сгенерированы полностью и не попали в /home/usr1cv8/.1cv8/1C/1cv8/.

При попытке подложить файлы с рабочего сервера на неудачный, сервис 1С не запускается абсолютно без каких-либо диагностических сообщений — подобное поведение я видел при проблемах (неверных контекстах) SELinux, но в данном случае никаких отказов в audit.log не обнаружилось.

В результате детального изучения проблемы с применением strace удалось выяснить, что агент сервера при запуске ищет настройки по пути ~/.1cv8/1C/1cv8/ (в домашнем каталоге запустившего пользователя) и если не находит, пытается создать настройки кластера по умолчанию, для чего ему нужно имя хоста (выяснено экспериментально), и если верить «Руководству администратора», нужен корректно работающий DNS; экспериментально же был установлен факт, что сначала ragent читает файл /etc/hosts, затем обращается к DNS-серверу, а затем вызывает uname и снова лезет в hosts и к DNS и если не находит сопоставления, аварийно завершается. Итак, для нормального запуска потребуется полноценная и правильно настроенная сетевая инфраструктура, ну а в отсутствии работающего DNS достаточно дописать строчку в /etc/hosts и привести его примерно к такому виду:

127.0.0.1 localhost

192.168.122.227 vh-1c83.test.lan vh-1c83

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

За дальнейшими инструкциями пока отсылаю к своей статье про 8.2 — принципиальных отличий пока нет. Единственное замечание — при создании новой информационной базы, если указывать пользователя подключения к базе данных не с правами суперпользователя (а с набором прав из пункта 3), информационная база не создавалась, а в /var/lib/pgsql/9.2/data/pg_log/postgresql-Xxx.log наблюдались сообщения:

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: нет доступа к языку c

ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS ‘$libdir/plpgsql’ LANGUAGE C

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: ошибка синтаксиса (примерное положение: «application») в символе 24

ОПЕРАТОР: lock table pg_class in application share mode

ПРЕДУПРЕЖДЕНИЕ: нет незавершённой транзакции

ОШИБКА: тип «mvarchar» не существует в символе 31

ОПЕРАТОР: create table Config (FileName mvarchar(128) not null, Creation timestamp not null, Modified timestamp not null, Attributes int not null, DataSize int8 not null, BinaryData bytea not null, PartNo int not null, PRIMARY KEY (FileName, PartNo))

ОШИБКА: нет прав для изменения параметра «lc_messages»

ОПЕРАТОР: SET lc_messages to ‘en_US.UTF-8’;

ОШИБКА: нет доступа к языку c

ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS ‘$libdir/plpgsql’ LANGUAGE C

После подключения с учётными данными суперпользователя БД, сообщения изменились на англоязычные и проблемы исчезли. Судя по всему, если на сервере установлен язык по умолчанию en_US, данного казуса не случится, но это — не проверенная информация, а лишь предположение, сделанное по прочтении чужой статьи про 8.1 и праздных раздумий =)

Ещё одна странность — если создать пустую SQL базу не из шаблона1 (см. официальную документацию по 1С), и попытаться ей указать на этапе создания ИБ, то всё равно получим сообщение «ОШИБКА: тип «mvarchar» не существует (символ 31)»/»ERROR: type «mvarchar» does not exist at character 31″, но мне так и не удалось создать из требуемого шаблона БД — валились разные ошибки, но если пользователя sql, от которого создаётся ИБ временно повысить до суперпользователя с правом создания БД, и указать создание базы данных в случае её отсутствия, то всё получается в лучшем виде, так что на этапе первичной настройки, видимо, придётся повышать пользователя до супер…

Что порадовало — теперь в 1С можно работать непосредственно из Linux, что актуально для компаний, использующих его как основную ОС в корпоративной сети (я сейчас работаю как раз в такой компании); из неожиданностей — что при установке клиента 1С, он заявляет о зависимости от сервера и требует его установки, но потом ставится, прописывает значки запуска в «Офис» — «Финансы» и работает довольно сносно (по ощущениям — чуть менее комфортно, чем 8.2 под Windows, но заметно приятнее, чем тот же 8.2 через WINE от Ethersoft).

6. Установка недостающих зависимостей

При запуске клиента к настроенному по данной инструкции серверу, появится сообщение «На сервере отсутствуют шрифты из состава Microsoft Core Fonts. Внешний вид приложения может отличаться от ожидаемого. Процедура установки описана в справочной системе…» — данное сообщение появляется достаточно редко (периодичность не выявил, но появляется точно не единожды, но и не при каждом запуске), и на работе особо не сказывается, но «для красоты» я решил пройтись по всей цепочке и поставить рекомендуемые пакеты. Всё, кроме «corefonts» поставилось из репозиториев (хотя в той самой «справочной системе» безбожно перепутаны регистры в названиях пакетов, из-за чего их идентификация оказалась весьма развлекательна), ну а шрифты я решил пересобрать (в соответствии с рекомендациями из «справочной системы») и результат прикрепляю к статье — msttcorefonts-2.5-1.noarch.rpm, заодно и сами шрифты (уже переименованные в нижний регистр, как происходит при сборке rpm рекомендованным скриптом) — msttcorefonts.tar.gz — содержимое этого архива рекомендуют распаковать в /home/usr1cv8/.fonts (не забыв сменить владельца как на папку, так и на файлы!), если нет возможности установить предложенный .rpm

Кроме «ImageMagick» и шрифтов, для возможности сохранения в табличные файлы (кроме xls — его я пока не заставил формироваться, хотя xlsx формируется), на клиенте должны быть установлены пакеты «libMagickWand5», «libgomp1», «liblcms2-2» и «libbz2-1» — на ряде машин они отсутствовали. При чём той же разрядности, что и сервер 1С (см. п. 4).

7. Настройка аппаратного hasp для виртуализированного сервера 1С (работающего на виртуальной машине KVM)

Не планировал описывать эту процедуру, но раз уж столкнулся с такой ситуацией, опишу… Итак, на этот раз я использовал драйвер от «Alladin Knowledge Systems USB HASP», предоставляемый компанией Sentinel — мне попались две версии:

2878061 сен 11 2012 aksusbd-2.0-1.i386.rpm — с сайта aladdin-rd.ru

3009880 авг 6 16:35 aksusbd-2.2-1.i386.rpm — с сайта safenet-inc.com

Можно воспользоваться драйвером эзерсофт — окончательный выбор следует делать из опыта практической эксплуатации.

Наиболее правильная (на мой взгляд) последовательность действий:

а) убедиться, что на хост-машине драйвер HASP не установлен;

б) установить выбранный драйвер USB HASP4 на виртуальном сервере;

в) выяснить список подключенных USB-устройств к хост-машине

[root@vh01 files]# ls -R /dev/bus/usb

/dev/bus/usb:

001

002

003

004

/dev/bus/usb/001:

001

002

/dev/bus/usb/002:

001

/dev/bus/usb/003:

001

/dev/bus/usb/004:

001

[root@vh01 files]#

г) подключить USB-HASP к хост-машине и выяснить адрес ключа:

[root@vh01 files]# ls -R /dev/bus/usb

/dev/bus/usb:

001

002

003

004

/dev/bus/usb/001:

001

002

/dev/bus/usb/002:

001

/dev/bus/usb/003:

001

/dev/bus/usb/004:

001

002 <==== это наш ключ — раньше его не было

[root@vh01 files]#

д) используя любой из способов (я использовал Virtual Manager на удалённой машине) добавить «USB Host Device» с найденным адресом (в моём примере — 004:002) к виртуальной машине 1С — может потребоваться выключение и включение машины (я добавлял устройство на выключенную машину).

Собственно, всё — на CentOS 6.4 x64/i686 всё работает (были багрепорты про CentOS 6.0/6.1, но вроде всё починили). Если при запуске виртуалки выдаётся сообщение о занятости устройства, скорее всего подцепился драйвер на хост-машине (так писали на паре форумов, хотя мне эту ситуацию воспроизвести не получилось — даже с установленным драйвером на сервере устройство мапилось корректно). Естественно, если переставить ключ в другой порт USB, придётся перенацеливать и виртуальную машину!

И напоследок, коротко о том «что где лежит»:

/etc/sysconfig/srv1cv83 — файл конфигурации сервера 1С

/home/usr1cv8/.1cv8/1C/1cv8/1cv8wsrv.lst — файл, в котором хранятся основные свойства сервера — например, учётные данные администратора сервера, зарегистрированые кластеры и т.п.

/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst — файл, в котором хранятся свойства кластера по умолчанию

/opt/1C/v8.3/x86_64/ — (вместо «x86_64» может быть «i386» — в зависимости от архитектуры системы) исполняемые файлы и сопутствующие ресурсы сервера (и клиента) 1С

/var/1C/licenses — здесь лежат файлы электронных ключей лицензий

8. Настройка локального репозитория 1С для удобства обновления платформы 

В процессе эксплуатации 1С нередко приходится обновлять платформу. Если всё установлено по приведённой выше инструкции, это вызывает определённые неудобства — надо останавливать сервис, удалять старые пакеты, ставить новые… не знаю — мне это ещё в винде надоело смертельно. Linux предлагает очень удобный механизм пакетного обновления из локального репозитория — всё, что нужно — это выбрать место, где будут лежать обновки: для одиночного сервера, к которому все ходят только через web-интерфейс, это может быть /root/repo (всё равно обновление под рутом идёт), ну а в общем случае — хоть /var/www/1c-repo — главное, чтобы все, кому он нужен, его видели. Далее надо установить пакет ‘createrepo’ (yum install createrepo) — за собой он притащит немало зависимостей, но не смертельно. Теперь командой ‘createrepo /root/repo’ (где «/root/repo» — выбранный путь хранения репозитория) создаём его «описание» и можно пользоваться.

Затем создаём файл описания нашего репозитория и помещаем его в каталог описаний репозиториев (для CentOS это /etc/yum.repos.d). Пример конфига локального файлового репозитария:

[root@1c yum.repos.d]# cat local-1c.repo

[local-1c]

name=1C Enterprise

#baseurl=http://inhost.firm.lan/repo

baseurl=file:///root/repo

gpgcheck=0

enabled=1

По-моему, разъяснять что за что отвечает, особого смысла нет. Единственное, что важно — сразу yum его может не увидеть — в этой ситуации поможет очистка его кэшей (yum clean all).

Всё. Теперь если надо обновиться, то помещаем новые файлы дистрибутива 1С рядом со старыми, повторяем ‘createrepo /root/repo’ вызываем ‘yum update’ — и всё — платформа пошла обновляться! Естественно, за сохранностью и защищённостью своего репозитория надо следить, так как GPG у нас выключен, и это всё же дыра в безопасности, хоть и не особо толстая…

Понравилась статья? Поделить с друзьями:
  • Ошибка установки касперского 27300
  • Ошибка установки картриджа печати ricoh sp220
  • Ошибка установки кал оф дьюти
  • Ошибка установки или изменения параметров журнала регистрации 1с
  • Ошибка установки или изменения административных параметров информационной базы