Администрирование · 13 мин
Клиент-сервер 1С: как работает и когда его внедрять
Как работает клиент-серверный режим 1С: архитектура «клиент — сервер 1С — СУБД», отличия от файлового режима, требования, настройка и типичные ошибки.
Клиент-серверный режим — это трёхзвенная архитектура работы 1С, в которой между пользователем и базой данных появляется промежуточный слой: сервер приложений «1С:Предприятие». Пользовательский компьютер больше не читает файлы базы напрямую — он отправляет запросы серверу 1С, а тот уже взаимодействует с системой управления базами данных (СУБД): Microsoft SQL Server, PostgreSQL, Oracle или IBM Db2.
Такая схема нужна, когда файловый режим перестаёт справляться: база выросла, одновременно работают десятки пользователей, документы проводятся медленно, а при сбое сети возникает риск повреждения данных. Клиент-серверный вариант снимает эти ограничения за счёт того, что вся тяжёлая логика выполняется на сервере, а блокировками и транзакциями управляет промышленная СУБД.
Переход на клиент-сервер — это не просто «установить другую программу». Потребуется отдельный сервер (или два), лицензия на сервер 1С, лицензии на СУБД и администратор, способный поддерживать эту инфраструктуру. Ниже разберём, как устроена архитектура, как данные ходят между звеньями, когда переход оправдан и как его выполнить без потери данных.
Из чего состоит клиент-серверная архитектура 1С
В клиент-серверном варианте работают три независимых звена, каждое из которых можно разместить на отдельном компьютере:
- Клиентское приложение — тонкий клиент, толстый клиент или веб-клиент в браузере. Отвечает только за интерфейс: показывает формы, принимает ввод пользователя, отправляет вызовы на сервер.
- Сервер «1С:Предприятие» — выполняет серверный код конфигурации: проведение документов, расчёты, формирование отчётов, фоновые задания. Управляет кластером процессов и распределяет нагрузку.
- СУБД — хранит данные и обеспечивает транзакции, блокировки, индексы и журналы. Чаще всего используют Microsoft SQL Server или PostgreSQL.
Ключевое отличие от файлового режима: клиент никогда не обращается к данным напрямую. Даже если пользователь просто открывает список документов, запрос формируется на сервере 1С, транслируется в SQL, выполняется СУБД, и только результат возвращается на клиент. Благодаря этому по сети между клиентом и сервером передаются не гигабайты файлов, а компактные вызовы и выборки.
Как проходит запрос от клиента к базе данных
Рассмотрим типичный сценарий — пользователь проводит документ «Реализация товаров». Сначала тонкий клиент вызывает серверную процедуру записи документа. Вызов по протоколу TCP попадает на агент сервера 1С, который назначает сеансу рабочий процесс кластера (rphost).
Далее сервер 1С выполняет код конфигурации: проверяет остатки, рассчитывает себестоимость, формирует движения по регистрам. Все обращения к данным транслируются в SQL-запросы и отправляются в СУБД. СУБД открывает транзакцию, накладывает блокировки на затрагиваемые записи, записывает изменения и фиксирует транзакцию. Результат — успех или ошибка — возвращается по цепочке обратно на клиент.
Важно понимать, что блокировками в клиент-серверном режиме управляет СУБД, а не платформа 1С напрямую. Именно поэтому десятки пользователей могут одновременно проводить документы, не мешая друг другу: пока один сеанс изменяет конкретные строки, остальные работают с другими данными. В файловом режиме такой механизм отсутствует — там блокировки гораздо грубее.
Чем клиент-серверный режим отличается от файлового
| Параметр | Файловый режим | Клиент-серверный режим |
|---|---|---|
| Хранение данных | Файл 1Cv8.1CD в сетевой папке | База в СУБД (MS SQL, PostgreSQL и др.) |
| Одновременные пользователи | Комфортно до ~5–10 | Десятки и сотни сеансов |
| Устойчивость к сбоям сети | Риск повреждения файла базы | Транзакции СУБД защищают целостность |
| Фоновые и регламентные задания | Ограниченно, на отдельном сеансе | Полноценно, на сервере 1С |
| Требования к инфраструктуре | Файловая шара, минимум затрат | Сервер 1С, сервер СУБД, лицензии, администратор |
| Резервное копирование | Копирование файла при выключенных сеансах | Штатные средства СУБД, горячие копии |
Из таблицы видно главное: файловый режим проще и дешевле, но упирается в ограничения по нагрузке и надёжности. Клиент-серверный требует вложений, зато масштабируется и защищает данные на уровне промышленной СУБД.
Когда какой режим выбрать
Небольшая компания, до 5–10 активных пользователей, база небольшого размера, нет выделенного администратора. Ограничение: при росте нагрузки начинаются блокировки и замедление.
Больше 10–15 активных пользователей, большие объёмы документов, нужны фоновые задания, обмены и отказоустойчивость. Ограничение: стоимость лицензий и необходимость администрирования.
Когда переход на клиент-сервер оправдан
Однозначного порога по числу пользователей не существует — многое зависит от интенсивности работы и размера базы. Однако есть характерные признаки того, что файловый режим исчерпал себя:
- документы проводятся заметно медленнее при росте числа одновременных сеансов;
- пользователи регулярно получают ошибки блокировок и «конфликт доступа к файлу»;
- база выросла настолько, что регламентные операции занимают часы;
- случались повреждения файла базы после сбоев сети или электропитания;
- нужны круглосуточные обмены, фоновые задания и веб-доступ.
Как выбрать действие
Обратная ситуация тоже встречается: компания из трёх бухгалтеров покупает серверные лицензии «про запас». В результате появляются расходы на лицензии и администрирование без реального выигрыша в скорости. Переход стоит планировать по фактическим симптомам, а не по принципу «чем сложнее, тем лучше».
Что потребуется для развёртывания
Минимальный комплект для клиент-серверной работы включает:
- Серверный компьютер с достаточным объёмом оперативной памяти и быстрыми дисками. Для небольших внедрений сервер 1С и СУБД иногда ставят на одну машину, для нагруженных — разносят на разные.
- Платформа «1С:Предприятие» в варианте сервера (32- или 64-разрядная) и лицензия на сервер.
- СУБД: Microsoft SQL Server (платная лицензия) или PostgreSQL (бесплатный, есть сборки, адаптированные под 1С).
- Клиентские лицензии на рабочие места — как и в файловом режиме.
- Стабильная локальная сеть между клиентами, сервером 1С и СУБД.
Требования к «железу» сильно зависят от нагрузки: размера базы, числа одновременных сеансов и тяжести конфигурации. Универсальных цифр нет — для конкретного проекта объём памяти и дисковую подсистему подбирают по результатам нагрузочного тестирования или рекомендациям внедренца. Заниженные ресурсы — самая частая причина того, что «клиент-сервер работает медленнее файлового».
Как выполнить переход с файлового режима
Сама процедура технически несложная: данные переносятся через выгрузку информационной базы в файл .dt и последующую загрузку в базу на СУБД. Сложность — в подготовке инфраструктуры и проверке результата.
- 1Установите и настройте СУБД, создайте пустую базу данных
- 2Установите сервер 1С:Предприятие, активируйте серверную лицензию, создайте кластер
- 3Сделайте полную резервную копию файловой базы и проверьте её восстановление на копии
- 4Выгрузите файловую базу через Конфигуратор: Администрирование → Выгрузить информационную базу
- 5Создайте новую базу на сервере 1С через консоль кластера или стартер, указав параметры СУБД
- 6Загрузите в неё файл .dt через Конфигуратор
- 7Выполните тестирование и исправление, проверьте ключевые операции: проведение документов, отчёты, обмены
- 8Переведите пользователей на новую базу, обновив список информационных баз на их компьютерах
Для больших баз выгрузка и загрузка .dt может занять много часов — планируйте переход на выходные. Существуют и альтернативные способы переноса (например, через средства СУБД после конвертации), но для большинства организаций штатная выгрузка-загрузка остаётся самым предсказуемым вариантом.
Настройка и проверка после перехода
После загрузки данных работа не заканчивается. Проверьте, что регламентные и фоновые задания выполняются на сервере: в файловом режиме они могли запускаться отдельным сеансом, а в клиент-серверном их обслуживает кластер. Убедитесь, что в свойствах базы не заблокированы регламентные задания, если это не требуется.
Далее проверьте скорость типовых операций под нагрузкой, близкой к реальной: одновременное проведение документов несколькими пользователями, построение крупных отчётов, обмены с другими системами. Если что-то работает медленнее, чем в файловом режиме, причина почти всегда в конфигурации сервера или СУБД: нехватка памяти, медленные диски, не настроенный план обслуживания базы.
Как проверить результат
Документы проводятся без ошибок блокировок и длительного ожидания
Ошибки взаимоблокировок, таймауты, «зависание» сеансов
Выполняются по расписанию на сервере, журнал без ошибок
Задания не стартуют или завершаются с ошибками
Копия создаётся по расписанию и тестово восстанавливается
Копии нет либо восстановление никогда не проверялось
Рабочие процессы не упираются в лимит памяти
Процессы перезапускаются, сеансы обрываются
Типичные ошибки и ограничения
Отдельно отметим ограничение самой архитектуры: клиент-серверный режим не ускоряет плохо написанный код. Если запросы в конфигурации неоптимальны, на СУБД они станут лишь заметнее — появятся длинные SQL-запросы и блокировки. Поэтому при переходе на сильно доработанной конфигурации полезно провести аудит кода и типовых запросов.
Полезная привычка после перехода — завести регламент: еженедельно проверять журнал выполнения фоновых заданий и раз в месяц тестово восстанавливать резервную копию на отдельной базе. Бэкап, который ни разу не восстанавливали, нельзя считать рабочей защитой данных.
Частые вопросы
Можно ли перейти на клиент-сервер без остановки работы пользователей?
Полностью без остановки — нет: на время выгрузки и загрузки .dt база должна быть закрыта для изменений, иначе часть данных потеряется. Обычно переход делают в нерабочее время, а подготовку (установку серверов, тестовую загрузку копии) выполняют заранее, не прерывая работу.
Какую СУБД выбрать: MS SQL Server или PostgreSQL?
MS SQL Server проще в администрировании для типовых сценариев и широко распространён, но требует платных лицензий. PostgreSQL бесплатен и официально поддерживается платформой 1С, однако требует специфических настроек и опыта работы с ним. Выбор обычно определяется бюджетом и компетенциями администратора.
Ускорит ли клиент-сервер работу, если пользователей всего пятеро?
Как правило, нет. При малом числе пользователей узким местом обычно является не режим работы, а производительность дисков и сети. Переход в этом случае добавит затрат на лицензии и администрирование без заметного выигрыша в скорости.
Что происходит с данными при обрыве связи между клиентом и сервером?
Незавершённая транзакция откатывается СУБД, и база остаётся в согласованном состоянии — это одно из главных преимуществ режима. Пользователь потеряет только несохранённые данные текущей операции, но целостность базы не пострадает, в отличие от риска повреждения файла в файловом режиме.
Нужно ли дорабатывать конфигурацию при переходе?
Типовые конфигурации обычно работают в обоих режимах без доработок. Проблемы возможны в сильно изменённых решениях: код с обращением к локальным файлам, модальные диалоги, запуск внешних программ на стороне клиента. Такие места выявляют тестированием на копии базы до перевода пользователей.
Можно ли вернуться с клиент-сервера обратно на файловый режим?
Да, обратный переход выполняется тем же способом: выгрузка базы в файл .dt из клиент-серверной базы и загрузка в новую файловую базу. Учтите, что если база сильно выросла, файловый режим может оказаться для неё уже непригодным по объёму и нагрузке.
Что важно запомнить
Клиент-серверный режим 1С — это связка «клиент → сервер 1С → СУБД», где вся логика и данные обслуживаются на серверной стороне. Он оправдан при росте числа пользователей, объёмов и требований к надёжности, но требует лицензий, нормального серверного оборудования и регулярного администрирования СУБД. Переход выполняется через выгрузку-загрузку .dt и обязательно начинается с проверенной резервной копии.