Установка и настройка 1С на Linux с PostgreSQL: экономия на лицензиях и скорость
Перенос 1С на Linux с PostgreSQL экономит от 150 000 рублей — и это только на лицензиях Windows Server + MS SQL. При этом производительность вырастает на 20-40%. Мы в нашей команде уже перевели на Linux более 30 серверов 1С: ни один из клиентов не захотел возвращаться обратно на Windows.
Почему бизнесу выгодно переводить 1С на Linux?
Как-то раз к нам обратилась одна оптовая компания. У них было 35 пользователей 1С, и они, как и многие, платили довольно приличные суммы за софт: за Windows Server 2022 отдавали 80 000 руб., за MS SQL Standard — 400 000 руб., и ещё 105 000 руб. уходили на CAL-лицензии. Можете себе представить, это целых 585 000 рублей только за ПО! Мы же взяли и перевели их систему на Debian + PostgreSQL. И знаете, сколько теперь они платят за лицензии? Ровно 0 рублей.
Какие требования к серверу для 1С на Linux?
Конфигурацию мы подбираем под количество пользователей:
- До 15 пользователей: 4 ядра, 16 ГБ RAM, SSD 256 ГБ
- 15-50 пользователей: 8 ядер, 32 ГБ RAM, NVMe 512 ГБ
- 50-100 пользователей: 16 ядер, 64 ГБ RAM, NVMe RAID 1
# Проверяем ресурсы сервера
lscpu | grep "^CPU(s)"
free -h
lsblk
Как установить PostgreSQL для 1С на Debian 12?
К нам обратился клиент — аудиторская фирма. Предыдущий подрядчик установил стандартный PostgreSQL вместо сборки для 1С. Результат — ошибки сортировки в отчётах и медленные запросы.
# Устанавливаем PostgreSQL от 1С (не стандартный!)
wget https://repo.postgrespro.ru/1c/1c-16/keys/pgpro-repo-add.sh
sh pgpro-repo-add.sh
apt update
apt install -y postgrespro-1c-16
# Инициализация
/opt/pgpro/1c-16/bin/pg-setup initdb
systemctl enable postgrespro-1c-16 && systemctl start postgrespro-1c-16
Как настроить PostgreSQL для максимальной производительности 1С?
Стандартные настройки PostgreSQL рассчитаны на слабый сервер. Для 1С нужна тонкая настройка:
# /etc/postgrespro-1c-16/postgresql.conf
shared_buffers = 8GB # 25% от RAM
effective_cache_size = 24GB # 75% от RAM
work_mem = 256MB # для сложных отчётов 1С
maintenance_work_mem = 2GB
random_page_cost = 1.1 # для SSD
effective_io_concurrency = 200 # для SSD
max_connections = 100
checkpoint_completion_target = 0.9
wal_buffers = 64MB
min_wal_size = 2GB
max_wal_size = 8GB
Как установить сервер 1С:Предприятие на Debian?
# Скачиваем с releases.1c.ru (нужна подписка ИТС)
dpkg -i 1c-enterprise-8.3.*-server_*.deb
dpkg -i 1c-enterprise-8.3.*-common_*.deb
# Настраиваем пользователя
chown -R usr1cv8:grp1cv8 /opt/1cv8
# Запускаем сервер
systemctl enable srv1cv83 && systemctl start srv1cv83
# Проверяем
systemctl status srv1cv83
Почему не запускается служба сервера 1С?
К нам обратился клиент: после установки srv1cv83 не стартовал. Причина — отсутствие зависимостей. В Debian 12 не хватает нескольких библиотек:
# Устанавливаем недостающие зависимости
apt install -y libfreetype6 libgsf-1-114 libglib2.0-0 \
libodbc1 libmagickwand-6.q16-6 fonts-liberation2
# Перезапускаем
systemctl restart srv1cv83
Как настроить локали, чтобы 1С работала с русским языком?
Неправильные локали — причина 30% проблем при установке 1С на Linux.
# Генерируем русскую локаль
locale-gen ru_RU.UTF-8
update-locale LANG=ru_RU.UTF-8
# Проверяем
locale
# Должно быть: LANG=ru_RU.UTF-8
Не тратьте время на настройку — доверьте профессионалам
Каждый час простоя вашей сети — это потерянные деньги. Наши инженеры настроят оборудование за вас быстро, надёжно, с гарантией результата.
Как создать базу данных 1С на сервере?
Помню, был у нас один клиент. Он пытался создать базу через конфигуратор, а ему в ответ — ошибка подключения к PostgreSQL. Мы начали разбираться и выяснили, что причина оказалась до смешного простой: пароль пользователя postgres попросту не был задан. Ну вот бывает же такое!
# Задаём пароль пользователя postgres
su - postgres
psql -c "ALTER USER postgres PASSWORD 'YourStrongPassword';"
exit
# В конфигураторе 1С:
# Сервер: localhost
# База: company_db
# Пользователь: postgres
# Пароль: YourStrongPassword
Как настроить удалённое подключение PostgreSQL?
Если 1С-сервер и PostgreSQL на разных машинах:
# postgresql.conf
listen_addresses = '*'
# pg_hba.conf — добавить строку:
host all all 10.10.1.0/24 md5
# Перезагрузить PostgreSQL
systemctl reload postgrespro-1c-16
Как настроить лицензирование HASP по сети?
К нам обратился клиент: USB-ключ HASP стоял в сервере, но рабочие станции не видели лицензию. Порт 475 был закрыт файрволом.
# Устанавливаем HASP License Manager
dpkg -i haspd_*.deb
systemctl enable haspd && systemctl start haspd
# Проверяем порт
ss -ulnp | grep 475
# Открываем порт в iptables:
iptables -A INPUT -p udp --dport 475 -j ACCEPT
iptables -A INPUT -p tcp --dport 475 -j ACCEPT
Как настроить автоматические бэкапы базы 1С?
90% компаний, которые к нам обращаются после аварии, не имели рабочих бэкапов. Мы настраиваем трёхуровневое резервное копирование:
# Ежедневный бэкап в 02:00
cat > /etc/cron.d/1c-backup << 'EOF'
0 2 * * * postgres pg_dump -Fc company_db > /backup/1c/company_db_$(date +\%Y\%m\%d).dump
0 3 * * 0 postgres pg_dumpall > /backup/1c/all_databases_$(date +\%Y\%m\%d).sql
0 4 * * * root find /backup/1c/ -mtime +30 -delete
EOF
# Проверяем бэкап (ОБЯЗАТЕЛЬНО!):
pg_restore -l /backup/1c/company_db_20260324.dump | head
Как мониторить производительность 1С на Linux?
Мы настраиваем мониторинг для каждого клиента:
# Проверяем текущую нагрузку PostgreSQL
su - postgres -c "psql -c \"SELECT pid, usename, application_name, state, query_start FROM pg_stat_activity WHERE state != 'idle';\""
# Размер базы
su - postgres -c "psql -c \"SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) FROM pg_database ORDER BY pg_database_size(pg_database.datname) DESC;\""
Можно ли настроить Kerberos SSO для 1С через Apache?
Да. К нам обращались компании с Active Directory, которые хотели Single Sign-On для веб-клиента 1С. Мы используем mod_auth_gssapi вместо устаревшего mod_auth_kerb:
apt install libapache2-mod-auth-gssapi
# Настройка в Apache VirtualHost:
# <Location /1c>
# AuthType GSSAPI
# AuthName "1C Enterprise"
# GssapiCredStore keytab:/etc/apache2/http.keytab
# Require valid-user
# </Location>
Когда обратиться к профессионалам?
- Миграция с Windows — перенос без потери данных требует опыта
- Более 20 пользователей — нужна оптимизация PostgreSQL под нагрузку
- Критичные данные — бухгалтерия, зарплата, налоговая отчётность
- Требуется SLA — гарантия аптайма 99.9% с реакцией за 1 час
- Интеграции — CRM, сайт, BI-аналитика, обмен с контрагентами
Как проверить PostgreSQL после установки: мой чек-лист
Прежде чем отдавать сервер бухгалтерии, я прохожу один и тот же короткий список. Первое — жив ли сам PostgreSQL и принимает ли он подключения. Для этого есть штатная утилита pg_isready: она не требует пароля и возвращает понятный код выхода, поэтому её удобно вставлять в скрипты мониторинга.
# 0 — принимает подключения, 1 — отклоняет (например, ещё стартует),
# 2 — нет ответа, 3 — проверка не выполнялась (ошибка в параметрах)
pg_isready -h localhost -p 5432; echo $?
# Какие значения реально применились после правки postgresql.conf
su - postgres -c "psql -c 'SHOW shared_buffers;'"
su - postgres -c "psql -c 'SHOW work_mem;'"
# Таблицы, где копятся «мёртвые» строки и давно не было автоочистки
su - postgres -c "psql -d company_db -c \"SELECT relname, n_dead_tup, last_autovacuum FROM pg_stat_user_tables ORDER BY n_dead_tup DESC LIMIT 10;\""
Второе — проверяю, что значения из конфига действительно подхватились: частая ошибка — правка не того файла или забытый перезапуск службы. SHOW показывает текущее значение параметра в работающем сервере, а не то, что написано в файле.
Третье — смотрю pg_stat_user_tables. Колонки n_dead_tup и last_autovacuum сразу показывают, справляется ли автоочистка на крупных регистрах 1С. Если «мёртвых» строк много, а автоочистка не запускалась давно, это первое место, куда я смотрю при жалобах на медленные отчёты.
Как быстрее восстановить большую базу 1С из дампа
Для 1С я делаю дампы в custom-формате (pg_dump -Fc): он сжат по умолчанию и позволяет восстанавливать выборочно. Главный плюс проявляется при восстановлении — pg_restore умеет загружать данные и строить индексы в несколько потоков ключом -j.
# Восстановление в 4 потока в заранее созданную пустую базу
pg_restore -j 4 -d company_db_restore /backup/1c/company_db_20260324.dump
Ограничения из документации PostgreSQL, о которые спотыкаются чаще всего: многопоточное восстановление работает только с custom- и directory-форматами, вход должен быть обычным файлом или каталогом (не конвейером и не stdin), и ключ -j нельзя совмещать с --single-transaction. Число потоков я начинаю подбирать с количества ядер сервера. Тестовое восстановление в отдельную базу делаю регулярно — только так можно быть уверенным, что дамп рабочий.
Часто задаваемые вопросы (FAQ)
Обязательно ли покупать PostgreSQL Pro для 1С?
Нет. Бесплатная сборка postgresql-1c покрывает 90% задач. PostgreSQL Pro нужен для баз свыше 100 ГБ и High Availability кластеров.
Можно ли использовать Ubuntu вместо Debian?
Да, Ubuntu LTS поддерживается. Но по нашему опыту в продакшене стабильнее Debian — его обновления реже ломают зависимости 1С.
Как перенести базу с файлового режима на серверный?
Выгружаете .dt из файловой базы, создаёте серверную базу на Linux, загружаете .dt через конфигуратор. У нас это занимает 1-2 часа.
Сколько стоит миграция 1С на Linux?
Цена начинается от 40 000 рублей за одну базу. Если же нужна полная оптимизация и настройка мониторинга, то это будет от 80 000. И что самое приятное — эти вложения окупаются уже за год, только за счёт экономии на лицензиях!
Будут ли работать все конфигурации 1С на Linux?
Типовые конфигурации (Бухгалтерия, ЗУП, ERP, УТ) — да. Нетиповые — смотря какие COM-объекты используются. Перед миграцией мы всегда проводим аудит совместимости.
Что делать, если 1С тормозит на Linux?
В 90% случаев — проблема настроек PostgreSQL. Проверьте shared_buffers, work_mem и наличие индексов. Мы проводим профилирование и ускоряем базу в 2-5 раз.
Как обновлять платформу 1С на Linux?
Скачиваете новые deb-пакеты с releases.1c.ru, ставите через dpkg, перезапускаете srv1cv83. Обновления мы включаем в договор поддержки.
Нужен ли антивирус на сервере 1С Linux?
Нет. При грамотной настройке Linux-серверам антивирус не нужен. Достаточно fail2ban, iptables и регулярных обновлений.
ООО АйТи Фреш возьмёт это на себя
15+ лет опыта, 25+ постоянных клиентов, сертифицированные инженеры. Настроим, защитим и будем поддерживать вашу инфраструктуру — чтобы вы занимались бизнесом, а не серверами.
Источники
- PostgreSQL 16: pg_isready — коды выхода 0/1/2/3.
- PostgreSQL 16: pg_restore — ключ -j, поддерживаемые форматы, несовместимость с --single-transaction.
- PostgreSQL 16: The Cumulative Statistics System — представление pg_stat_user_tables, поля n_dead_tup и last_autovacuum.
Комментарии