Администрирование · 14 мин
Что такое клиент и сервер в 1С и как они работают вместе
Что такое клиент и сервер в 1С, чем отличаются тонкий, толстый и веб-клиент, как работает клиент-серверный режим и как выбрать архитектуру для базы.
Любая работа в 1С строится по принципу «запрос — ответ»: пользователь нажимает кнопку в форме, программа отправляет запрос на обработку, получает результат и показывает его на экране. Та часть системы, с которой взаимодействует человек, называется клиентом, а та, что хранит данные и выполняет вычисления, — сервером. Понимание этого разделения важно не только разработчикам: от него зависит скорость работы базы, количество одновременных пользователей и устойчивость системы к сбоям.
В 1С существует два принципиально разных режима работы. В файловом режиме роль «сервера» фактически выполняет файл базы данных на диске, а вся логика исполняется на компьютере пользователя. В клиент-серверном режиме появляется отдельный посредник — сервер 1С:Предприятия, который общается с системой управления базами данных (СУБД) и обслуживает множество клиентов одновременно. Выбор между ними определяет масштабируемость и надёжность всей учётной системы.
Ниже разобрано, какие виды клиентов существуют в 1С, чем они отличаются, как устроен серверный уровень, в каких случаях оправдан переход на клиент-серверную архитектуру и какие ошибки чаще всего допускают при её настройке.
Что такое клиент в 1С и какие виды клиентов существуют
Клиент — это приложение, которое запускается на рабочем месте пользователя и отвечает за интерфейс: отображение форм, списков, отчётов, ввод данных. Клиент не хранит информацию сам — он лишь показывает то, что получил от сервера, и передаёт обратно действия пользователя. Именно поэтому на клиентском компьютере обычно не требуется много дискового пространства под базу.
Платформа 1С:Предприятие предлагает три основных вида клиентов. Тонкий клиент — лёгкое приложение, которое исполняет минимум логики и в основном отображает интерфейс, а все вычисления выполняются на сервере. Толстый клиент — «тяжёлое» приложение, способное выполнять значительную часть кода локально; его чаще используют разработчики и администраторы, поскольку только в нём доступен конфигуратор в привычном виде запуска. Веб-клиент работает прямо в браузере и вообще не требует установки платформы на компьютер пользователя — достаточно ссылки.
Сравнение видов клиентов
Основной вариант для рядовых пользователей: небольшой объём трафика, все вычисления на сервере. Ограничение — нет доступа к конфигуратору и части локальных функций.
Подходит разработчикам и администраторам, позволяет запускать конфигуратор и внешние обработки в отладке. Минус — требователен к ресурсам и создаёт большую нагрузку на сеть в файловом режиме.
Удобен для удалённых сотрудников и филиалов: работа через браузер без установки. Ограничение — не поддерживает часть механизмов, требующих локального доступа, например некоторые виды сканирования и COM-взаимодействие.
Дополнительно существуют мобильные клиенты для смартфонов и планшетов — они строятся на отдельной мобильной платформе и применяются для узких сценариев: торговых представителей, кладовщиков, руководителей, которым нужны отчёты «на ходу». Для большинства офисных задач выбор сводится к тонкому клиенту как к стандартному варианту.
Что такое сервер в архитектуре 1С
Под сервером в контексте 1С понимают сразу несколько вещей, и их важно различать. Сервер 1С:Предприятия — это программный компонент платформы, который принимает запросы от клиентов, выполняет серверный код конфигурации и управляет соединениями. Сервер СУБД — отдельная система управления базами данных (например, Microsoft SQL Server, PostgreSQL или Oracle), которая физически хранит таблицы данных. Наконец, есть аппаратный сервер — сам компьютер, на котором всё это установлено.
Когда пользователь проводит документ, цепочка выглядит так: клиент отправляет запрос серверу 1С, тот выполняет бизнес-логику (проверки, расчёты, движения по регистрам), формирует SQL-запросы к СУБД, получает результат и возвращает клиенту готовые данные для отображения. Пользователь видит только итог — проведённый документ или построенный отчёт.
Важно понимать, что сервер 1С и СУБД могут находиться как на одном физическом компьютере, так и на разных. Для небольших компаний часто достаточно одной машины, а при росте нагрузки сервер СУБД выносят на отдельное оборудование, чтобы вычисления и хранение данных не конкурировали за ресурсы.
Файловый и клиент-серверный режимы: в чём разница
В файловом режиме база данных — это один файл (1Cv8.1CD), который лежит на локальном диске или в сетевой папке. Каждый клиент обращается к этому файлу напрямую и сам выполняет всю логику. Такой вариант прост в развёртывании: не нужно ни серверное ПО, ни администрирование СУБД. Однако у него есть жёсткие ограничения: при одновременной работе нескольких пользователей возникают блокировки, скорость падает с ростом объёма данных, а риск повреждения файла при сбое сети или питания заметно выше.
В клиент-серверном режиме клиенты не трогают данные напрямую — все обращения идут через сервер 1С, а хранением занимается полноценная СУБД. Это даёт параллельную работу десятков и сотен пользователей, механизмы резервного копирования на уровне СУБД, разграничение прав и устойчивость к сбоям. Платой за это является сложность: нужно установить и настроить сервер 1С, развернуть СУБД, следить за лицензиями и обслуживать инфраструктуру.
| Критерий | Файловый режим | Клиент-серверный режим |
|---|---|---|
| Хранение данных | Один файл 1Cv8.1CD | База в СУБД (SQL Server, PostgreSQL и др.) |
| Одновременные пользователи | Небольшое количество, рост блокировок | Десятки и сотни сеансов |
| Требования к инфраструктуре | Общая папка или локальный диск | Сервер 1С + сервер СУБД |
| Устойчивость к сбоям | Риск повреждения файла | Транзакционность и журналы СУБД |
| Администрирование | Минимальное | Требуется специалист |
Как выбрать режим работы для своей базы
Решение зависит от трёх факторов: количества одновременно работающих пользователей, объёма базы и критичности простоев. Если в базе работают несколько человек, объём данных невелик и кратковременная остановка не критична — файловый режим полностью оправдан и дешевле в обслуживании. Когда пользователей становится больше, документооборот интенсивным, а простой означает остановку продаж или производства, клиент-серверная архитектура перестаёт быть опцией и становится необходимостью.
Отдельный сигнал к переходу — жалобы на «тормоза» и конфликты блокировок при одновременном проведении документов. В файловом режиме платформа блокирует данные крупными порциями, и два пользователя, проводящие документы одновременно, мешают друг другу. В клиент-серверном режиме СУБД управляет блокировками на уровне строк, что резко снижает число конфликтов.
Как выбрать действие
Как разделение на клиента и сервера влияет на разработку
Архитектура «клиент — сервер» напрямую отражается в коде конфигурации. В модулях платформа явно разделяет контекст исполнения: директивы &НаКлиенте и &НаСервере определяют, где будет выполняться процедура. Клиентский код работает с интерфейсом — открывает формы, задаёт вопросы пользователю, обрабатывает нажатия. Серверный код работает с данными — читает и пишет в базу, выполняет запросы, вызывает прикладную логику.
Ключевое правило эффективной разработки — минимизировать количество обращений с клиента на сервер. Каждый серверный вызов — это сетевой обмен, и десяток мелких вызовов из цикла работает ощутимо медленнее одного вызова, который получает все нужные данные пакетом. Поэтому опытные разработчики собирают данные на клиенте, один раз передают их на сервер, там выполняют всю обработку и возвращают готовый результат.
&НаКлиенте
Процедура РассчитатьИтог(Команда)
Результат = РассчитатьИтогНаСервере(ПараметрыРасчета);
ПоказатьПредупреждение(, "Итог: " + Результат);
КонецПроцедуры
&НаСервере
Функция РассчитатьИтогНаСервере(Параметры)
// Запрос к данным и расчёты выполняются на сервере
Возврат ИтоговаяСумма;
КонецФункцииЕщё одно следствие разделения: на тонком и веб-клиенте недоступны некоторые возможности, привычные по толстому клиенту, — например, прямая работа с файловой системой сервера или COM-объекты на стороне пользователя. Поэтому при проектировании доработок всегда проверяйте, под какими клиентами будет работать функциональность, и тестируйте её именно в целевом клиенте.
Типичные ошибки и риски при работе с клиент-серверной архитектурой
Самая распространённая ошибка — размещение файловой базы в сетевой папке для «многопользовательской» работы при заметном числе пользователей. Схема формально работает, но каждый сбой сети создаёт риск повреждения файла базы, а восстановление может занять часы и не гарантирует целостности данных. Если бизнес уже вырос из файлового режима, откладывать переход опаснее, чем его провести.
Вторая группа ошибок связана с настройкой сервера: установка сервера 1С и СУБД на слабую машину, отсутствие регламентного обслуживания СУБД (переиндексация, обновление статистики), работа без резервных копий на уровне СУБД. Клиент-серверная архитектура требует регулярного администрирования — это не вариант «установил и забыл».
Как проверить, что архитектура работает правильно
После развёртывания или переноса базы на клиент-серверный режим проверьте базовые вещи: пользователи подключаются без ошибок, документы проводятся несколькими сотрудниками одновременно без конфликтов, отчёты строятся за приемлемое время. Полезно зафиксировать время выполнения типовых операций до и после перехода — это даст объективное подтверждение эффекта.
Как проверить результат
Оба документа проводятся, конфликтов блокировок нет или они редки
Постоянные ошибки «Конфликт блокировки при выполнении транзакции»
Время отклика стабильное и не растёт при увеличении числа пользователей
Формы «подвисают», отчёты строятся непропорционально долго
Копии создаются по расписанию средствами СУБД и проверяются восстановлением
Копий нет или ни разу не проверялось, восстанавливаются ли они
Все функции доступны в том клиенте, который используют сотрудники
Часть кнопок и операций не работает в веб-клиенте или тонком клиенте
При переносе базы на сервер не удаляйте старую файловую копию сразу. Держите её в режиме «только чтение» несколько недель: если в новой базе обнаружится расхождение, старая копия станет эталоном для сверки. Удалять её стоит только после полной уверенности, что перенос прошёл чисто.
Частые вопросы о клиенте и сервере в 1С
Чем тонкий клиент отличается от толстого на практике?
Тонкий клиент выполняет почти все вычисления на сервере и передаёт по сети только данные интерфейса, поэтому он легче и лучше работает на медленных каналах. Толстый клиент исполняет значительную часть кода локально, требует больше ресурсов, но даёт доступ к конфигуратору и инструментам разработки. Рядовым пользователям обычно назначают тонкий клиент, разработчикам и администраторам — толстый.
Можно ли работать в 1С через браузер без установки программы?
Да, для этого база публикуется на веб-сервере, и пользователи подключаются через веб-клиент по ссылке. Установка платформы на компьютер не требуется. Учтите, что часть функций, зависящих от локального оборудования (некоторые сценарии сканирования, работа с COM-объектами), в веб-клиенте недоступна или требует отдельных расширений.
Когда файлового режима уже недостаточно?
Тревожные признаки: регулярные конфликты блокировок при одновременной работе, заметное замедление при росте объёма данных, долгое проведение документов, опасные сбои при работе по сети. Если база критична для бизнеса и в ней одновременно трудится заметное число сотрудников, переход на клиент-серверный режим следует планировать, не дожидаясь аварии.
Что происходит с данными при переходе на клиент-серверный режим?
Данные и конфигурация не меняются: база выгружается из файлового варианта через конфигуратор и загружается в новую информационную базу, созданную на сервере 1С с подключённой СУБД. Пользователи после переноса видят ту же систему, меняется только способ подключения. Перед переносом обязательно сделайте резервную копию и проверьте работу на тестовой копии.
Почему код, работающий в толстом клиенте, не работает в тонком?
Тонкий и веб-клиенты намеренно ограничены: в них нет доступа к части объектов платформы, локальной файловой системе сервера и некоторым механизмам интеграции. Код нужно проектировать с учётом целевого клиента и разделять на клиентскую и серверную части. Проверяйте доработки именно в том клиенте, под которым будут работать пользователи.
Нужен ли отдельный компьютер под сервер 1С и СУБД?
Для небольшой нагрузки сервер 1С и СУБД допустимо разместить на одной машине — это упрощает инфраструктуру. При росте числа пользователей и объёма данных СУБД выносят на отдельный сервер, чтобы хранение и вычисления не конкурировали за память и процессор. Конкретная граница зависит от нагрузки, поэтому решение принимают по замерам производительности.
Что важно запомнить
Клиент в 1С отвечает за интерфейс, сервер — за данные и вычисления. Файловый режим подходит для небольших баз, клиент-серверный — для многопользовательской работы и критичных систем. Выбирайте вид клиента под задачи пользователей, минимизируйте серверные вызовы в коде и обязательно настраивайте резервное копирование на уровне СУБД.