Файловая база, PostgreSQL или Microsoft SQL Server: на чём держать 1С 8.3

· 10 мин

Содержание

До 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С в таблице

ПараметрФайловый режимPostgreSQLMS SQL Server
Комфортное число пользователейдо 5–10десятки и сотнидесятки и сотни
Размер базыдо нескольких ГБ без мученийограничен дискамиограничен дисками (Express — 10 ГБ)
Лицензия на СУБДне нужнабесплатно (коммерческие сборки — платно)платно, покупка в РФ затруднена
Лицензия на сервер 1Сне нужнанужнанужна
ОС сервералюбая с общей папкойLinux или Windowsна практике Windows
Блокировкитаблица целикомстрокистроки
Скорость тяжёлых отчётовнизкаявысокая, иногда ниже MS SQLвысокая
Сложность администрированияминимальнаясредняя, нужен Linux/конфигсредняя, есть графические мастера
Резервное копированиекопия папки, выгрузка .dtpg_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. Структура данных не меняется, меняется только место хранения.

Перед переездом сделайте копию папки с файловой базой и предупредите пользователей: на время выгрузки и загрузки в базе никто не должен работать.

  1. Закройте все сеансы. Откройте базу в конфигураторе и выберите Администрирование → Выгрузить информационную базу. Сохраните файл .dt.
  2. Установите СУБД. Для PostgreSQL — сборку для 1С, при инициализации кластера задайте локаль ru_RU.UTF-8.
  3. Установите сервер 1С:Предприятия той же версии платформы, что на клиентах, и активируйте серверную лицензию.
  4. В консоли администрирования серверов 1С создайте информационную базу: укажите тип СУБД, адрес сервера СУБД, имя будущей базы данных, пользователя СУБД и отметьте создание базы данных в случае её отсутствия.
  5. Добавьте новую базу в список у пользователей: вариант «На сервере 1С:Предприятия», кластер и имя базы, например srv1c и buh.
  6. Откройте новую базу в конфигураторе и выполните Администрирование → Загрузить информационную базу, выбрав файл .dt.
  7. Запустите базу в режиме 1С:Предприятие, проверьте пару отчётов и проведение документа.
  8. Настройте резервное копирование средствами СУБД и регламентное обслуживание.

Для больших баз и автоматизации есть утилита ibcmd (платформа 8.3.14 и новее): она умеет выгружать и загружать базу без запуска конфигуратора. Параметры смотрите в справке утилиты.

Что проверить после переезда:

  • 🔌 Порты. Клиент обращается к агенту сервера 1С на порт 1540, дальше к менеджеру кластера (1541) и рабочим процессам — по умолчанию диапазон 1560–1591. Все эти порты должны быть открыты в брандмауэре.
  • 🕒 Регламентные задания. В серверной базе они выполняются сервером 1С, а не клиентом. Проверьте, что они не заблокированы в свойствах базы в консоли.
  • 💾 Копии. Выгрузка .dt годится для переноса, но не как ежедневный бэкап большой базы: она долгая и требует отключения пользователей.

Тот же путь работает и в обратную сторону, и между СУБД: базу с MS SQL на PostgreSQL переносят ровно так же, через .dt.

Что выбрать: рекомендации по типовым ситуациям

Какая у вас ситуация?

Если свести выбор СУБД для 1С к одному правилу: без своего администратора с маленькой командой файловая база или облако 1С проще любого сервера. С админом, знакомым с Linux, PostgreSQL почти всегда выгоднее.

Альтернатива покупке сервера — аренда базы в облаке у партнёра 1С. Вы платите помесячно, а СУБД, копии и обновления — забота провайдера. Удобно, если в штате нет администратора.

Частые вопросы

Можно ли работать с файловой базой и серверной одновременно на одних лицензиях?
Да. Клиентские лицензии не привязаны к типу базы: один и тот же пользователь может открывать и файловую, и серверную базу.
Нужна ли лицензия на сервер 1С, если стоит PostgreSQL на той же машине?
Нужна. PostgreSQL бесплатен, но клиент-серверный вариант без лицензии на сервер 1С:Предприятия не запустится.
Будет ли база на PostgreSQL больше по размеру, чем файловая?
Обычно да: СУБД хранит индексы и служебные данные иначе. Для оценки закладывайте на диске в 2–3 раза больше объёма файла 1Cv8.1CD.
Можно ли поставить сервер 1С на Linux, а MS SQL на Windows?
Можно: сервер 1С и сервер СУБД могут быть разными машинами. Важно, чтобы между ними была быстрая сеть — каждый запрос идёт через неё.
Ускорит ли переход на сервер старый медленный компьютер бухгалтера?
Частично. Тяжёлые запросы выполнит сервер, но интерфейс и формы по-прежнему отрисовывает клиент. На очень слабом ПК сами окна останутся медленными.