Файловая и клиент-серверная 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С и пользователей, установленная СУБД, сервер 1С той же версии платформы, что и клиенты. Проверьте, что конфигурация не базовая.
  2. Проверка исходной базы. Сделайте копию и запустите тестирование и исправление. Ошибки лучше исправить до переноса, а не тащить их за собой.
  3. Выгрузка. Все выходят из базы, в конфигураторе: «Администрирование» → «Выгрузить информационную базу». Получается файл .dt.
  4. Создание пустой базы на сервере. Через консоль администрирования кластера или прямо из окна запуска 1С, выбрав размещение «На сервере 1С:Предприятия» с созданием базы данных в СУБД. На время проверки удобно включить блокировку регламентных заданий.
  5. Загрузка. В конфигураторе новой базы: «Администрирование» → «Загрузить информационную базу». Для крупной базы это может занять несколько часов.
  6. Проверка. Сверьте оборотно-сальдовую ведомость и остатки на одну дату в старой и новой базе, проверьте печатные формы, внешние обработки, обмены.
  7. Переключение. Пользователям добавляют новую базу в список, старую файловую убирают или переименовывают, чтобы никто по привычке не продолжил работать в ней.

Отдельно про регламентные задания. Когда вы снимете блокировку, сервер 1С начнёт выполнять обмены и загрузки по расписанию сам. Если старая база ещё где-то работает с теми же настройками, обмен с сайтом может пойти дважды — отключите задания в старой базе заранее.

Переход лучше делать вечером или в выходные, а перед этим — пробный перенос на копии, чтобы знать, сколько он займёт и что всплывёт.

Что изменится для пользователей

Ярлык и строка подключения. В списке баз вместо пути к папке будет адрес сервера и имя базы. Пользователи, пароли и права переезжают вместе с базой в файле .dt, заводить их заново не нужно.

Интерфейс — тот же. Документы, отчёты, настройки форм остаются прежними.

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

Пути к папкам в настройках. Часть кода теперь выполняется на сервере 1С, и если в обработке или настройке обмена указана папка вроде C:\Обмен, речь будет идти о диске сервера, а не компьютера пользователя. Такие места иногда приходится поправить.

Если база работает в арендованном облаке, весь этот переход обычно делает провайдер. У нас, например, перенос базы и настройка пользователей бесплатны, а мощность под клиент-серверный вариант подбирается вместе с вами — о том, на что смотреть в характеристиках сервера, читайте в статье «Как подобрать сервер для 1С».

Частые вопросы

Можно ли перевести базовую версию 1С на клиент-серверный вариант?

Нет. Базовые версии конфигураций рассчитаны на одного пользователя и работают только в файловом режиме. Чтобы перейти на сервер 1С, сначала нужно перейти на версию ПРОФ, а затем уже переносить базу.

Что лучше для 1С: MS SQL или PostgreSQL?

Для небольшой и средней компании обе СУБД работают с 1С нормально, и разница в скорости обычно не решающая. PostgreSQL бесплатна, и 1С выпускает её адаптированную сборку; MS SQL требует отдельных лицензий, но привычнее многим администраторам. Выбирайте ту, которую умеет обслуживать человек, отвечающий за сервер.

Можно ли вернуть базу из клиент-серверного варианта в файловый?

Да, тем же способом: выгрузить базу в файл .dt из конфигуратора и загрузить его в новую файловую базу. Так часто делают, чтобы передать копию базы программисту или аудитору.

Станет ли 1С быстрее после перехода на сервер?

Если вы упираетесь в блокировки и число одновременных пользователей — да, заметно. Если же причина медлительности в медленном диске, антивирусе или слабом процессоре, переход на сервер её не устранит, а при одном-двух пользователях разницы может не быть вовсе.