Как перевести базу 1С из файлового режима в клиент-серверный
Содержание
Чтобы перенести файловую 1С на сервер, нужно выгрузить базу
в файл .dt через Конфигуратор, создать пустую базу в кластере сервера 1С на PostgreSQL или MS SQL и загрузить в неё этот файл. Сама загрузка занимает от 10 минут до пары часов. Основное время уходит на подготовку: СУБД, сервер 1С, серверную лицензию и сеть.
Вариантов два. Сервер 1С и СУБД на одной машине — так делают почти все компании до 30–50 пользователей. Две машины, отдельно под СУБД и под 1С, — для больших баз и нагрузки от сотни сеансов. Пошаговая инструкция ниже подходит для обоих случаев и для платформы 8.3 под Windows Server 2016 и новее.
Подготовка к переносу: железо, лицензии, версии
Прежде чем что-то устанавливать, проверьте три вещи. Без любой из них миграция встанет на полпути.
Серверная лицензия
Клиент-серверный вариант без лицензии на сервер 1С:Предприятия не работает . Нужна лицензия на сервер (x64 или КОРП). Клиентские лицензии остаются: программные лицензии, активированные на рабочих местах, и USB-ключи продолжают работать. Их можно перенести и на сервер, тогда флаг выдачи лицензий сервером в свойствах базы должен стоять.
Версия платформы
Клиент подключается только к серверу той же версии, вплоть до номера сборки. Если у пользователей стоит 8.3.24.1548, на сервер ставьте ровно её. Проще всего сразу обновить и клиентов, и сервер до одной сборки, которую поддерживает ваша конфигурация.
Ориентиры по железу
Цифры ниже ориентировочные, для типовых конфигураций вроде БП 3.0 или УТ 11 на одном сервере с СУБД:
| Пользователей | Процессор | ОЗУ | Диск |
|---|---|---|---|
| до 10 | 4 ядра | 16 ГБ | SSD 256 ГБ |
| 10–30 | 6–8 ядер | 32 ГБ | SSD/NVMe 512 ГБ |
| 30–60 | 12–16 ядер | 64 ГБ | NVMe, отдельный диск под СУБД |
- 🧠 Память важнее ядер: СУБД держит горячие данные в кеше, и чем больше влезает в ОЗУ, тем меньше обращений к диску.
- 💾 Только SSD. На HDD клиент-серверная база часто работает медленнее файловой.
- ⏱ Частота ядра важнее их числа: большая часть операций 1С выполняется в один поток.
Размер файла 1Cv8.1CD даёт ориентир по месту. В СУБД база займёт примерно столько же, плюс журнал транзакций и резервные копии. Закладывайте объём в 3–4 раза больше текущей базы.
Установка СУБД: PostgreSQL или MS SQL Server
Для 1С годятся обе. Выбор обычно решают деньги и привычки администратора.
| PostgreSQL | MS SQL Server | |
|---|---|---|
| Стоимость | бесплатно | платная лицензия, Express не подходит для рабочей базы из-за лимитов на размер и память |
| Сборка | нужна сборка, адаптированная для 1С (дистрибутив 1С или Postgres Pro) | стандартная |
| ОС | Windows и Linux | в основном Windows |
| Обслуживание | VACUUM, ANALYZE, pg_dump | планы обслуживания в Management Studio |
PostgreSQL
- Скачайте сборку PostgreSQL с патчами для 1С. Обычный дистрибутив с сайта PostgreSQL не подойдёт: в нём нет нужных типов и функций, база не создастся или будет работать с ошибками.
- Установите, задайте пароль пользователя
postgres. Его потом укажете при создании базы в кластере. - Если СУБД на отдельной машине, разрешите подключение с сервера 1С в
pg_hba.confи укажитеlisten_addressesвpostgresql.conf. - Поправьте память в
postgresql.conf. Стартовые значения для сервера с 32 ГБ:
shared_buffers = 8GB
effective_cache_size = 20GB
work_mem = 64MB
maintenance_work_mem = 1GB
После правки перезапустите службу PostgreSQL. На рабочем сервере это обрывает все подключения, делайте это до запуска пользователей.
MS SQL Server
- При установке выберите смешанную аутентификацию и задайте пароль
sa. Можно завести отдельный SQL-логин для 1С с рольюdbcreator. - Ограничьте максимальную память SQL Server в свойствах экземпляра. Иначе он займёт почти всё ОЗУ, и рабочим процессам 1С не хватит. Оставьте 1С и ОС 6–8 ГБ, а при 64 ГБ — до 12–16 ГБ.
- Для базы, которую вы резервируете только полными копиями раз в сутки, ставьте модель восстановления «Простая». При «Полной» без регулярных бэкапов журнала файл
.ldfвырастет до размеров диска.
Сервер 1С: установка службы и создание базы в кластере
Установка сервера 1С:Предприятия
- Запустите установщик платформы и отметьте компоненты «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия».
- Выберите установку сервера как службы Windows. Установщик создаст пользователя
USR1CV8или предложит указать своего. - Если базы на PostgreSQL или MS SQL лежат на другой машине, удобнее запускать службу от доменной учётной записи с правом «Вход в систему как служба».
- Зарегистрируйте консоль администрирования. На 64-битной системе это делается командой от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии в пути подставьте свой. Без регистрации radmin.dll консоль откроется с ошибкой или не увидит сервер.
- Откройте порты в брандмауэре: 1540 (агент сервера), 1541 (менеджер кластера) и диапазон рабочих процессов, по умолчанию 1560–1591.
netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
Клиент сначала обращается к агенту на 1540, тот направляет его к менеджеру кластера на 1541, дальше работа идёт с рабочим процессом из диапазона портов. Диапазон задаётся в свойствах рабочего сервера. Если меняли его там, меняйте и правило брандмауэра.
Создание пустой базы в кластере
Откройте консоль «Администрирование серверов 1С Предприятия». Добавьте центральный сервер по имени машины, раскройте кластер и в ветке «Информационные базы» создайте новую базу. Поля заполняются так:
- 📛 Имя — короткое, латиницей, без пробелов:
buh. Его пользователи укажут при подключении. - 🗄 Тип СУБД — PostgreSQL или MS SQL Server.
- 🖥 Сервер баз данных — имя машины с СУБД; для локальной
localhost. - 📁 База данных — имя базы в СУБД, удобно совпадающее с именем в кластере.
- 🔑 Пользователь и пароль сервера БД —
postgresили SQL-логин из прошлого шага. - 📅 Смещение дат — для MS SQL ставьте 2000.
- ✅ «Создать базу данных в случае ее отсутствия» — отметить.
- ⛔ «Установить блокировку регламентных заданий» — отметить на время переноса.
Про последний флаг. В файловом варианте регламентные задания выполняются, только пока открыт сеанс. Сервер 1С запускает их сам. Сразу после загрузки начнутся обмены, загрузка курсов, выгрузка в ЭДО. Если старая база ещё жива, получите двойные обмены. Блокировку снимете, когда отключите файловую базу .
Альтернатива консоли — окно запуска 1С: «Добавить» → «Создание новой информационной базы» → «Создание информационной базы без конфигурации» → «На сервере 1С:Предприятия». Поля те же.
Перенос данных: выгрузка и загрузка через .dt
Это центральный шаг. Порядок ниже рассчитан на то, чтобы ни один документ не потерялся между старой и новой базой.
Подготовка файловой базы
- Предупредите пользователей о времени переноса. Лучше вечер пятницы.
- Сделайте копию каталога базы целиком, вместе с
1Cv8.1CD. Это ваш откат. - Запустите в Конфигураторе «Тестирование и исправление» в режиме проверки. Ошибки в таблицах файловой базы часто ломают загрузку в СУБД на середине.
- Убедитесь, что основная конфигурация совпадает с конфигурацией базы данных. Если в заголовке Конфигуратора висит пометка об изменениях, сначала обновите конфигурацию базы данных.
Выгрузка
Для выгрузки в .dt нужен монопольный доступ: все пользователи должны выйти. Откройте базу в Конфигураторе и выберите Администрирование → Выгрузить информационную базу. Сохраните файл, например, D:\migr\buh.dt.
Загрузка в серверную базу
Подключите в окне запуска новую базу: «На сервере 1С:Предприятия», кластер — имя сервера, база — buh. Откройте её в Конфигураторе. Пустая база пускает без пароля. Выберите Администрирование → Загрузить информационную базу и укажите файл .dt.
После загрузки в серверной базе окажутся пользователи и пароли из файловой. Для входа в Конфигуратор понадобится пароль администратора из старой базы.
Пакетный режим
Для большой базы удобнее запускать выгрузку и загрузку из командной строки, с логом:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpIB "D:\migr\buh.dt" /Out "D:\migr\dump.log"
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /RestoreIB "D:\migr\buh.dt" /Out "D:\migr\restore.log"
Если в серверной базе уже есть пользователи, ко второй команде добавьте /N и /P.
Отключение старой базы
Переименуйте каталог файловой базы или уберите у пользователей права на запись. Удалите её из списка баз на рабочих местах и добавьте серверную. Иначе кто-то по привычке зайдёт в старую базу и неделю будет проводить документы мимо сервера.
Права доступа, пользователи и аутентификация
На сервере появляются три уровня доступа, которых в файловом режиме не было.
| Уровень | Где задаётся | Кто управляет |
|---|---|---|
| Администраторы центрального сервера | консоль, узел «Администраторы» центрального сервера | создание кластеров, регистрация серверов |
| Администраторы кластера | консоль, свойства кластера | создание и удаление баз, завершение сеансов |
| Пользователи базы | Конфигуратор или режим «Предприятие» | работа в самой 1С |
По умолчанию администраторов кластера нет, и любой, кто видит сервер в сети, может создать или удалить базу через консоль. Заведите администратора кластера сразу. Пароль храните отдельно: если его потерять, придётся останавливать службу и восстанавливать файлы настроек кластера из резервной копии.
Пользователи базы
Пользователи и их роли переезжают вместе с .dt, создавать их заново не нужно. Проверьте только аутентификацию операционной системы. Пользователь ОС в карточке пользователя 1С указывается в формате \\ДОМЕН\имя. Если в файловом режиме здесь стояли локальные учётки компьютеров, на сервере вход по ним работать не будет. Перепривяжите пользователей к доменным учётным записям.
Права учётной записи службы
Пользователь, от которого работает служба сервера 1С (USR1CV8 или доменный), должен иметь полный доступ к каталогу srvinfo с данными кластера. Если службу перенастраивали на другую учётную запись, проверьте права на этот каталог. Иначе служба не стартует или кластер пропадёт из консоли.
Что настроить после миграции, чтобы база работала быстро
Первые дни после переноса база может работать медленнее файловой. Это нормально, пока СУБД не собрала статистику и не прогрела кеш. Помогают такие настройки.
Обслуживание СУБД
- 📊 Статистика. Для PostgreSQL сразу после загрузки выполните
vacuumdb --all --analyzeи настройте ночной запуск. Для MS SQL создайте план обслуживания: ежедневно обновление статистики, раз в неделю перестроение индексов. - 🗑 Процедурный кеш MS SQL. После обновления статистики его очищают командой
DBCC FREEPROCCACHE, чтобы СУБД пересобрала планы запросов. Делайте это ночью: первые запросы после очистки идут медленнее. - 💾 Резервные копии. Теперь их делают средствами СУБД, а не копированием
1Cv8.1CD. Для PostgreSQL —pg_dump, для MS SQL — план обслуживания с полной копией.
"C:\Program Files\PostgreSQL\15\bin\pg_dump.exe" -U postgres -Fc -f "D:\backup\buh.backup" buh
Путь к pg_dump.exe зависит от версии и сборки PostgreSQL.
Настройки сервера 1С
- ⚙️ В свойствах рабочего сервера задаются число баз и соединений на один рабочий процесс. Для 10–30 пользователей значений по умолчанию обычно хватает.
- 🧹 Если пользователи жалуются на странности интерфейса после переноса, запустите клиент с ключом
/ClearCache. Кеш на рабочих местах хранит данные старой файловой базы. - 🔒 Регламентные задания: снимите блокировку в свойствах базы в консоли и проверьте, что расписание обменов не задваивается с другими базами.
Перезапуск службы сервера 1С или завершение рабочих процессов обрывает сеансы всех пользователей без сохранения данных. Делайте это вне рабочего времени или после предупреждения.
Если не помогло
Когда после недели работы база всё ещё медленная, смотрите узкое место по счётчикам Windows: загрузку ядра, очередь диска, свободную память. Если упирается в диск — нужен NVMe или отдельный диск под СУБД. Если в память — добавьте ОЗУ или ограничьте СУБД. Долгие отдельные операции, вроде закрытия месяца, ищут через технологический журнал или замер производительности в Конфигураторе.