Обновление платформы 1С:Предприятие на серверах под управлением Ubuntu — задача, которая требует внимательности и понимания особенностей взаимодействия Linux-систем с проприетарным ПО. В отличие от Windows, где процесс обновления часто сводится к запуску установщика, в Ubuntu необходимо учитывать зависимости, права доступа и совместимость версий. Эта инструкция поможет администраторам и разработчикам выполнить обновление без потери данных и с минимальным простоем системы.
Особенность работы с 1С на Linux заключается в том, что платформа здесь функционирует через Wine или native-версии (для серверных компонентов). Последнее обновление архитектуры 1С для Linux (версия 8.3.23+) внесло изменения в механизм лицензирования и работу с postgresql, что требует дополнительной настройки. Мы рассмотрим оба варианта: обновление через deb-пакеты и ручную установку с официального сайта.
Важно: если ваша инфраструктура использует кластер серверов 1С или интегрирована с внешними системами (например, ATOL, СБИС), предварительно проверьте совместимость новых версий платформы с этими сервисами. Некоторые модули (например, обмен с ЕГАИС) могут требовать обновления драйверов.
1. Подготовка системы перед обновлением
Первый шаг — создание резервной копии текущей конфигурации. Это критично, так как ошибки при обновлении могут привести к неработоспособности баз данных. В Ubuntu для этого используйте:
sudo -u postgres pg_dumpall > /backup/1c_backup_$(date +%Y-%m-%d).sql
sudo tar -czvf /backup/1c_config_$(date +%Y-%m-%d).tar.gz /opt/1C /var/1C
Обратите внимание на права доступа к папкам. Платформа 1С в Linux часто устанавливается в /opt/1C/v8.3, но путь может отличаться. Проверьте текущую версию платформы командой:
/opt/1C/v8.3/x86_64/1cv8 --version
Также убедитесь, что на сервере достаточно свободного места. Обновление требует временных файлов объёмом до 1.5-2 ГБ (в зависимости от версии). Проверьте свободное пространство:
df -h /opt
Создать резервную копию баз PostgreSQL|Скопировать конфигурационные файлы 1С|Проверьте свободное место на диске (минимум 2 ГБ)|Запишите текущую версию платформы 1С|Остановите все рабочие процессы 1С (pkill -9 1cv8)-->
Если ваш сервер использует SELinux или AppArmor, временно отключите их на время обновления, так как они могут блокировать доступ к системным файлам. После обновления не забудьте вернуть настройки безопасности.
⚠️ Внимание: Если вы используете лицензионный ключ HASP (аппаратный или программный), убедитесь, что он поддерживает новую версию платформы. Некоторые старые ключи (выпущенные до 2020 года) могут не работать с 1С 8.3.23+.
2. Способы обновления: официальные пакеты vs ручная установка
Существует два основных метода обновления 1С на Ubuntu:
- 📦 Через официальные deb-пакеты (рекомендуется для большинства пользователей). Подходит для системных администраторов, которые предпочитают управлять ПО через
apt. - 🛠️ Ручная установка с сайта 1С. Актуально, если нужна конкретная версия или бета-релиз.
Рассмотрим оба варианта подробно.
2.1. Обновление через deb-пакеты (репозиторий 1С)
Официальный репозиторий 1С для Linux содержит актуальные версии платформы. Чтобы подключить его, выполните:
wget https://repo.1c.ru/keys/1c-archive-keyring.gpg -O /usr/share/keyrings/1c-archive-keyring.gpg
echo"deb [signed-by=/usr/share/keyrings/1c-archive-keyring.gpg] https://repo.1c.ru/deb stable main" | sudo tee /etc/apt/sources.list.d/1c.list
sudo apt update
После этого установите или обновите платформу:
sudo apt install --only-upgrade 1c-enterprise83
Если требуется конкретная версия (например, 8.3.23.1869), укажите её явно:
sudo apt install 1c-enterprise83=8.3.23.1869
2.2. Ручная установка с сайта 1С
Скачайте нужную версию с официального сайта (раздел"Технологическая платформа для DEB-based дистрибутивов"). Например, для версии 8.3.24.1259:
wget https://releases.1c.ru/version_files/8.3.24.1259/debian11_amd64/1c-enterprise83_8.3.24-1259_amd64.deb
sudo dpkg -i 1c-enterprise83_8.3.24-1259_amd64.deb
Если возникают ошибки зависимостей, выполните:
sudo apt --fix-broken install
Официальные deb-пакеты|Ручная установка с сайта 1С|Через Docker-контейнеры|Другой способ-->
3. Обновление серверных компонентов (ragent, rmngr, ws)
Если вы используете кластер серверов 1С, необходимо обновить не только платформу, но и серверные утилиты: ragent (агент сервера), rmngr (менеджер кластера) и ws (веб-сервер). Процесс отличается от обновления клиентской части.
Остановите все сервисы 1С:
sudo systemctl stop srv1cv83
sudo systemctl stop rphost
Обновите пакеты (для deb-репозитория):
sudo apt install --only-upgrade 1c-enterprise83-server 1c-enterprise83-ws 1c-enterprise83-crs
Для ручной установки скачайте соответствующие пакеты:
- 1c-enterprise83-server_*.deb (основной сервер)
- 1c-enterprise83-ws_*.deb (веб-сервер)
- 1c-enterprise83-crs_*.deb (кластер серверов)
После обновления перезапустите сервисы:
sudo systemctl start rphost
sudo systemctl start srv1cv83
⚠️ Внимание: При обновлении кластера с версии 8.3.20 на 8.3.23+ может потребоваться миграция конфигурационных файлов. Используйте утилиту /opt/1C/v8.3/x86_64/rac cluster migrate для автоматической конвертации.
4. Проверка работоспособности после обновления
После обновления необходимо проверить:
- Запуск платформы в терминале:
/opt/1C/v8.3/x86_64/1cv8 - Подключение к базе данных:
/opt/1C/v8.3/x86_64/1cv8 DESIGNER /S"postgres://user:password@localhost/dbname" - Работу веб-клиента (если используется):
curl -I http://localhost/1cws
Если возникают ошибки подключения к PostgreSQL, проверьте совместимость версий. Начиная с 1С 8.3.21, требуется PostgreSQL 12+. Обновите СУБД при необходимости:
sudo apt install postgresql-15
sudo pg_upgradecluster 12 main
Для диагностики проблем используйте логи:
- 📄 Логи платформы:
/var/log/1C/ - 📄 Логи кластера:
/var/log/1C/srv1cv83/ - 📄 Логи PostgreSQL:
/var/log/postgresql/
sudo apt install libgsf-1-114-->
5. Решение типичных ошибок после обновления
Даже при правильном обновлении могут возникать проблемы. Рассмотрим самые распространённые:
| Ошибка | Причина | Решение |
|---|---|---|
Не найдена библиотека libnss3.so |
Отсутствует зависимость для работы с SSL | |
Ошибка лицензии: -100 |
Несовместимость HASP-ключа с новой версией | Обновите драйвер ключа или используйте программную лицензию |
Failed to connect to PostgreSQL |
Несовпадение версий 1С и PostgreSQL | Обновите PostgreSQL до 12+ или откат платформы |
Segmentation fault (core dumped) |
Повреждение библиотек или конфликт версий | Переустановите платформу с очисткой кэша (rm -rf ~/.1cv8/) |
Если после обновления не работают печатные формы или отчёты, проверьте наличие шрифтов Microsoft Core Fonts:
sudo apt install ttf-mscorefonts-installer
Для ошибок, связанных с wine (если используете клиент под Wine), обновите его до последней версии:
sudo apt install --install-recommends winehq-stable
Что делать если после обновления не открываются базы?
Если базы не открываются с ошибкой "Формат базы данных не поддерживается", это означает, что версия файловой базы (например, *.1CD) старше, чем текущая платформа. В этом случае:
1. Сделайте резервную копию файла базы.
2. Попробуйте открыть её в Конфигураторе с флагом --RepairAndDumpIB.
3. Если не помогает, используйте утилиту chdbfl для конвертации форматов.
4. В крайнем случае выполните выгрузку/загрузку данных через DT-файл в новой базе.
6. Оптимизация производительности после обновления
Новые версии 1С часто требуют больше ресурсов. После обновления рекомендуется:
- ⚡ Настроить swappiness (если сервер использует SSD):
echo"vm.swappiness=10" | sudo tee -a /etc/sysctl.confsudo sysctl -p
- 🖥️ Увеличить лимиты открытых файлов для пользователя
usr1cv8:echo"usr1cv8 soft nofile 65536" | sudo tee -a /etc/security/limits.confecho"usr1cv8 hard nofile 65536" | sudo tee -a /etc/security/limits.conf
- 🗃️ Очистить кэш 1С (особенно если обновлялись с версии 8.3.18 и ниже):
rm -rf /home/usr1cv8/.1cv8/rm -rf /tmp/1C*
Для кластерных установок проверьте настройки пула соединений в /etc/1c/conf.d/srv1cv83.conf. Оптимальные параметры для сервера с 8 ГБ ОЗУ:
max_memory = 6144
max_connections = 50
cache_size = 2048
Если используете Nginx как фронтенд для веб-клиента 1С, обновите конфигурацию прокси:
location /1cws/ {
proxy_pass http://localhost:8080/1cws/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
7. Откат обновления при неудаче
Если обновление прошло с критическими ошибками, можно вернуть предыдущую версию. Для этого:
- Остановите все сервисы 1С:
sudo systemctl stop srv1cv83 rphost apache2 - Удалите текущую версию:
sudo apt remove 1c-enterprise83* - Установите предыдущую версию из локального кэша:
sudo apt install 1c-enterprise83=8.3.22.1830(замените номер версии на вашу предыдущую)
- Восстановите конфигурационные файлы из резервной копии:
sudo tar -xzvf /backup/1c_config_2026-05-01.tar.gz -C /
Если вы обновляли PostgreSQL и возникли проблемы с базами, выполните откат СУБД:
sudo pg_dropcluster 15 main --stop
sudo pg_createcluster -d /var/lib/postgresql/12/main --start 12 main
⚠️ Внимание: При откате версии 1С не (понижение версии) может привести к несовместимости формата баз данных. Если базы уже были открыты в новой версии, их потребуется выгрузить/загрузить заново через DT-файл.
8. Автоматизация обновлений (для опытных администраторов)
Для регулярного обновления 1С на нескольких серверах можно использовать скрипты. Пример скрипта для автоматического обновления и отправки отчёта на email:
#!/bin/bash
Остановка сервисов
systemctl stop srv1cv83
Обновление
apt update && apt install --only-upgrade -y 1c-enterprise83
Проверка версии
VERSION=$(/opt/1C/v8.3/x86_64/1cv8 --version | head -n 1)
Запуск сервисов
systemctl start srv1cv83
Отправка отчёта
echo"1C updated to $VERSION on $(hostname)" | mail -s"1C Update Report" admin@example.com
Для Ansible можно использовать следующий плейбук:
---
- hosts: 1c_servers
tasks:
- name: Update 1C platform
apt:
name: 1c-enterprise83
state: latest
update_cache: yes
- name: Restart 1C services
systemd:
name:"{{ item }}"
state: restarted
loop:
- srv1cv83
- rphost
Важно: перед автоматизацией протестируйте процесс на тестовом сервере. Автоматическое обновление может привести к неожиданным последствиям, если:
- 🔄 Используются нестандартные пути установки (не
/opt/1C/) - 🔑 Применяются кастомные лицензионные решения
- 🔌 Есть интеграции с внешними системами (например, ATOL, Диадок)
Автоматическое обновление удобно, но рискованно. Всегда тестируйте новые версии на staging-сервере перед применением в продакшене. Особенно это касается обновлений с изменением мажорной версии (например, 8.3.20 → 8.3.23).
FAQ: Частые вопросы по обновлению 1С на Ubuntu
Можно ли обновлять 1С на Ubuntu без остановки рабочих процессов?
Нет, обновление платформы требует остановки всех процессов 1cv8 и серверных компонентов. Попытка обновления"на лету" приведёт к повреждению временных файлов и возможной потере данных. Рекомендуется планировать обновление на время минимальной нагрузки (например, ночью) или использовать резервный сервер для обеспечения непрерывности работы.
Как проверить совместимость текущей конфигурации с новой версией 1С?
Используйте Тестовый центр в Конфигураторе:
- Откройте базу в Конфигураторе.
- Перейдите в
Администрирование → Тестирование и исправление. - Выберите
Проверка совместимости с версией платформы. - Укажите целевую версию (например, 8.3.24).
Система покажет потенциальные проблемы, такие как устаревшие методы или несовместимые объекты метаданных.
Что делать, если после обновления перестали работать отчёты с диаграммами?
Эта проблема связана с отсутствием шрифтов Microsoft Core Fonts или библиотек для рендеринга графики. Установите следующие пакеты:
sudo apt install ttf-mscorefonts-installer libgdiplus
Затем перезапустите сервер 1С:
sudo systemctl restart srv1cv83
Если проблема сохраняется, проверьте настройки рендеринга в файле /etc/1c/conf.d/srv1cv83.conf (параметр graph_rendering = gdiplus).
Как обновить 1С на Ubuntu, если нет доступа к интернету?
Скачайте необходимые .deb-пакеты на машине с доступом в интернет, затем перенесите их на целевой сервер. Например:
- На машине с интернетом:
wget https://repo.1c.ru/deb/pool/main/1/1c-enterprise83/1c-enterprise83_8.3.24-1259_amd64.deb - Перенесите файл на сервер (например, через
scp):scp 1c-enterprise83_8.3.24-1259_amd64.deb user@1c-server:/tmp/ - На сервере установите пакет:
sudo dpkg -i /tmp/1c-enterprise83_8.3.24-1259_amd64.deb
Аналогично поступите с зависимостями (их можно найти в файле /var/lib/apt/lists/repo.1c.ru* на машине с интернетом).
Нужно ли обновлять клиентские рабочие станции после обновления сервера?
Да, версии платформы на сервере и клиентах должны совпадать (или клиентская версия может быть новее). Если клиенты подключаются через веб-интерфейс или тонкий клиент, достаточно обновить только сервер. Для толстого клиента или Конфигуратора на Windows/Linux требуется отдельное обновление.
Исключение: если используется управляемое приложение, клиентская версия может быть на 1-2 релиза старше серверной (но не наоборот). Проверьте совместимость в документации 1С.