Администрирование · 12 мин
Как файловую базу 1С сделать серверной
Пошаговая инструкция по переводу файловой базы 1С в серверный режим: выбор СУБД, выгрузка в dt, публикация в консоли кластера, проверка результата и типичные ошибки.
Файловый режим удобен для небольших баз: база лежит в папке, платформа работает с ней напрямую, никакой серверной инфраструктуры не требуется. Но у этого режима есть жёсткие ограничения: только один пользователь может вносить изменения в конкретный объект в момент времени, блокировки накладываются на целые таблицы, а при росте объёма данных типовые операции — проведение документов, закрытие месяца, формирование отчётов — начинают заметно тормозить.
Клиент-серверный вариант решает эти проблемы: данные хранит система управления базами данных (СУБД), а сервер 1С:Предприятия обрабатывает запросы пользователей и управляет транзакциями. Переход оправдан, когда с базой одновременно работают более 5–10 пользователей, объём базы перевалил за несколько гигабайт, возникают конфликты блокировок или требуется надёжное централизованное резервное копирование.
Сама процедура миграции технически проста: база выгружается в файл .dt, затем загружается в новую информационную базу, созданную на сервере. Сложности обычно возникают не с выгрузкой, а с подготовкой инфраструктуры — установкой СУБД, сервера 1С и выдачей прав. Ниже разобран весь путь от оценки готовности до проверки результата.
Когда переход на клиент-серверный режим действительно нужен
Не каждой базе нужен серверный режим. Если с базой работают 2–3 человека, объём данных небольшой, а жалоб на скорость нет, переход только добавит затрат на лицензии и администрирование. Серверный вариант требует отдельного сервера (физического или виртуального), лицензии на сервер 1С и лицензии на СУБД, если используется коммерческий продукт.
Однозначные сигналы к переходу: пользователи регулярно видят ошибки «Конфликт блокировок при выполнении транзакции», регламентные операции (закрытие месяца, расчёт себестоимости) выполняются часами, база перестаёт помещаться в разумные окна обслуживания, а тестирование и исправление занимает всю ночь. Ещё один признак — необходимость разграничить права на уровне записей и организовать работу через веб-клиент или тонкий клиент по сети с нормальной скоростью.
В файловом режиме блокировки таблиц становятся узким местом
Файловая СУБД деградирует на больших объёмах, обслуживание затягивается
Признак конкуренции за данные, которую файловый режим не умеет разруливать
СУБД позволяет делать горячие копии и журналирование
Что понадобится: сервер 1С, СУБД и лицензии
Для клиент-серверного режима нужны три компонента: сервер 1С:Предприятия, СУБД и клиентские лицензии. Сервер 1С устанавливается на отдельную машину (Windows или Linux) и управляет кластером информационных баз. СУБД может быть коммерческой (Microsoft SQL Server, Oracle, IBM Db2) или свободной (PostgreSQL в сборке, адаптированной под 1С). Для небольших и средних внедрений чаще всего выбирают PostgreSQL — он не требует лицензионных платежей и нормально справляется с нагрузкой при грамотной настройке.
По лицензированию: для серверного режима нужна лицензия на сервер 1С:Предприятия, а клиентские лицензии могут выдаваться сервером автоматически, если программный ключ установлен на сервере. Это упрощает раздачу лицензий пользователям по сети. Точные условия лицензирования зависят от редакции платформы и приобретённых продуктов — их стоит уточнить у поставщика до начала работ.
Выбор СУБД
Бесплатный, хорошо подходит для малых и средних баз; требует специальной сборки и ручной настройки параметров
Удобное администрирование и интеграция с Windows-инфраструктурой; требует платных лицензий на сервер или ядра
Если в компании уже есть администратор Oracle или Db2 — разумно использовать её, чтобы не разводить зоопарк
Подготовка: бэкап, тестовая среда и проверка конфигурации
Первое и не обсуждаемое действие — полная резервная копия. Для файловой базы это либо копия всей папки с файлом 1Cv8.1CD при остановленной работе пользователей, либо выгрузка через конфигуратор в файл .dt. Оба варианта лучше сделать: файл копируется быстро, а dt пригодится непосредственно для миграции.
Перед боевым переходом соберите тестовый стенд: установите сервер 1С и СУБД на отдельную машину или виртуальную машину, прогоните миграцию на копии базы и дайте ключевым пользователям поработать пару дней. Так вы заранее увидите проблемы с производительностью, правами доступа и спецификой конфигурации.
Отдельно проверьте саму конфигурацию. Большинство типовых конфигураций работают в обоих режимах без изменений, но самописные и сильно доработанные решения могут содержать код, привязанный к файловой специфике: прямые пути к файлам на локальных дисках, COM-обмены, выполняемые на клиенте, использование OLE. В клиент-серверном режиме часть кода исполняется на сервере, где нет доступа к локальным дискам пользователей и их COM-объектам.
Пошаговая процедура миграции
После подготовки инфраструктуры сама миграция сводится к нескольким шагам. Все действия выполняются в монопольном режиме — пользователи на время перехода не должны работать с базой.
- 1Завершите работу всех пользователей и отключите базу от сетевого доступа
- 2Откройте базу в конфигураторе и выполните «Администрирование → Выгрузить информационную базу» — получите файл .dt
- 3Установите сервер 1С:Предприятия и СУБД, убедитесь, что служба агента сервера запущена
- 4Откройте консоль кластера серверов 1С и создайте новую информационную базу с типом СУБД, указав сервер СУБД, имя базы и учётную запись с правами
- 5Откройте созданную пустую базу в конфигураторе и выполните «Администрирование → Загрузить информационную базу», выбрав файл .dt
- 6Дождитесь завершения загрузки и реструктуризации, затем запустите базу в режиме предприятия и проверьте работу
- 7Настройте права пользователей, регламентные задания и резервное копирование средствами СУБД
При создании базы в консоли кластера обратите внимание на параметры: для PostgreSQL обычно указывают создание базы данных при её отсутствии, а учётная запись СУБД должна иметь права на создание и изменение объектов. Для MS SQL Server базу данных часто создают заранее средствами Management Studio, а в консоли кластера только подключаются к ней.
Время загрузки зависит от объёма базы и производительности дисковой подсистемы: небольшая база загружается за десятки минут, большая — за несколько часов. Прерывать процесс нельзя — получите базу в непредсказуемом состоянии, которую придётся пересоздавать.
Настройка после перехода
После успешной загрузки работа не заканчивается. Во-первых, настройте СУБД: параметры по умолчанию почти никогда не оптимальны для 1С. Для PostgreSQL критичны настройки памяти (shared_buffers, work_mem, effective_cache_size), для MS SQL Server — размер tempdb, модель восстановления и настройки параллелизма. Конкретные значения подбираются под объём данных и железо.
Во-вторых, перенастройте регламентные операции. Полный бэкап теперь логично делать средствами СУБД — это быстрее и позволяет восстанавливаться на момент времени. Обновление статистики и перестроение индексов также выполняются на уровне СУБД по расписанию. Регламентные задания самой конфигурации проверьте отдельно: в серверном режиме они исполняются на сервере, и все пути к файлам обмена должны быть доступны именно с сервера, а не с пользовательских машин.
В-третьих, обновите списки баз у пользователей. Вместо пути к сетевой папке теперь указывается сервер 1С и имя информационной базы в кластере. Список можно распространить через общий файл ibases.v8i или групповые политики.
Проверка результата и типичные ошибки
Признаки успешной миграции: база открывается в режиме предприятия через сервер, несколько пользователей одновременно проводят документы без конфликтов блокировок, отчёты формируются заметно быстрее, регламентные задания выполняются по расписанию. Обязательно сверьте контрольные итоги: оборотно-сальдовую ведомость, остатки по складу и взаиморасчёты до и после перехода — они должны совпадать до копейки.
Как проверить результат
База открывается через сервер 1С, в списке указан кластер, а не папка
Пользователи по-прежнему заходят в файловую копию по сетевому пути
Несколько пользователей проводят документы параллельно без ошибок блокировок
Появляются ошибки «Конфликт блокировок» в простых сценариях
ОСВ и остатки совпадают с данными файловой базы
Расхождения в суммах — признак прерванной загрузки
Выполняются по расписанию, в журнале регистрации нет ошибок
Задания падают из-за недоступных путей или прав
Ограничения и альтернативы
Серверный режим — не единственный способ ускорить файловую базу. Если проблема только в скорости сети, иногда помогает перенос файловой базы на быстрые диски и отказ от работы по Wi-Fi. Если нужен доступ извне, файловую базу можно опубликовать на веб-сервере — это проще полноценного клиент-серверного контура, хотя и не снимает ограничений по блокировкам.
Обратная миграция тоже возможна: серверную базу можно выгрузить в .dt и загрузить в файловый вариант. Это полезно для создания локальных копий для разработки и тестирования. Но учитывайте ограничения файлового формата — очень большие базы могут в него просто не поместиться.
Что важно запомнить
Переход выполняется через выгрузку в .dt и загрузку в базу, созданную в консоли кластера. Критичны три вещи: полный бэкап до начала, тестовый прогон на копии и настройка СУБД после миграции. Старую файловую копию сразу изолируйте от пользователей, а итоги сверьте до запуска в эксплуатацию.
Частые вопросы
Можно ли перевести базу в серверный режим без выгрузки в .dt?
Нет, штатный способ миграции между файловым и клиент-серверным режимом — только через выгрузку и загрузку информационной базы. Прямого «подключения» файла 1Cv8.1CD к СУБД не существует: это принципиально разные форматы хранения данных.
Сколько времени занимает переход?
Сама выгрузка и загрузка небольшой базы укладывается в один-два часа, крупной — может занять ночь. Но основное время уходит на подготовку: установку сервера 1С и СУБД, тестовый прогон и настройку. Реалистично планировать переход на выходные с запасом времени на откат.
Нужно ли дорабатывать конфигурацию под серверный режим?
Типовые конфигурации обычно работают без изменений. Доработки могут потребоваться в самописных решениях: код, обращающийся к локальным файлам и COM-объектам на клиенте, в серверном режиме часто исполняется на сервере, где этих ресурсов нет. Проверяйте такие места на тестовом стенде.
Что делать, если после перехода база работает медленнее?
Почти всегда причина в ненастроенной СУБД: параметры по умолчанию рассчитаны на минимальное железо. Проверьте выделение памяти, размещение tempdb или аналога на быстрых дисках, планы обслуживания индексов и статистики. Также убедитесь, что сервер 1С и СУБД не конкурируют за ресурсы на слабой машине.
Можно ли вернуться обратно в файловый режим?
Да: выгрузите серверную базу в .dt и загрузите её в новую файловую информационную базу. Ограничение — объём: очень большие базы могут не поместиться в файловый формат. Поэтому перед миграцией в серверный режим стоит оценить, не потребуется ли обратный путь.
Нужна ли отдельная лицензия для серверного режима?
Да, для работы сервера 1С:Предприятия требуется отдельная лицензия на сервер, плюс клиентские лицензии на пользователей. Если используется коммерческая СУБД вроде MS SQL Server, потребуются и её лицензии. Условия зависят от редакции продуктов, поэтому детали лучше уточнить у поставщика до покупки.