Переход с файловой базы 1С на клиент-серверный вариант с MS SQL или PostgreSQL
Содержание
Чтобы перевести 1С на SQL, нужны три вещи: установленный сервер 1С:Предприятия, СУБД (MS SQL Server или PostgreSQL) и выгрузка файловой базы в .dt. Порядок такой: создаёте пустую базу в кластере серверов, в Конфигураторе файловой базы делаете Администрирование → Выгрузить информационную базу, а в Конфигураторе новой серверной базы — Администрирование → Загрузить информационную базу.
Сама конвертация базы занимает от 15 минут до пары часов, в зависимости от объёма. Больше времени уходит на подготовку: лицензии, порты, учётные записи. Ниже — порядок, при котором переход проходит за один вечер, а утром пользователи работают в серверной базе.
Подготовка к переводу 1С на SQL: сервер, СУБД и лицензии
Файловая база упирается в потолок примерно на 10–15 одновременных пользователях или при объёме файла 1Cv8.1CD в десятки гигабайт. Начинаются блокировки, долгое закрытие месяца
, зависания при обмене. Клиент-серверный вариант снимает эти ограничения, но требует отдельной инфраструктуры.
Что нужно купить и установить
- 🖥️ Сервер. Для офиса на 20–30 человек хватит 8 ядер, 32 ГБ памяти и SSD/NVMe-дисков. Сервер 1С и СУБД можно ставить на одну машину.
- 🔑 Лицензия на сервер 1С:Предприятия. Отдельно от клиентских. Для обычного офиса достаточно редакции ПРОФ, КОРП нужна для расширенных функций кластера (например, отказоустойчивость и гибкое распределение нагрузки). Ориентировочно ПРОФ стоит около 100 тыс. ₽, КОРП — в 2–2,5 раза дороже.
- 👥 Клиентские лицензии. Те же, что были у файловой базы. Их можно оставить на рабочих местах или перенести на сервер и выдавать сервером.
- 🗄️ СУБД. MS SQL Server или PostgreSQL (сравнение ниже).
MS SQL или PostgreSQL
| Критерий | MS SQL Server | PostgreSQL |
|---|---|---|
| Стоимость | Платные лицензии Standard; покупка в России сейчас затруднена | Бесплатно (сборка, адаптированная для 1С) |
| Бесплатная редакция | Express: до 10 ГБ на базу и ограничение по памяти и ядрам | Ограничений по объёму нет |
| Настройка | Привычный графический интерфейс, «из коробки» работает прилично | Нужна настройка параметров памяти в postgresql.conf |
| ОС | Windows (есть и Linux-версия) | Windows и Linux |
Для PostgreSQL берите сборку, подготовленную под 1С, а не «ванильную» с официального сайта. В адаптированных сборках есть расширения и патчи, которые нужны платформе.
Проверьте версии заранее
Версия сервера 1С и версия клиента на рабочих местах должны совпадать до последней цифры (например, 8.3.24.1548 и там, и там). Перед переходом выберите одну версию платформы и поставьте её на сервер и на все компьютеры пользователей.
Установка сервера 1С и СУБД
Сервер 1С:Предприятия
- Запустите установщик платформы на сервере и отметьте компоненты «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия».
- Отметьте установку сервера как службы Windows. Установщик предложит создать пользователя
USR1CV8— от его имени будет работать служба агента сервера. - После установки зарегистрируйте консоль администрирования. В меню «Пуск» есть ярлык «Регистрация утилиты администрирования серверов»; если его нет, выполните от администратора:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
- Откройте в брандмауэре порты:
1540(агент сервера),1541(менеджер кластера) и диапазон1560–1591(рабочие процессы). Для СУБД —1433у MS SQL или5432у PostgreSQL, если она стоит на другой машине.
MS SQL Server
- При установке выберите смешанную проверку подлинности (Windows и SQL Server) и задайте пароль для
sa. - Параметры сортировки —
Cyrillic_General_CI_AS. - Создайте отдельный логин для 1С (например,
user1c) с рольюdbcreatorилиsysadmin, чтобы сервер 1С мог сам создать базу. - Ограничьте максимальную память SQL Server в свойствах экземпляра. Иначе он займёт почти всё ОЗУ, и рабочим процессам 1С (
rphost) не хватит места.
PostgreSQL
- При инициализации кластера задайте локаль
ru_RU.UTF-8(на Windows —Russian, Russia). - Пароль пользователя
postgresзапишите — он понадобится при создании базы в 1С. - Увеличьте
shared_buffers(обычно около 25% ОЗУ) иwork_mem, затем перезапустите службу PostgreSQL. На стандартных значениях база работает заметно медленнее файловой.
Создание пустой базы в кластере серверов 1С
Базу можно создать двумя способами: через консоль кластера или через окно запуска 1С. Результат одинаковый.
Через консоль администрирования серверов
- Откройте консоль, разверните
Central 1C:Enterprise 8.3 servers → <имя сервера> → Кластеры → Локальный кластер. - Правой кнопкой по ветке «Информационные базы» →
Создать → Информационная база. - Заполните поля:
- Имя — короткое латиницей, например
buh. По нему пользователи будут подключаться. - Тип СУБД —
MS SQL ServerилиPostgreSQL. - Сервер баз данных — имя машины с СУБД (для MS SQL с именованным экземпляром —
server\instance). - База данных — имя базы в СУБД, можно то же
buh. - Пользователь и пароль — логин 1С в MS SQL или
postgres. - Смещение дат — для MS SQL ставьте
2000, для PostgreSQL оставьте0.
- Имя — короткое латиницей, например
- Отметьте «Создать базу данных в случае её отсутствия».
- Отметьте «Блокировка регламентных заданий включена» — пока база не проверена, фоновые обмены и загрузки в ней не нужны.
Через окно запуска 1С
В окне запуска нажмите Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации, на следующем шаге выберите «На сервере 1С:Предприятия». Поля те же, что в консоли. Так удобнее, если консоль не установлена.
Базу создавайте пустой, без конфигурации. Если создать её из шаблона типовой конфигурации, загрузка .dt всё равно всё перезапишет, но вы потратите лишнее время.
Выгрузка файловой базы 1С в файл .dt
Файл .dt — это полная выгрузка: конфигурация, данные, пользователи и их пароли. Формат не зависит от варианта работы, поэтому именно через него идёт конвертация из файловой базы в SQL.
Подготовка файловой базы
- Предупредите пользователей и назначьте время перехода — обычно вечер пятницы.
- Сделайте копию каталога базы целиком (файл
1Cv8.1CD). Это ваш путь отката, если что-то пойдёт не так. - Попросите всех выйти из базы. Работа в старой базе после выгрузки потеряется: изменения не попадут в серверную.
- Запустите Конфигуратор и выполните
Администрирование → Тестирование и исправлениес проверкой логической и ссылочной целостности. Ошибки, которые в файловой базе «молчали», при загрузке в SQL могут остановить процесс.
Выгрузка
В Конфигураторе: Администрирование → Выгрузить информационную базу, укажите путь и имя файла. Файл .dt обычно в несколько раз меньше 1Cv8.1CD.
Для больших баз удобнее выгрузка из командной строки — её можно запустить и уйти:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB "D:\Backup\buh.dt" /Out "D:\Backup\dump.log"
Результат и ошибки окажутся в dump.log.
Если файловая база падает при тестировании, сначала проверьте файл утилитой chkdbfl.exe из каталога bin платформы. Она работает с файлом 1Cv8.1CD напрямую, без запуска 1С.
Загрузка данных в серверную базу и первый запуск
- Добавьте серверную базу
в список окна запуска:
Добавить → Добавление в список существующей информационной базы → На сервере 1С:Предприятия. Строка подключения будет видаSrvr="srv1c";Ref="buh";. - Откройте её в Конфигураторе. Пустая база пускает без пароля.
Администрирование → Загрузить информационную базу, выберите файл.dt, подтвердите замену данных.- Дождитесь окончания. Платформа сама перезапустит Конфигуратор и попросит пароль — теперь уже пользователя из загруженной базы.
То же из командной строки:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log"
Первый запуск в режиме 1С:Предприятие
В типовых конфигурациях на БСП при первом запуске может появиться окно о блокировке работы с внешними ресурсами: программа видит, что база сменила расположение. Если серверная база становится рабочей, разрешите работу с внешними ресурсами. Старую файловую базу при этом оставьте заблокированной, чтобы она не запускала обмены и не отправляла отчётность параллельно.
Сразу после загрузки переименуйте файловую базу в списке (например, «Бухгалтерия — АРХИВ, не работать») или уберите её из списков пользователей. Иначе кто-нибудь по привычке откроет старую базу.
Права пользователей, регламентные задания и проверка скорости
Права и подключение пользователей
- 👤 Пользователи 1С и их роли переносятся вместе с
.dt, создавать их заново не нужно. - 💻 На рабочих местах добавьте серверную базу в список. Чтобы не ходить по компьютерам, раздайте список через общий файл
.v8iили настройку списка общих баз в окне запуска. - 🔐 Доступ к самой СУБД оставьте только у логина, под которым подключается сервер 1С, и у администратора. Пользователям прямой доступ к SQL не нужен.
- 📁 Пользователю службы
USR1CV8дайте права на каталоги, куда база пишет файлы (выгрузки обменов, вложения в томах).
Регламентные задания
Когда убедились, что данные на месте, снимите блокировку регламентных заданий в свойствах базы в консоли кластера. Затем зайдите в программу и проверьте, что обмены, загрузка курсов и классификаторов отрабатывают по расписанию.
Проверка работоспособности и производительности
Проверьте на реальных операциях то, что раньше тормозило:
| Что проверить | Как |
|---|---|
| Данные перенесены полностью | Сформируйте оборотно-сальдовую ведомость за год в обеих базах и сравните итоги |
| Скорость проведения | Перепроведите документы за неделю и засеките время |
| Тяжёлые отчёты | Запустите отчёт, который в файловой базе формировался дольше всего |
| Многопользовательская работа | Посадите 5–10 человек работать одновременно |
Для сравнения разных серверов используют синтетический тест Гилева — он даёт число «попугаев», удобное для сравнения конфигураций железа и настроек СУБД.
Обслуживание после перехода
Копировать файл базы больше нельзя — его нет. Резервные копии делает СУБД: в MS SQL — план обслуживания с полным бэкапом и перестроением индексов, в PostgreSQL — pg_dump по расписанию и работа autovacuum. Выгрузку в .dt оставьте как дополнительную копию раз в неделю, но не как основную.
Ошибки при переходе на SQL и способы их решения
Большинство сбоев при конвертации связано с сетью, правами и версиями. Выберите симптом:
Перезапуск службы агента сервера 1С или СУБД обрывает сеансы всех пользователей. Делайте это вне рабочего времени или предупредив людей.
Если перейти не получается и на сервер нет бюджета, есть промежуточный вариант: опубликовать файловую базу на веб-сервере и подключать пользователей через тонкий клиент или браузер. Это не снимает ограничений файловой базы по нагрузке, но выигрывает время до покупки лицензий.