Файловая и клиент-серверная 1С: чем отличаются и когда пора переходить
Почти каждая небольшая компания начинает с файловой базы 1С: поставили программу, создали базу в папке, работают. Через пару лет людей становится больше, появляются ошибки блокировок, и программист или приходящий айтишник говорит: «Пора переводить на сервер» или «пора на SQL».
Иногда он прав, иногда проблему можно решить дешевле. Чтобы принять решение осознанно, а не на веру, разберём, чем эти два варианта отличаются по устройству, что придётся докупить, кто будет всё это обслуживать и как проходит сам переход.
Как устроена файловая база
Вся файловая база — это один файл 1Cv8.1CD в папке. Программа 1С открывает его напрямую, примерно как Word открывает документ. Отдельной программы, которая управляла бы доступом к данным, нет: каждая запущенная копия 1С сама читает и пишет в файл, а очерёдность между ними регулирует платформа.
Важно, где при этом выполняется работа. Здесь два принципиально разных сценария.
Файл в общей папке, сотрудники открывают его по сети. Все вычисления идут на компьютере каждого пользователя, а данные он тянет из файла через локальную сеть. Это самый слабый вариант: медленно, а обрыв сети во время записи может повредить базу. Подробно эту ситуацию мы разбирали в статье «Почему тормозит 1С».
Файл лежит на сервере, и 1С работает там же. Сотрудники подключаются к серверу по удалённому рабочему столу (RDP) или через веб-публикацию, а 1С читает файл с локального быстрого диска. По сети идёт только изображение экрана или интерфейс. В таком виде файловая база показывает себя с лучшей стороны, и для небольшой команды этого часто достаточно.
Как устроена клиент-серверная база
Здесь работу делят три отдельных компонента:
- СУБД — система управления базами данных, где физически хранятся данные. Для 1С в Казахстане на практике это MS SQL Server или PostgreSQL.
- Сервер 1С:Предприятия — программа, которая выполняет серверную часть работы: проведение документов, запросы, формирование отчётов. Она получает данные от СУБД и отдаёт результат пользователям.
- Клиенты — то, что видит пользователь: тонкий клиент, веб-клиент или 1С, запущенная в сеансе удалённого рабочего стола.
Данные больше не лежат одним файлом. Их хранит СУБД, которая сама следит за целостностью, ведёт журнал всех изменений и разруливает одновременный доступ десятков пользователей.
Для бухгалтера снаружи ничего не меняется: та же конфигурация, те же документы и отчёты. Программный код «Бухгалтерии для Казахстана» или «Управления торговлей» одинаков в обоих вариантах — разница в том, кто и как работает с данными под капотом.
Блокировки: почему в файловой базе все ждут друг друга
Когда сотрудник проводит документ, 1С должна на время запретить другим менять те же данные, иначе остатки посчитаются неправильно. Это и есть блокировка.
В файловой базе блокируются таблицы целиком. Пока менеджер проводит реализацию и записывает движения по остаткам товаров, кладовщик, который в ту же секунду проводит поступление, ждёт — даже если товары у них совсем разные. Проведение занимает доли секунды, и при двух-трёх пользователях этого никто не замечает. Но при десяти активных пользователях очередь становится ощутимой, а если ожидание затягивается, появляется знакомое «Конфликт блокировок при выполнении транзакции».
В клиент-серверной базе в режиме управляемых блокировок блокируются конкретные записи. Два менеджера, которые продают разные товары, друг другу не мешают. Ждать приходится только тогда, когда люди действительно трогают одни и те же данные.
Одна оговорка. Современные типовые конфигурации работают в режиме управляемых блокировок. Но старые или сильно доработанные базы иногда остаются в автоматическом режиме, и тогда выигрыш от перехода может оказаться меньше ожидаемого. Этот момент стоит уточнить у программиста до переезда, а не после.
Надёжность и резервные копии
Файловая база уязвима к сбоям во время записи. Отключили свет, зависла сеть, кто-то принудительно закрыл 1С в момент проведения — и в файле появляются повреждения. Обычно их лечит «Тестирование и исправление» в конфигураторе, но бывает, что часть данных приходится восстанавливать из копии.
С копиями тоже есть нюанс. Выгрузка в файл .dt требует, чтобы все пользователи вышли из базы. Простое копирование файла 1Cv8.1CD во время работы может дать несогласованную копию, которая не откроется именно тогда, когда понадобится.
Клиент-серверная база устроена надёжнее. СУБД записывает каждое изменение в журнал транзакций, и после аварийного выключения незавершённые операции откатываются автоматически, а база остаётся в целостном состоянии. Резервные копии СУБД делает прямо во время работы, никого не выгоняя. А при соответствующей настройке можно восстановить базу на конкретный момент — например, на 14:30, до того как кто-то запустил обработку, которая заново провела документы за полгода.
Но это не волшебство. Если сломается диск сервера или до него доберётся шифровальщик, СУБД не спасёт — нужны копии, которые хранятся отдельно. Об этом — в статье о резервном копировании 1С.
Лицензии: что придётся докупить
Клиентские лицензии нужны в обоих вариантах, по числу одновременно работающих пользователей. При переходе на сервер их количество не меняется.
Лицензия на сервер 1С:Предприятия нужна только для клиент-серверного варианта. Есть несколько её видов — от вариантов для небольшого числа подключений до редакции КОРП с расширенными возможностями для крупных систем. Какая подойдёт вам, зависит от числа пользователей и требований; это лучше уточнить у партнёра 1С до покупки.
СУБД. PostgreSQL бесплатна, а 1С выпускает и поддерживает её сборку, адаптированную под платформу. MS SQL Server — платный продукт Microsoft, который лицензируется отдельно. У него есть бесплатная редакция Express, но у неё ограничения по размеру базы и используемой памяти, и для рабочей базы растущей компании её обычно не хватает.
Базовые версии конфигураций не переводятся на сервер. Базовые версии (например, «Бухгалтерия для Казахстана, базовая версия») рассчитаны на одного пользователя и работают только в файловом режиме. Если у вас базовая версия, сначала нужен переход на ПРОФ.
Если сервер свой, к этому добавляется Windows Server с клиентскими лицензиями. При аренде часть лицензий может быть у провайдера — уточняйте заранее, что входит в цену, а что ваше.
Администрирование: кто будет за этим следить
Файловую базу обслуживать почти не нужно: регулярные резервные копии, иногда тестирование и исправление, исключения в антивирусе. С этим справится и бухгалтер с инструкцией.
С клиент-серверной так не получится. Вот что в ней нужно делать регулярно:
- Регламентные операции в СУБД. Обновление статистики и перестроение индексов в MS SQL, очистка и анализ таблиц в PostgreSQL. Без них база месяц за месяцем работает всё медленнее, и никто не понимает почему.
- Контроль журнала транзакций. Классическая история: журнал MS SQL настроен на полное восстановление, но копии журнала никто не делает. Он растёт, пока не займёт весь диск, и в какой-то момент база перестаёт принимать изменения.
- Обновление платформы. Версия 1С на компьютерах пользователей должна совпадать с версией сервера 1С. Обновили сервер — обновляйте и клиенты, иначе никто не подключится.
- Наблюдение за сервером 1С. Зависшие сеансы, рост памяти у рабочих процессов, ошибки в журнале регистрации.
Если своего администратора нет, это либо регулярные расходы на приходящего специалиста, либо аренда, где обслуживание сервера и СУБД входит в стоимость.
Сравнение в одной таблице
| Файловая | Клиент-серверная | |
|---|---|---|
| Где хранятся данные | Один файл 1Cv8.1CD |
В базе данных MS SQL или PostgreSQL |
| Блокировки | Таблицы целиком | Отдельные записи (в управляемом режиме) |
| Комфортно одновременно | 3–5 человек по сети, до 5–7 и иногда больше через RDP или веб на сервере | Десятки и сотни пользователей |
| Устойчивость к сбоям | Повреждения при обрыве записи | Журнал транзакций, автоматический откат |
| Резервные копии | Нужно выгнать всех или рисковать согласованностью | Во время работы, возможно восстановление на момент времени |
| Регламентные задания | Выполняются, только пока кто-то работает в базе | Выполняются сервером 1С по расписанию |
| Лицензии | Только клиентские | Клиентские + сервер 1С, MS SQL — отдельно |
| Обслуживание | Минимальное | Нужен администратор |
| Скорость на 1–2 пользователях | Часто такая же или выше | Не быстрее, иногда чуть медленнее |
Когда файловой базы достаточно
Честно: во многих небольших компаниях переход на клиент-серверный вариант не нужен. Файловой базы хватает, если:
- одновременно работают до 5–7 человек и проводят документы не непрерывно;
- база небольшая и у вас нет постоянной фоновой нагрузки — обменов с сайтом каждые пять минут, интеграций с маркетплейсами;
- база работает там же, где лежит файл: сотрудники подключаются к серверу по RDP или через веб-публикацию, а файл лежит на SSD.
Последний пункт решает больше, чем кажется. Файловая база в общей папке на 6 человек — это мучение. Та же база на сервере с SSD, к которому все подходят по RDP или через браузер, обычно работает нормально. Многие небольшие компании годами живут именно в такой схеме, в том числе в облаке.
Признаки, что пора переходить
- Ошибки блокировок стали регулярными, особенно в часы пик, а при закрытии месяца работа у остальных практически встаёт.
- Одновременно работает больше 7–10 человек, и их число растёт.
- База уже была повреждена после сбоя питания или зависания, и восстанавливали её с потерями.
- Нужны фоновые задания по расписанию: обмен с сайтом, загрузка выписок из банка, синхронизация с другой базой. В файловой базе они выполняются, только пока кто-то из пользователей в ней работает.
- Нужна возможность восстановить базу на конкретный час, а не только на вчерашний вечер.
- База стала большой, и тестирование и исправление идёт так долго, что запускать его страшно.
Не признак: «база просто медленная». Если пользователей трое, а 1С тормозит, сначала проверьте диск, антивирус и процессор — переход на сервер может ничего не изменить.
Как проходит переход
Технически переход — это выгрузка базы из файлового варианта и загрузка её в серверный. Порядок такой:
- Подготовка. Лицензии на сервер 1С и пользователей, установленная СУБД, сервер 1С той же версии платформы, что и клиенты. Проверьте, что конфигурация не базовая.
- Проверка исходной базы. Сделайте копию и запустите тестирование и исправление. Ошибки лучше исправить до переноса, а не тащить их за собой.
- Выгрузка. Все выходят из базы, в конфигураторе: «Администрирование» → «Выгрузить информационную базу». Получается файл
.dt. - Создание пустой базы на сервере. Через консоль администрирования кластера или прямо из окна запуска 1С, выбрав размещение «На сервере 1С:Предприятия» с созданием базы данных в СУБД. На время проверки удобно включить блокировку регламентных заданий.
- Загрузка. В конфигураторе новой базы: «Администрирование» → «Загрузить информационную базу». Для крупной базы это может занять несколько часов.
- Проверка. Сверьте оборотно-сальдовую ведомость и остатки на одну дату в старой и новой базе, проверьте печатные формы, внешние обработки, обмены.
- Переключение. Пользователям добавляют новую базу в список, старую файловую убирают или переименовывают, чтобы никто по привычке не продолжил работать в ней.
Отдельно про регламентные задания. Когда вы снимете блокировку, сервер 1С начнёт выполнять обмены и загрузки по расписанию сам. Если старая база ещё где-то работает с теми же настройками, обмен с сайтом может пойти дважды — отключите задания в старой базе заранее.
Переход лучше делать вечером или в выходные, а перед этим — пробный перенос на копии, чтобы знать, сколько он займёт и что всплывёт.
Что изменится для пользователей
Ярлык и строка подключения. В списке баз вместо пути к папке будет адрес сервера и имя базы. Пользователи, пароли и права переезжают вместе с базой в файле .dt, заводить их заново не нужно.
Интерфейс — тот же. Документы, отчёты, настройки форм остаются прежними.
Скорость при одновременной работе станет лучше, а ошибок блокировок — меньше. Но они не исчезнут совсем: если два человека правят один и тот же документ, кому-то придётся подождать, и это нормально. Отдельные мелкие операции у одиночного пользователя могут работать так же или даже чуть медленнее, чем в файловой базе.
Пути к папкам в настройках. Часть кода теперь выполняется на сервере 1С, и если в обработке или настройке обмена указана папка вроде C:\Обмен, речь будет идти о диске сервера, а не компьютера пользователя. Такие места иногда приходится поправить.
Если база работает в арендованном облаке, весь этот переход обычно делает провайдер. У нас, например, перенос базы и настройка пользователей бесплатны, а мощность под клиент-серверный вариант подбирается вместе с вами — о том, на что смотреть в характеристиках сервера, читайте в статье «Как подобрать сервер для 1С».
Частые вопросы
Можно ли перевести базовую версию 1С на клиент-серверный вариант?
Нет. Базовые версии конфигураций рассчитаны на одного пользователя и работают только в файловом режиме. Чтобы перейти на сервер 1С, сначала нужно перейти на версию ПРОФ, а затем уже переносить базу.
Что лучше для 1С: MS SQL или PostgreSQL?
Для небольшой и средней компании обе СУБД работают с 1С нормально, и разница в скорости обычно не решающая. PostgreSQL бесплатна, и 1С выпускает её адаптированную сборку; MS SQL требует отдельных лицензий, но привычнее многим администраторам. Выбирайте ту, которую умеет обслуживать человек, отвечающий за сервер.
Можно ли вернуть базу из клиент-серверного варианта в файловый?
Да, тем же способом: выгрузить базу в файл .dt из конфигуратора и загрузить его в новую файловую базу. Так часто делают, чтобы передать копию базы программисту или аудитору.
Станет ли 1С быстрее после перехода на сервер?
Если вы упираетесь в блокировки и число одновременных пользователей — да, заметно. Если же причина медлительности в медленном диске, антивирусе или слабом процессоре, переход на сервер её не устранит, а при одном-двух пользователях разницы может не быть вовсе.