При использовании платформы 1С:Предприятие на удаленном Linux VDS сервере (в связке с PostgreSQL и веб-сервером Apache) многие администраторы и разработчики сталкиваются с замедлением процесса обновления. Попытка выгрузить и загрузить полный информационный архив (файл .dt) или выполнить полную загрузку базы через удаленный Конфигуратор с Windows-клиента по тонкому интернет-каналу может затянуться на долгие часы. Рассмотрим, с чем связаны такие задержки и какие варианты обновления баз 1С на серверном Linux существуют.
Выясним причину медленной работы Конфигуратора при удаленном подключении к базе на VDS. Проблема кроется в особенностях сетевого взаимодействия платформы:
.dt или основного файла конфигурации .cf требует передачи сотен мегабайт по исходящему каналу клиента.Если нет возможности изменять инфраструктуру Linux-сервера, разберем самый простой способ уменьшения сетевого трафика — использование файлов обновлений .cfu вместо полных файлов конфигурации .cf или архивов .dt.
Рассмотрим по шагам данный подход:
.cfu для текущей версии конфигурации. Размеры файлов .cfu обычно в десятки раз меньше полных дистрибутивов .cf..cfu и выполним последовательное обновление метаданных и структуры базы данных.Для выполнения обновления непосредственно на стороне Linux VDS сервера без передачи тяжелых файлов по сети можно применить пакетный запуск Конфигуратора 1С. Посмотрим, как это реализовать на сервере без графической оболочки (GUI).
Исполняемые файлы Конфигуратора 1С для Linux требуют наличия библиотек графического сервера X11. Чтобы запустить его в консоли без установки полноценного рабочего стола, воспользуемся утилитой Xvfb (X Virtual Framebuffer), которая эмулирует графический дисплей в оперативной памяти.
Проанализируем порядок действий:
Xvfb на Linux-сервер через пакетный менеджер вашей ОС..cfu или .cf на VDS сервер по протоколу SFTP или SSH.Xvfb и вызовем бинарный файл Конфигуратора 1cv8 в пакетном режиме:
# Запуск виртуального дисплея
Xvfb :99 -screen 0 1024x768x24 &
export DISPLAY=:99
# Пакетный запуск обновления конфигурации
/opt/1C/v8.3/x86_64/1cv8 DESIGNER /S "vds-server\base_name" /N "Administrator" /P "password" /UpdateCfg "/path/to/update.cfu" /UpdateDBCfg
Обратите внимание: При обновлении некоторых типовых конфигураций через Linux могут возникать ошибки, если сценарии обновления используют вызовы Windows COM-объектов. В таких случаях вызов обработчиков обновления требует запуска базы в режиме клиента на платформе Windows.
В платформе 1С:Предприятие 8.3 предусмотрена утилита командной строки ibcmd, которая позволяет выполнять операции с конфигурациями без необходимости запуска GUI и X11.
Рассмотрим применение ibcmd для автономной работы с базой на сервере:
.cf на сервер VDS.Если на сервере Linux невозможно запустить Конфигуратор или возникают ошибки, связанные с отсутствием COM-компонентов, разберем вариант с использованием локального тестового контура:
pg_dump.pg_dump и восстановим его на сервере VDS через pg_restore.Этот метод исключает медленную передачу данных через Конфигуратор 1С по сети и использует стандартные механизмы сжатия и восстановления PostgreSQL.