Где 1С хранит данные: файловая СУБД, MS SQL Server и PostgreSQL на практике

· 9 мин

Содержание

1С 8.3 работает с базой данных двух видов: файловой (встроенный движок платформы, всё лежит в одном файле 1Cv8.1CD) и клиент-серверной, где данные хранит внешняя СУБД — чаще всего Microsoft SQL Server или PostgreSQL, реже IBM Db2 и Oracle Database. Сама конфигурация от выбора не зависит: Бухгалтерия, ЗУП или УТ одинаково работают в любом варианте.

Частое заблуждение — «1С и есть база данных, SQL ей не нужен». Для небольшой фирмы это правда: файловый вариант обходится без отдельной СУБД. Но когда пользователей становится больше пяти-десяти, а база перерастает несколько гигабайт, без сервера 1С и полноценной СУБД скорость и надёжность падают заметно.

Как узнать, на какой базе работает ваша 1С

Прежде чем что-то выбирать, полезно понять, что уже стоит. Проверка занимает минуту.

  1. Откройте окно запуска 1С.
  2. Выделите базу в списке и посмотрите строку внизу окна.
  3. Если там File="D:\Bases\Buh" — это файловый вариант.
  4. Если Srvr="srv1c";Ref="buh" — клиент-серверный. Тип СУБД видно в свойствах информационной базы в консоли администрирования серверов 1С.

Ещё один способ — из самой программы: меню с иконкой ☰ → Справка → О программе. В строке информационной базы будет либо путь к папке, либо имя сервера и базы.

Если база открыта через веб-клиент или опубликована на веб-сервере, строка запуска начинается с ws=. Это способ доступа, а не тип хранения: за публикацией может стоять и файловая, и серверная база.

Файловый вариант: одна папка и встроенный движок

В файловом режиме платформа сама выступает СУБД. Каталог базы содержит:

  • 📁 1Cv8.1CD — главный файл: конфигурация, данные, история изменений;
  • 📁 1Cv8Log — журнал регистрации;
  • 📁 1Cv8FTxt — индекс полнотекстового поиска;
  • 📁 служебные файлы блокировок, которые появляются при открытых сеансах.

Ничего ставить отдельно не нужно. Базу можно скопировать на флешку, перенести на другой компьютер, положить в сетевую папку.

Где файловая база упирается в потолок

Ограничения растут не из размера, а из устройства. Каждый пользователь читает и пишет один и тот же файл по сети. При одновременном проведении документов движок блокирует целые таблицы, и остальные ждут.

ПараметрОриентир для файловой базы
Одновременных пользователейкомфортно 1–5, терпимо до 10
Размер 1Cv8.1CDдо 5–10 ГБ без заметных тормозов
Доступ по сетитолько по локальной сети или через терминальный сервер
Резервное копированиепри закрытой базе или выгрузкой .dt
Риск повреждениявысокий при обрыве сети и отключении питания

В старом формате хранения у файловой базы было жёсткое ограничение — 4 ГБ на одну таблицу. В современных версиях платформы 8.3 формат изменился, и практическим пределом стала скорость, а не размер.

Работать с файловой базой через VPN или по медленному Wi-Fi — главный путь к её повреждению. Если сотрудники подключаются из дома, нужен терминальный сервер , веб-публикация или переход на клиент-серверный вариант.

Клиент-серверная схема: кто за что отвечает

В клиент-серверном варианте участвуют три звена:

  1. Клиент 1С на компьютере пользователя — показывает формы, ничего не хранит.
  2. Сервер 1С:Предприятия — исполняет серверный код конфигурации, держит сеансы и управляет блокировками.
  3. СУБД — хранит данные в своей базе и выполняет запросы, которые ей передаёт сервер 1С.

Клиент обращается к агенту сервера (порт 1540), тот передаёт его менеджеру кластера (1541), дальше работа идёт с рабочими процессами в диапазоне портов, заданном в свойствах рабочего сервера. Пользователь СУБД не видит вообще: сервер 1С сам подключается к ней под отдельной учётной записью.

Какие СУБД поддерживает платформа

При создании серверной базы в поле типа СУБД доступны варианты:

  • 🟦 MSSQLServer — Microsoft SQL Server;
  • 🐘 PostgreSQL — сборки PostgreSQL с доработками под 1С, в том числе Postgres Pro;
  • 🟪 IBMDB2 — IBM Db2;
  • 🟥 OracleDatabase — Oracle Database.

В российских внедрениях почти всегда встречаются первые два. Db2 и Oracle остались в крупных компаниях, где эти СУБД уже были до 1С.

Для клиент-серверного варианта нужна лицензия на сервер 1С — она покупается отдельно от клиентских лицензий. Ориентировочно ключ 64-разрядного сервера стоит порядка 90–120 тыс. руб., точную цену называет партнёр 1С.

Microsoft SQL Server: классика для 1С

MS SQL исторически самая отлаженная связка. Большинство регламентов, советов по оптимизации и инструментов мониторинга писались именно под неё.

Сильные стороны:

  • ✅ стабильное поведение на больших базах и сотнях пользователей;
  • ✅ привычные инструменты: SQL Server Management Studio, планы обслуживания, агент заданий;
  • ✅ резервное копирование «на лету», без остановки работы, плюс журнал транзакций для восстановления на конкретный момент.

Слабые стороны:

  • ❌ лицензия Standard стоит дорого, а официальная покупка в России сейчас затруднена;
  • ❌ бесплатная редакция Express ограничена: 10 ГБ на одну базу и урезанное использование памяти и ядер процессора;
  • ❌ нужна Windows Server, если не использовать сборку SQL Server для Linux.

Настройки, которые администратор делает сразу

  • 🔧 ограничить max server memory, чтобы SQL Server не съел память у сервера 1С на той же машине;
  • 🔧 выставить степень параллелизма max degree of parallelism = 1 — классическая рекомендация для нагрузки 1С;
  • 🔧 вынести tempdb и журналы транзакций на быстрый диск;
  • 🔧 выбрать модель восстановления: SIMPLE, если хватает ежесуточных копий, FULL — если нужна точка восстановления внутри дня.

Express подходит для старта небольшой фирмы на 5–15 пользователей. Когда база приближается к 10 ГБ, заранее планируйте переход на PostgreSQL или платную редакцию — по достижении предела запись в базу прекращается.

PostgreSQL: бесплатный путь без компромисса по функциям

PostgreSQL распространяется бесплатно и не имеет лимита на размер базы. Для 1С используют не «чистый» PostgreSQL, а сборки с патчами под платформу. Их выпускает фирма 1С (дистрибутив на сайте поддержки) и компания Postgres Professional.

Почему его выбирают:

  • 💰 нет затрат на лицензию СУБД;
  • 🐧 работает на Linux и Windows, хорошо дружит с Linux-сервером 1С;
  • 🇷🇺 есть отечественные сертифицированные сборки — это важно для госсектора и компаний с требованиями к импортозамещению.

О чём помнить:

  • ⚙️ «из коробки» настройки рассчитаны на слабую машину — их нужно поправить под объём памяти;
  • ⚙️ отдельные тяжёлые отчёты на PostgreSQL могут работать медленнее, чем на MS SQL, особенно со сложными запросами со множеством соединений;
  • ⚙️ без регулярного VACUUM и ANALYZE база раздувается и теряет скорость.

Базовые параметры postgresql.conf

Ниже — стартовая точка для выделенного сервера с 32 ГБ памяти. Значения подстраивайте под свою нагрузку.

shared_buffers = 8GB
effective_cache_size = 24GB
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 500
autovacuum = on

shared_buffers обычно берут около четверти памяти, effective_cache_size — около трёх четвертей. work_mem выделяется на каждую операцию сортировки, поэтому большое значение при сотнях соединений может исчерпать память.

Изменение shared_buffers и max_connections вступает в силу только после перезапуска службы PostgreSQL. Все сеансы 1С при этом оборвутся — делайте это вне рабочего времени и предупредите пользователей.

Какую СУБД выбрать и когда уходить с файла

Однозначного «лучше» нет. Решают число пользователей, размер базы, бюджет и наличие администратора.

СитуацияЧто выбрать
1–5 пользователей, одна организация, офисФайловая база
5–15 пользователей, база до 10 ГБ, нет бюджета на СУБДСервер 1С + PostgreSQL или MS SQL Express
15–100 пользователей, несколько конфигурацийСервер 1С + PostgreSQL или MS SQL Standard
Сотни пользователей, высокая нагрузкаСервер 1С + MS SQL Standard/Enterprise или PostgreSQL с опытным администратором
Требования импортозамещенияСервер 1С на Linux + отечественная сборка PostgreSQL

Сигналы, что пора переходить на клиент-сервер

  • 🐢 при проведении документов у коллег «зависает» программа;
  • 🔒 регулярно появляются ошибки блокировки при одновременной работе;
  • 💥 база уже повреждалась после сбоя сети или питания;
  • 📈 1Cv8.1CD перевалил за 5–10 ГБ и продолжает расти;
  • 🌐 сотрудники работают удалённо, а терминальный сервер не спасает.
Сколько у вас одновременных пользователей и есть ли администратор?

Когда переход не нужен

Не стоит «на всякий случай» поднимать сервер для двух бухгалтеров. Это лицензия сервера, отдельная машина, настройка и обслуживание. Если тормоза вызваны медленным диском или антивирусом, который проверяет 1Cv8.1CD, сервер проблему не решит — сначала уберите эти причины.

Перенос базы и регулярное обслуживание

Перенос из файла на сервер

Самый надёжный способ — через файл выгрузки .dt. Он одинаково подходит для перехода с файла на MS SQL, с файла на PostgreSQL и между СУБД.

  1. В файловой базе откройте Конфигуратор и выполните Администрирование → Выгрузить информационную базу. Пользователи в этот момент должны выйти из базы.
  2. На сервере 1С создайте новую информационную базу: в окне запуска Добавить → Создание новой информационной базы → вариант размещения на сервере 1С:Предприятия. Укажите тип СУБД, имя сервера СУБД, имя базы и учётную запись, отметьте создание базы данных при её отсутствии.
  3. Откройте новую базу в Конфигураторе и выполните Администрирование → Загрузить информационную базу, выбрав файл .dt.
  4. Запустите базу в режиме 1С:Предприятие, проверьте остатки и несколько отчётов.
  5. В окне запуска у пользователей замените старую базу на новую.
Перед переносом базы на сервер
Выполнено: 0 / 6

Загрузка .dt полностью заменяет содержимое базы-приёмника. Если по ошибке выбрать рабочую серверную базу, её данные будут перезаписаны.

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

Что обслуживать в каждом варианте

ВариантРегулярные работы
Файловая базаежедневная выгрузка .dt или копия папки при закрытой базе; проверка утилитой chdbfl.exe после сбоев
MS SQL Serverполная копия ежедневно, копии журнала транзакций при FULL; обновление статистики; перестроение индексов раз в неделю
PostgreSQLpg_dump или физическое резервирование; контроль autovacuum; периодический VACUUM ANALYZE

Утилита chdbfl.exe лежит в папке bin установленной платформы. Она проверяет файл 1Cv8.1CD без запуска 1С, но база при этом должна быть закрыта всеми пользователями.

Для серверных баз средствами 1С тоже доступна команда Администрирование → Тестирование и исправление в Конфигураторе. Она требует монопольного доступа, поэтому запускайте её после завершения всех сеансов.

Копии на уровне СУБД быстрее и надёжнее выгрузки .dt для больших баз. Выгрузку .dt при этом всё равно делайте хотя бы раз в неделю: из неё можно поднять базу на любой СУБД.

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

Можно ли работать с одной базой одновременно в файловом и серверном режиме?
Нет. Это две разные копии данных. После переноса старую файловую базу нужно убрать из списка, иначе часть пользователей продолжит вносить данные в неё.
Видит ли бухгалтер разницу после перехода на SQL?
Интерфейс и данные остаются прежними. Разница заметна в скорости проведения и отчётов, а также в том, что база перестаёт «падать» при сбоях сети.
Можно ли открыть базу 1С напрямую через SQL и поправить данные?
Технически таблицы видны, но имена у них служебные, а прямые изменения обходят логику конфигурации. Это ведёт к рассинхронизации данных и не поддерживается. Править данные нужно средствами 1С.
Нужна ли лицензия на сервер 1С для PostgreSQL?
Да. Бесплатна только СУБД. Для любого клиент-серверного варианта требуется лицензия на сервер 1С плюс клиентские лицензии по числу пользователей.
Где удобнее держать сервер 1С и СУБД — на одной машине или на разных?
До нескольких десятков пользователей обычно хватает одной мощной машины. При росте нагрузки СУБД выносят на отдельный сервер с быстрыми дисками, а между ними оставляют быструю локальную сеть.