Файловая база, PostgreSQL или Microsoft SQL Server: на чём держать 1С 8.3
Содержание
До 5–7 одновременных пользователей и базы в несколько гигабайт хватает файлового режима. Когда людей больше или начались ожидания на блокировках, нужен клиент-серверный вариант: для новой установки в России разумный выбор по умолчанию — PostgreSQL в сборке для 1С, а MS SQL Server оставляют там, где он уже куплен и работает.
Ошибка в выборе СУБД дорого обходится: через год база разрастается, бухгалтерия в конце квартала ждёт по десять минут, и переезд приходится делать в самый неудобный момент. Решают три вещи: число одновременных пользователей, уже купленные лицензии и то, кто будет обслуживать сервер.
Файловый режим: где он хорош и где упирается в потолок
В файловом варианте вся база лежит в одном файле 1Cv8.1CD в обычной папке. Сервера 1С нет: каждый клиент сам открывает файл по сети и сам выполняет запросы. Отсюда и плюсы, и пределы.
✅ Чем удобен:
- нет лицензии на сервер 1С и на СУБД — нужны только клиентские лицензии;
- установка за 10 минут, настраивать почти нечего;
- резервная копия — копия папки с базой при закрытых сеансах;
- базу легко перенести на флешку или другой компьютер.
⛔ Где начинаются проблемы:
- Блокировки целых таблиц. Пока один пользователь проводит документ, остальные, кто пишет в те же таблицы, ждут. При 3–4 активных пользователях это почти незаметно, при 10 — постоянные паузы и ошибка
Конфликт блокировок при выполнении транзакции. - Сеть. Все данные запроса идут по сети к клиенту. Работа по Wi-Fi или через VPN с файловой базой — медленная и рискованная.
- Повреждение файла. Обрыв сети или выключение компьютера во время записи может повредить
1Cv8.1CD. Лечат утилитойchdbfl.exeили тестированием в конфигураторе, но часть данных при этом можно потерять. - Тяжёлые операции. Закрытие месяца , перепроведение за год, расчёт себестоимости в файловой базе идут в разы дольше, чем на сервере.
Жёсткого лимита пользователей платформа для файлового режима не ставит. Ориентир практиков: до 5 человек — спокойно, 5–10 — терпимо, если работают в разных разделах, больше 10 — пора переходить.
Если файловая база тормозит у удалённых сотрудников, сначала переведите их на работу через терминальный сервер или веб-публикацию. Файл тогда читается по локальной сети сервера, а не через интернет. Это не снимает проблему блокировок, но убирает сетевые задержки.
Microsoft SQL Server для 1С: сильные стороны и подводные камни
MS SQL Server — самая привычная СУБД для 1С. Платформа годами развивалась в паре с ним, поэтому большинство практик по настройке и ускорению описаны именно для него.
Что получаете:
- 🚀 Стабильная скорость на тяжёлых запросах. Оптимизатор хорошо справляется с большими отчётами и временными таблицами, которые активно использует 1С.
- 🧰 Готовые инструменты. Планы обслуживания в SQL Server Management Studio: резервные копии, перестроение индексов, обновление статистики — настраиваются мышкой.
- 🔒 Блокировки на уровне строк и нормальная параллельная работа десятков и сотен пользователей.
- 📈 Масштаб. Базы в сотни гигабайт и тысячи пользователей — обычный сценарий для ERP.
Подводные камни:
- Стоимость. Редакция Standard лицензируется по ядрам или по схеме «сервер + клиентские лицензии». Ориентировочно лицензия на 2 ядра Standard стоила около 4 тыс. долларов, сервер по схеме Server+CAL — порядка 1 тыс. долларов плюс примерно 200–250 долларов за каждого пользователя.
- Покупка в России. С 2022 года Microsoft не продаёт лицензии напрямую российским компаниям, а поставка специальной версии для 1С прекращена. Новую легальную лицензию получить сложно.
- Express-редакция. Она бесплатна, но ограничена 10 ГБ на одну базу данных, использует немного памяти и одно процессорное гнездо. Для пары небольших баз годится, для роста — нет.
- Привязка к Windows. На Linux SQL Server существует, но в связке с 1С его почти не используют.
Не переходите на MS SQL «потому что так все делают», если у вас нет лицензии. Нелегальная СУБД на сервере с бухгалтерией — риск при любой проверке программного обеспечения.
PostgreSQL для 1С: бесплатно и без привязки к Windows
PostgreSQL — свободная СУБД, за саму программу платить не нужно. Для 1С используют не «чистую» версию с официального сайта PostgreSQL, а сборку с патчами под платформу: она есть в дистрибутивах 1С и у компании Postgres Professional.
Патчи нужны, чтобы СУБД понимала особенности 1С: строки без учёта регистра (тип mchar), запросы с большим числом временных таблиц, специфические планы выполнения. Обычная сборка без них работать с 1С не будет или будет работать плохо.
Плюсы:
- 💰 Ноль рублей за СУБД. Тратитесь только на сервер 1С и клиентские лицензии.
- 🐧 Linux. Сервер 1С и PostgreSQL прекрасно живут на Linux — экономия ещё и на Windows Server.
- 🇷🇺 Нет санкционных рисков. Есть российские коммерческие сборки с поддержкой и сертификатами — важно для госсектора и тех, кто идёт по импортозамещению.
- 🔒 Блокировки на уровне строк и нормальная многопользовательская работа.
Минусы:
- Нужна настройка. «Из коробки» PostgreSQL выделяет себе мало памяти. Без правки
postgresql.confон будет заметно медленнее, чем мог бы. - Отдельные тяжёлые запросы могут выполняться дольше, чем на MS SQL. Обычно это лечится индексами, обновлением статистики и правкой конкретного отчёта.
- Обслуживание вручную. Резервные копии через
pg_dumpилиpg_basebackup,VACUUMиANALYZEнастраивают скриптами и планировщиком — графического мастера, как в SSMS, нет. - Старые конфигурации на автоматических блокировках. Современные типовые (БП 3.0, ЗУП 3.1, УТ 11, ERP) используют управляемый режим блокировок. Старая самописная конфигурация в автоматическом режиме на PostgreSQL может часто упираться в ожидания — проверьте свойство конфигурации «Режим управления блокировкой данных» перед переездом.
Стартовые параметры, с которых обычно начинают для сервера под 1С с 32 ГБ памяти:
# postgresql.conf — ориентир, подбирайте под свою нагрузку
shared_buffers = 8GB # примерно 25% памяти
effective_cache_size = 22GB # примерно 2/3 памяти
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 500
Если сервер 1С и PostgreSQL стоят на одной машине, учитывайте, что рабочие процессы 1С (rphost) тоже съедают память. Не отдавайте СУБД больше половины ОЗУ.
Сравнение вариантов хранения базы 1С в таблице
| Параметр | Файловый режим | PostgreSQL | MS SQL Server |
|---|---|---|---|
| Комфортное число пользователей | до 5–10 | десятки и сотни | десятки и сотни |
| Размер базы | до нескольких ГБ без мучений | ограничен дисками | ограничен дисками (Express — 10 ГБ) |
| Лицензия на СУБД | не нужна | бесплатно (коммерческие сборки — платно) | платно, покупка в РФ затруднена |
| Лицензия на сервер 1С | не нужна | нужна | нужна |
| ОС сервера | любая с общей папкой | Linux или Windows | на практике Windows |
| Блокировки | таблица целиком | строки | строки |
| Скорость тяжёлых отчётов | низкая | высокая, иногда ниже MS SQL | высокая |
| Сложность администрирования | минимальная | средняя, нужен Linux/конфиг | средняя, есть графические мастера |
| Резервное копирование | копия папки, выгрузка .dt | pg_dump, pg_basebackup | планы обслуживания SSMS |
Есть ещё IBM Db2 и Oracle Database — платформа 1С их поддерживает, но в малом и среднем бизнесе они почти не встречаются, а Oracle в России сейчас недоступен так же, как Microsoft.
Сколько стоит переход на клиент-серверный вариант
Главная статья расходов — не СУБД, а лицензия на сервер 1С:Предприятия. Ориентировочные цены:
| Что покупаем | Примерно, руб. |
|---|---|
| Лицензия на сервер 1С ПРОФ (x86-64) | 90–100 тыс. |
| Лицензия на сервер 1С КОРП (x86-64) | 240–260 тыс. |
| Клиентские лицензии на 5 рабочих мест | 25–35 тыс. |
| PostgreSQL в сборке для 1С | 0 |
| Железо: сервер на 8 ядер, 32 ГБ, SSD | от 150–250 тыс. или аренда от 8–15 тыс. в месяц |
Клиентские лицензии при переходе не меняются: те, что работали с файловой базой, подойдут и для серверной. Лицензия ПРОФ закрывает задачи большинства компаний; КОРП нужна там, где требуются расширенные возможности кластера — например, тонкие требования назначения функциональности и отказоустойчивость на нескольких рабочих серверах.
Цены меняются, точную стоимость уточняйте у партнёра 1С на дату покупки. Таблица нужна, чтобы прикинуть бюджет, а не для счёта.
Как перенести файловую базу на сервер 1С
Переезд с файла на PostgreSQL или MS SQL делают через выгрузку в файл .dt. Структура данных не меняется, меняется только место хранения.
Перед переездом сделайте копию папки с файловой базой и предупредите пользователей: на время выгрузки и загрузки в базе никто не должен работать.
- Закройте все сеансы. Откройте базу в конфигураторе и выберите
Администрирование → Выгрузить информационную базу. Сохраните файл.dt. - Установите СУБД. Для PostgreSQL — сборку для 1С, при инициализации кластера задайте локаль
ru_RU.UTF-8. - Установите сервер 1С:Предприятия той же версии платформы, что на клиентах, и активируйте серверную лицензию.
- В консоли администрирования серверов 1С создайте информационную базу: укажите тип СУБД, адрес сервера СУБД, имя будущей базы данных, пользователя СУБД и отметьте создание базы данных в случае её отсутствия.
- Добавьте новую базу в список у пользователей: вариант «На сервере 1С:Предприятия», кластер и имя базы, например
srv1cиbuh. - Откройте новую базу в конфигураторе и выполните
Администрирование → Загрузить информационную базу, выбрав файл.dt. - Запустите базу в режиме 1С:Предприятие, проверьте пару отчётов и проведение документа.
- Настройте резервное копирование средствами СУБД и регламентное обслуживание.
Для больших баз и автоматизации есть утилита ibcmd (платформа 8.3.14 и новее): она умеет выгружать и загружать базу без запуска конфигуратора. Параметры смотрите в справке утилиты.
Что проверить после переезда:
- 🔌 Порты. Клиент обращается к агенту сервера 1С на порт 1540, дальше к менеджеру кластера (1541) и рабочим процессам — по умолчанию диапазон 1560–1591. Все эти порты должны быть открыты в брандмауэре.
- 🕒 Регламентные задания. В серверной базе они выполняются сервером 1С, а не клиентом. Проверьте, что они не заблокированы в свойствах базы в консоли.
- 💾 Копии. Выгрузка
.dtгодится для переноса, но не как ежедневный бэкап большой базы: она долгая и требует отключения пользователей.
Тот же путь работает и в обратную сторону, и между СУБД: базу с MS SQL на PostgreSQL переносят ровно так же, через .dt.
Что выбрать: рекомендации по типовым ситуациям
Если свести выбор СУБД для 1С к одному правилу: без своего администратора с маленькой командой файловая база или облако 1С проще любого сервера. С админом, знакомым с Linux, PostgreSQL почти всегда выгоднее.
Альтернатива покупке сервера — аренда базы в облаке у партнёра 1С. Вы платите помесячно, а СУБД, копии и обновления — забота провайдера. Удобно, если в штате нет администратора.
Частые вопросы
Можно ли работать с файловой базой и серверной одновременно на одних лицензиях?
Нужна ли лицензия на сервер 1С, если стоит PostgreSQL на той же машине?
Будет ли база на PostgreSQL больше по размеру, чем файловая?
1Cv8.1CD.