Какую СУБД использует 1С и когда нужен SQL-сервер
Содержание
1С не привязана к одной базе данных. Информационная база живёт в одном из двух режимов: файловом (один файл 1Cv8.1CD, никакой СУБД) или клиент-серверном, где данные хранит внешняя СУБД. Для клиент-серверного варианта платформа 8.3 поддерживает PostgreSQL, Microsoft SQL Server, IBM DB2 и Oracle Database.
На практике выбор почти всегда сводится к простому правилу: пять-десять пользователей и база в пару гигабайт — файловый режим. Больше людей, больше данных, тяжёлые отчёты и закрытие месяца в рабочее время — сервер 1С и SQL. Ниже — где проходит граница, чем различаются СУБД и как перейти без потерь.
Файловая база: как устроена и где упирается в потолок
В файловом режиме нет ни сервера 1С, ни СУБД. Платформа на каждом компьютере открывает файл 1Cv8.1CD напрямую, по сетевой папке или с локального диска. Вся «серверная» работа — блокировки, поиск, сортировка, расчёт отчёта — выполняется на ПК пользователя.
Отсюда плюсы:
- 🟢 ничего не нужно устанавливать и администрировать, база создаётся за минуту;
- 🟢 копия делается обычным копированием файла (когда никто не работает );
- 🟢 не нужна лицензия на серверную часть платформы.
И минусы, которые проявляются по мере роста:
- 🔴 каждый клиент тянет данные по сети целиком, поэтому на медленной сети или Wi-Fi всё тормозит;
- 🔴 блокировки на уровне файла: чем больше людей проводят документы одновременно, тем чаще очереди;
- 🔴 при обрыве связи или падении клиента файл может повредиться;
- 🔴 нет нормального разграничения доступа на уровне данных: кто видит папку, тот может скопировать базу целиком;
- 🔴 нет регламентных заданий на сервере, фоновые задания работают в том же клиентском процессе.
Ориентиры, которые держат в голове администраторы (это опыт, а не жёсткие паспортные лимиты): до 5–10 одновременных пользователей и размер базы в несколько гигабайт. Дальше растёт время проведения документов и риск повреждения файла.
Файловая база не обязана лежать на сервере. Если она на общей папке, а пользователи подключаются по Wi-Fi, главным узким местом станет именно сеть, а не диск.
Клиент-серверный режим: что даёт SQL и зачем нужен кластер
Здесь архитектура трёхзвенная: клиент → сервер 1С:Предприятия → СУБД. Клиент не видит файлы базы. Он обращается к серверу 1С, а тот сам выполняет запросы к СУБД и отдаёт только результат.
Что меняется в работе:
- Тяжёлые запросы и проведение документов выполняются на сервере рядом с данными, а не на слабых ПК.
- Блокировки управляются СУБД и платформой на уровне записей, поэтому одновременная работа 50–100 человек возможна.
- Появляются регламентные и фоновые задания на сервере, расписание резервного копирования средствами СУБД.
- Данные защищены: пользователь не получает доступ к файлам базы.
- Можно масштабироваться: вынести СУБД на отдельную машину, добавить рабочие серверы в кластер.
Платить за это приходится администрированием. Нужны сервер (или два), лицензия на серверную часть платформы, настроенная СУБД и человек, который умеет с ней обращаться.
Какие СУБД поддерживает 1С: PostgreSQL, MS SQL, DB2, Oracle
Список поддерживаемых систем для клиент-серверного варианта стабилен уже много лет:
| СУБД | Стоимость | Где применяют | Особенности |
|---|---|---|---|
| PostgreSQL | бесплатная | малый и средний бизнес, импортозамещение | работает с версиями, которые рекомендует 1С; часто берут сборки Postgres Pro |
| Microsoft SQL Server | платная (редакция Express — бесплатная, но с ограничением размера базы около 10 ГБ) | средний и крупный бизнес на Windows | давно отлажена вместе с 1С, много готовых инструкций |
| IBM DB2 | платная | редко, крупные корпоративные среды | встречается в отдельных ИТ-ландшафтах |
| Oracle Database | платная, дорогая | крупные корпорации | нужна у тех, кто уже держит Oracle для других систем |
Для нового внедрения выбор обычно между двумя первыми. PostgreSQL выбирают, когда не хотят платить за лицензию СУБД или переходят на Linux. MS SQL выбирают, когда в компании уже есть Windows-инфраструктура и администратор, знающий её.
⚠️ Нельзя ставить на сервер любую версию PostgreSQL «из репозитория». Для 1С нужны версии, которые указаны в системных требованиях вашего релиза платформы. Обычно это специальная сборка с доработками, а не стандартный пакет.
Что сказать про остальные «базы»
Иногда спрашивают про SQLite, MySQL или Access. Для информационной базы 1С они не подходят: 1С их не использует. SQLite встречается только у отдельных мобильных решений и вспомогательных утилит, а MySQL нужен разве что для внешнего обмена данными через ODBC.
Сравнение режимов: файловая и клиент-серверная база
| Параметр | Файловая | Клиент-серверная |
|---|---|---|
| Пользователи | до 5–10 | десятки и сотни |
| Размер базы | единицы ГБ | сотни ГБ и больше |
| Хранилище | файл 1Cv8.1CD | PostgreSQL, MS SQL, DB2, Oracle |
| Серверная лицензия | не нужна | нужна |
| Скорость тяжёлых отчётов | зависит от ПК и сети | зависит от сервера |
| Устойчивость к сбоям | низкая | высокая |
| Резервное копирование | копия файла при закрытой базе | средствами СУБД и выгрузка .dt |
| Администрирование | не требуется | нужен специалист |
| Доступ извне | сложно | публикация на веб-сервере, терминальный доступ |
Выбор между PostgreSQL и MS SQL на скорость при небольшой нагрузке влияет слабее, чем настройка железа и регламентных операций. Важнее, чтобы СУБД обслуживалась: обновление статистики, пересоздание индексов, настроенная память.
Как выбрать: файловая или SQL — критерии
Сразу перейдите на сервер, если выполняется хотя бы одно условие:
- работают больше 10 человек;
- база уже заметно больше нескольких гигабайт и продолжает расти;
- закрытие месяца или тяжёлые отчёты занимают десятки минут;
- нужна работа через интернет без VPN, например через веб-клиент;
- вам важно, чтобы сотрудник не мог унести базу целиком;
- в базе уже случалась «поломка структуры» или «файл не открывается».
Как узнать, на чём работает ваша база сейчас
Есть три простых способа.
- В окне запуска 1С. Выделите базу и нажмите «Изменить». Если указан путь к каталогу — база файловая. Если указаны сервер и имя базы на кластере — клиент-серверная.
- По строке соединения. В списке баз у файловой стоит
File="…";, у серверной —Srvr="…";Ref="…";. - Из кода. Функция
СтрокаСоединенияИнформационнойБазы()возвращает ту же строку. Если она начинается сFile=, база файловая. В конфигурациях на БСП есть готовая функция проверки в общем модулеОбщегоНазначения.
Если вы хотите узнать, какая именно СУБД стоит под серверной базой, это видно в консоли администрирования кластера: в свойствах информационной базы указан тип СУБД, сервер и имя базы данных.
Перенос из файловой базы на SQL: порядок и подводные камни
Переезд делается через выгрузку и загрузку, а не копированием файлов. Файл 1Cv8.1CD в СУБД не «подключить».
Подготовка
- Проверьте релиз платформы: на сервере она должна быть той же версии, которую вы будете использовать для работы.
- Установите серверную часть платформы и СУБД. Для PostgreSQL берите версию, которую рекомендует ваш релиз платформы.
- Убедитесь, что хватает места: для выгрузки и самой базы на сервере нужно в несколько раз больше, чем занимает
.dt.
Шаги
- Все пользователи выходят из базы. Загрузка и выгрузка требуют монопольного доступа.
- Сделайте копию файла
1Cv8.1CDв безопасное место. - Откройте файловую базу
в Конфигураторе и выполните
Администрирование → Выгрузить информационную базу. Получится файл.dt. - В консоли администрирования кластера создайте новую информационную базу: укажите тип СУБД, сервер СУБД, имя базы и учётные данные. Отметьте создание базы, если её ещё нет.
- Добавьте созданную базу в список запуска 1С.
- Откройте новую пустую базу в Конфигураторе и выполните
Администрирование → Загрузить информационную базу, выбрав файл.dt. - Запустите в режиме 1С:Предприятие и проверьте остатки, отчёты, обмены.
⚠️ После переезда не работайте одновременно в старой и новой базе. Иначе документы разойдутся и склеить их вручную будет больно. Старую файловую базу на неделю-две оставьте закрытой, как страховку.
Что часто забывают
- 🔧 Настроить расписание резервного копирования средствами СУБД. Файловая привычка «скопировал файл» тут уже не работает.
- 🔧 Включить регламентные задания в новой базе: обновление индексов, статистика, сжатие.
- 🔧 Проверить настройки обменов (РИБ, обмен с сайтом, банком): адрес и имя базы изменились.
- 🔧 Проверить лицензии : серверной части и клиентских подключений нужны свои ключи.
- 🔧 Обновить права : учётные записи в СУБД и пользователи информационной базы — разные сущности.
Если нужно обратно, делается тот же путь в другую сторону: выгрузка .dt из серверной базы и загрузка в новую файловую. Для небольших баз это допустимо.
Что делать, если выбор уже сделан, а база тормозит
Сначала определите, где узкое место. Смена режима не лечит плохую сеть и слабый диск.
Для файловой базы
- Положите файл на SSD или в быстрое сетевое хранилище, а не на старую общую папку.
- Подключайте клиентов по проводной сети. Wi-Fi и VPN для файлового режима плохо подходят.
- Раз в квартал выполняйте тестирование и исправление базы в Конфигураторе:
Администрирование → Тестирование и исправление. Операция требует монопольного доступа, поэтому запускайте её вне рабочего времени. - Следите за размером файла: рост за год показывает, когда вы дойдёте до предела.
Для клиент-серверной базы
- Дайте СУБД достаточно оперативной памяти. Для PostgreSQL и MS SQL ориентир: чтобы рабочая часть базы помещалась в кэш.
- Разнесите файлы базы, журнала и временной области по разным дискам, если нагрузка высокая.
- Настройте регламентные операции СУБД: обновление статистики и обслуживание индексов. Без них база замедляется месяцами, и непонятно почему.
- Проверьте, что сервер 1С и СУБД находятся в одной быстрой сети. Задержка между ними сильнее влияет на скорость, чем мощность процессора.
⚠️ Перед остановкой службы сервера 1С или перезапуском СУБД предупредите пользователей: все сеансы оборвутся, а несохранённые данные пропадут. Делайте это в нерабочее время.
Если у вас файловая база на 15–20 человек и тормозит только проведение, сначала проверьте сеть и диск. Иногда замена хранилища дешевле и быстрее, чем полный переезд. Но если вы упираетесь и в число пользователей, и в размер базы, переезд на сервер всё равно неизбежен.
Частые вопросы
Можно ли запустить 1С на MySQL или Access?
Нужно ли отдельно покупать SQL Server для 1С?
Файловая база работает быстрее SQL на одном компьютере?
Можно ли поменять СУБД с MS SQL на PostgreSQL?
.dt: выгружаете из старой базы и загружаете в новую, созданную на другой СУБД. Копированием данных между СУБД средствами самой СУБД это не делается.