Переезд базы 1С в клиент-серверный режим: СУБД, сервер, перенос и первые недели работы

· 10 мин

Содержание

Чтобы перевести 1С с файловой базы на серверную, нужно поставить сервер 1С:Предприятия и СУБД (PostgreSQL или MS SQL), создать в кластере пустую базу и загрузить в неё выгрузку .dt из файловой базы. Выгрузку делают в Конфигураторе: Администрирование → Выгрузить информационную базу, загрузку — там же, командой Загрузить информационную базу. Сам перенос данных занимает от нескольких минут до пары часов, основная работа — подготовка сервера.

Файловый вариант проще: папка с файлом 1Cv8.1CD, общий доступ, никаких служб. Клиент-серверный сложнее в установке, но держит больше пользователей, не портит базу при обрыве сети и выполняет регламентные задания на сервере, а не в сеансе бухгалтера. Порядок переезда общий для платформы 8.3 и любой типовой конфигурации: Бухгалтерии, ЗУП, УТ. Сервер может работать на Windows Server 2016 и новее или на Linux.

Файловая или серверная база: признаки, что пора переезжать

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

  • 🐢 Тормоза при одновременной работе. Один проводит документы, остальные ждут: файловая база блокирует данные крупнее, чем серверная.
  • 💥 Повреждения базы. Обрыв сети или зависший клиент на сетевой папке — частая причина битого 1Cv8.1CD.
  • ⏰ Регламентные задания. В файловом режиме обмены, загрузка курсов и почта выполняются только пока кто-то сидит в базе. На сервере они работают круглосуточно.
  • 📈 Рост базы. Файл в десятки гигабайт медленно копируется, тестирование и исправление идёт часами.
  • 🌐 Удалённая работа. Тонкий клиент к серверу через интернет или веб-публикацию работает заметно бодрее, чем доступ к сетевой папке через VPN.
КритерийФайловая базаКлиент-серверная база
Что нужно установитьТолько платформа на клиентахСервер 1С + СУБД + клиенты
Одновременная работаПодходит для небольшой группыДесятки и сотни сеансов
Регламентные заданияТолько при открытом сеансеВыполняет сервер
Резервное копированиеКопия файла или .dtСредства СУБД + .dt
ЛицензииКлиентскиеКлиентские + лицензия на сервер
АдминистрированиеПочти не нужноНужен человек, который следит за сервером

Если тормоза есть, а пользователей трое, сначала проверьте диск и сеть. Перенос файла 1Cv8.1CD на SSD сервера и подключение по быстрой локальной сети иногда решают проблему без смены режима.

Какую СУБД выбрать для серверной 1С

Платформа 8.3 работает с четырьмя СУБД: PostgreSQL, Microsoft SQL Server, IBM Db2 и Oracle Database. На практике выбор почти всегда между первыми двумя.

СУБДПлюсыМинусыКому подходит
PostgreSQLБесплатная, работает на Windows и Linux, есть сборки с патчами под 1СНужна ручная настройка postgresql.confБольшинству малых и средних компаний
MS SQL ServerПривычные инструменты, удобный мастер обслуживанияЛицензия платная, доступность для новых покупок в России ограниченаТем, у кого он уже куплен
IBM Db2Годится для очень крупных базРедкие специалистыКрупным внедрениям
Oracle DatabaseМасштабируетсяДорогая, мало опыта у 1С-никовПочти не встречается в малом бизнесе

Для PostgreSQL берите сборку, адаптированную под 1С: её выпускает сама фирма 1С, есть также Postgres Pro. Ванильный PostgreSQL без патчей может работать медленнее на типовых запросах платформы.

Бесплатная редакция MS SQL Express ограничена по размеру базы и используемой памяти. Для рабочей 1С она годится разве что на тест.

Подготовка сервера: железо, ОС, лицензии

Железо

Ориентиры для одной-двух баз бухгалтерии и зарплаты, когда сервер 1С и СУБД стоят на одной машине:

ПользователейПроцессорПамятьДиск
до 104 ядра16 ГБSSD
10–306–8 ядер32 ГБNVMe SSD
30–608–16 ядер64 ГБNVMe, отдельный диск под журналы СУБД

Важна частота ядра: 1С выполняет многие операции в один поток, поэтому 8 быстрых ядер полезнее 24 медленных. Память почти целиком уходит СУБД под кэш данных.

Операционная система

  • 🪟 Windows Server 2016, 2019, 2022 — привычно, если в компании нет специалиста по Linux.
  • 🐧 Linux (Ubuntu, Debian, РЕД ОС, Astra Linux и другие) — нет платы за ОС, PostgreSQL на нём чувствует себя лучше.

Лицензии

Клиентские лицензии остаются те же: они нужны на каждый одновременный сеанс. Дополнительно покупается лицензия на сервер 1С:Предприятия: ПРОФ или КОРП. Ориентировочно ПРОФ стоит порядка 90–100 тыс. руб., КОРП в несколько раз дороже и нужен для крупных систем с кластерами. Для небольших групп существует продукт «1С:Сервер мини» — он дешевле, но ограничен по числу сеансов.

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

Перенос файловой базы 1С на сервер: пошаговая инструкция

Шаг 1. Установите сервер 1С

  1. Запустите установщик платформы той же версии, что стоит у пользователей.
  2. Отметьте компоненты «Сервер 1С:Предприятия 8», «Модули расширения веб-сервера» (если планируете веб-публикацию) и «Администрирование сервера 1С:Предприятия».
  3. Выберите установку сервера как службы Windows и пользователя, от имени которого служба будет работать. По умолчанию установщик создаёт USR1CV8.
  4. После установки зарегистрируйте консоль: в меню «Пуск» есть ярлык «Регистрация утилиты администрирования серверов». Он регистрирует radmin.dll той версии, которую вы поставили.

Проверьте, что в службах Windows запущена служба «Агент сервера 1С:Предприятия 8.3». На Linux служба называется по версии платформы, например srv1cv8-8.3.xx.xxxx.

Шаг 2. Установите и настройте СУБД

Для PostgreSQL задайте пароль пользователя postgres или создайте отдельного пользователя для 1С с правом создавать базы. Для MS SQL создайте логин SQL Server с ролью dbcreator и включите смешанную проверку подлинности.

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

Шаг 3. Подготовьте файловую базу

  1. Предупредите пользователей и выгоните всех из базы.
  2. Откройте файловую базу в Конфигураторе и запустите Администрирование → Тестирование и исправление с проверкой логической и ссылочной целостности. Ошибки, которые файловый режим терпел, при загрузке в СУБД могут остановить процесс.
  3. Выполните Администрирование → Выгрузить информационную базу и сохраните файл .dt на диск сервера.

Не удаляйте и не меняйте исходную файловую базу до конца проверки. Это ваш путь отката.

Шаг 4. Создайте серверную базу

Проще всего — прямо из окна запуска 1С на сервере или любом клиенте:

  1. Нажмите «Добавить» → «Создание новой информационной базы» → «Создание информационной базы без конфигурации».
  2. Тип расположения — «На сервере 1С:Предприятия».
  3. Заполните параметры:
    • Кластер серверов — имя компьютера с сервером 1С;
    • Имя информационной базы в кластере — например, buh;
    • Тип СУБД — PostgreSQL или MS SQL Server;
    • Сервер баз данных — имя сервера СУБД (localhost, если на той же машине);
    • Имя базы данных — обычно совпадает с именем в кластере;
    • пользователь и пароль СУБД из шага 2;
    • Смещение дат — для MS SQL ставьте 2000;
    • флажки «Разрешить выдачу лицензий сервером 1С:Предприятия» и «Создать базу данных в случае ее отсутствия»;
    • флажок «Установить блокировку регламентных заданий» — оставьте включённым до переключения.
  4. Нажмите «Далее» и «Готово». База появится в кластере и в СУБД.

Шаг 5. Загрузите данные

  1. Откройте новую серверную базу в Конфигураторе.
  2. Выберите Администрирование → Загрузить информационную базу и укажите файл .dt.
  3. Дождитесь окончания. Конфигуратор предложит перезапуститься — соглашайтесь.

Шаг 6. Проверьте и переключите пользователей

Откройте базу в режиме 1С:Предприятие, сформируйте оборотно-сальдовую ведомость за последний месяц и сверьте с файловой копией. Проверьте вход пользователей и печать. Затем снимите блокировку регламентных заданий: в консоли кластера откройте свойства базы и уберите флажок «Блокировка регламентных заданий включена».

Перед тем как открыть базу пользователям
Выполнено: 0 / 6

Строка подключения к серверной базе в списке баз выглядит так: сервер — имя компьютера, база — имя в кластере. В файле списка баз ibases.v8i она записана как:

Connect=Srvr="srv1c";Ref="buh";

Если пользователей много, разошлите им общий файл списка баз через сетевую папку — его подключают в настройках окна запуска.

Как ускорить серверную базу 1С после переезда

Серверная база на настройках по умолчанию может работать не быстрее файловой. Три вещи дают основной эффект.

Память СУБД

  • PostgreSQL: shared_buffers — около 25% памяти сервера, effective_cache_size — 50–75%. Значение work_mem не завышайте: оно выделяется на каждую операцию сортировки, а не на соединение.
  • MS SQL: обязательно ограничьте «Максимальный объём памяти сервера», оставив операционной системе и серверу 1С 4–8 ГБ. По умолчанию SQL Server забирает всю память, и рабочие процессы 1С начинают выгружаться на диск.

Модель восстановления и журналы

Для MS SQL выберите модель восстановления «Простая», если не настраиваете резервное копирование журналов транзакций. В «Полной» модели без бэкапов журнала файл .ldf растёт, пока не займёт диск.

Регулярная статистика

Платформа строит планы запросов по статистике СУБД. Устаревшая статистика — частая причина внезапных тормозов спустя месяц после переезда. Для PostgreSQL следите, чтобы работал autovacuum, и раз в неделю делайте VACUUM ANALYZE. Для MS SQL настройте план обслуживания: ежедневное обновление статистики, еженедельное перестроение индексов.

Если тормоза сохраняются, посмотрите в консоли кластера на количество сеансов и рабочих процессов. Ограничения по памяти рабочих процессов задаются в свойствах рабочего сервера.

Типичные ошибки при переводе с файловой базы на серверную

Диагностика: выберите симптом

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

Обслуживание серверной 1С: обновления и резервные копии

Обновление конфигурации

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

  • в самой базе — через блокировку работы пользователей в разделе Администрирование → Обслуживание;
  • в консоли кластера — в свойствах базы включить блокировку начала сеансов и удалить активные сеансы.

Удаление сеансов в консоли обрывает работу пользователей без сохранения. Делайте это вне рабочего времени и после предупреждения.

Обновление платформы

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

Резервные копии

Выгрузка .dt остаётся полезной, но основной бэкап в клиент-серверном режиме делают средствами СУБД: pg_dump для PostgreSQL или задание резервного копирования в MS SQL. Это быстрее, не требует выгонять пользователей и не зависит от того, открыта ли база в Конфигураторе.

"C:\Program Files\PostgreSQL\15\bin\pg_dump.exe" -U postgres -Fc -f "D:\backup\buh.dump" buh

Путь к pg_dump.exe подставьте по своей версии PostgreSQL. Хотя бы раз в квартал разворачивайте копию на тестовую базу: нерабочий бэкап обнаруживают обычно в день аварии.

Частые вопросы о переходе на клиент-серверный вариант

Можно ли вернуться с серверной базы обратно на файловую?
Да. Выгрузите серверную базу в .dt, создайте пустую файловую и загрузите выгрузку. Данные и пользователи перенесутся.
Нужно ли покупать новые клиентские лицензии при переезде?
Нет. Клиентские лицензии остаются прежними, отдельно покупается только лицензия на сервер 1С:Предприятия.
Можно ли держать сервер 1С на компьютере одного из бухгалтеров?
Технически можно, но любая перезагрузка или сбой этого компьютера останавливает работу всех. Под сервер лучше выделить отдельную машину или виртуальную машину.
Перенесутся ли пароли пользователей 1С?
Да. Список пользователей, их права и пароли хранятся в самой базе и переезжают вместе с выгрузкой .dt.
Можно ли перевести на сервер только одну из нескольких баз?
Да. Файловые и серверные базы спокойно работают параллельно, каждую переводят отдельно, когда до неё дойдёт очередь.