November 8, 2019

Перевод файловой 1С в клиент-серверный режим

По умолчанию, база данных 1С:Предприятие хранится в файловом виде. Файловый формат представляет собой единый файл с расширением “.dt”, который выгружается при помощи конфигуратора. Фактически, данные внутри хранятся все файлы в зашифрованном виде.
Данный тип хранения данных имеет ряд недостатков. Перечислим некоторые из них:

  • Размер базы данных, при которых приложение работает быстро – 4 Гб. После этого база начинает «виснуть»;
  • Размер базы растёт пропорционально количеству пользователей – при большом количестве пользователей и базы данных работа приложения существенно замедляется, из-за чего файловая база удобна для работы 3-5 пользователям;

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

Windows Server 2012;
1C: Предприятие 8.3;
PostgreSQL 9.6;
Драйвер Postgres для 1C;

Представим, что у нас уже развёрнута рабочая система 1С:Предприятие на Windows Server. Скачаем необходимое ПО:

PostgreSQL – заходим на официальный сайт (https://www.postgresql.org/download/)

Скачиваем сборку для Windows

Устанавливаем всё необходимое:

Внимательно проследите, чтобы все галочки стояли на месте

После успешной установки скачиваем драйвер 1С для PostgreSQL: (https://1c.postgres.ru)

Данная разработка является частью проекта postgres pro

При скачивании не забываем обратить внимание на архитектуру операционной системы (х64/х32)

Установка всех необходимых компонентов была произведена.

Открываем 1С в режиме конфигуратора:

Теперь нам необходимо сделать резервную копию файловой базы данных. Резервируем при помощи пунктов меню «Администрирование > Выгрузить информационную базу...» и в открывшемся окне указываем путь для выгрузки. После успешной выгрузки, исправим возможные ошибки и некорректные данные в базе для того, чтобы экспорт произошёл без проблем. Для этого в строке меню заходим в «Администрирование > Тестирование и исправление...»
Далее, ставим все галочки, кроме пункта «Пересчёт итогов». Так же очищаем ссылки и удаляем частично потерянные данные. Нажимаем «Выполнить»

Очищаем ссылки и объекты для того, чтобы структура базы данных не была нарушена при экспорте

После успешного выполнения повторяем операцию с уже поставленной галочкой «Пересчёт итогов», убрав все остальные:

Теперь мы можем выгрузить уже подготовленную базу для дальнейшего перевода в клиент-серверный режим на Postgres.

Ранее мы уже установили сам сервер и все сопутствующую инфраструктуру к нему.

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

Для этого переходим в «Панель управления -> Программы и компоненты»

Находим «1С:Предприятие» и нажимаем «Изменить»:

В открывшемся меню установщика выбираем пункт «Изменить»:

Не путать с "Исправить"

Нас интересует компонент «Сервер 1С:Предприятие 8», так как именно он позволяет перевести систему в клиент-серверный режим. Устанавливаем компонент и все подкомпоненты.

Важно установить именно все подкомпоненты, в противном случае при работе конфигурации могут возникать ошибки

Установщик предложит указать путь к инсталлятору 1С. Указываем путь и продолжаем установку.

После успешной установки компонента в меню «Пуск» находим «Администрирование серверов 1С:Предприятие». Далее заходим в «Console Root > Central 1C:Enterprise 8.3 Servers > %Имя сервера% > Кластеры > Локальный кластер > Информационные базы», нажимаем правой кнопкой на Информационные базы, находим «Создать > Новая информационная база»

В открывшемся окне нам предлагается заполнить параметры новой информационной базы:

Разберём по пунктам:

  • Имя – Название базы данных. Его же мы и будем указывать при подключении (рекомендуется использовать латинские символы);
  • Описание – описание базы данных и для чего она служит;
  • Защищённое соединение – оставляем без изменений;
  • Сервер баз данных – указываем имя базы данных, которое будет использоваться при соединении PostgreSQL. Обратите внимание, что оно должно полностью совпадать с названием нашего сервера 1С, внутри которого была создана новая Информационная база;
  • Тип СУБД – выбираем PostgreSQL;
  • База данных – даём имя нашей базе данных;
  • Пользователь сервера БД – имя пользователя, имеющего доступ к базе данных PostgreSQL ( по умолчанию он создаётся во время установки сервера и имеет имя postgres, либо указываем уже нового пользователя, созданного позднее);
  • Пароль пользователя – пароль пользователя;

Не забываем установить галочку на пункт «Создать Базу данных в случае её отсутствия» - это позволит нам не создавать базу данных отдельно вручную, позволив 1С сделать это автоматически.

После этого заходим и проверяем, была ли создана база. В случае успешного создания база отобразится во вкладке «Информационные базы»

Далее нам необходимо проверить, была ли успешно создана база данных в PostgreSQL. Воспользуемся менеджером СУБД PgAdmin, который был установлен в комплекте с сервером. Заходим «Пуск > Все программы > PgAdmin4»

Заходим в “Servers > Databases” и в случае успешного создания база будет отображаться внутри этой вкладки:

Теперь нам необходимо добавить новую, серверную базу данных, созданную раннее в конфигуратор.

В окне запуска 1С жмём на кнопку «Добавить > Добавление в список существующей информационной базы»

В новом окне заполняем следующую информацию:

  • Наименование – собственно, имя базы данных;
  • Тип расположения базы – выбираем пункт «На сервере 1С:Предприятия», где:
    Кластер серверов – Имя сервера 1С:Предприятие (тот, внутри которого мы создали информационную базу);
    Имя информационной базы – собственно, имя информационной базы, которую мы создали внутри кластера);

Нажимаем «Далее», затем ещё раз «Далее».

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

Для этого заходим в «Конфигуратор > Администрирование > Загрузить Информационную базу..» и указыаем нашу выгруженную базу в формате “.dt”

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

Справочная информация:
https://its.1c.ru/db/metod8dev#content:1591:hdoc – размещение данных и работа с ними

https://its.1c.ru/db/metod8dev#browse:13:-1:1989:2035:2510:2536 – работа с PostgreSQL в 1С

https://postgrespro.ru/docs - расширение PostgreSQL для работы с 1С