Администрирование · 10 мин
Чем отличается клиент от сервера в 1С
Разбираем, чем отличается клиент от сервера 1С: роли, режимы работы, тонкий и толстый клиент, веб-клиент, типичные ошибки и как проверить настройки.
В 1С:Предприятии система строится по клиент-серверной логике: одна часть программы показывает интерфейс пользователю, а другая обрабатывает данные и обращается к базе. Клиент — это то, что запущено на компьютере пользователя и с чем он работает: формы, кнопки, отчёты. Сервер — это процесс (или СУБД), который выполняет тяжёлые вычисления, хранит и отдаёт данные.
Путаница возникает потому, что в 1С слово «сервер» используется в двух смыслах: как сервер 1С:Предприятия (служебный процесс, кластер) и как сервер базы данных (MS SQL, PostgreSQL и другие СУБД). Клиент тоже бывает разным: тонкий, толстый и веб-клиент. От того, где выполняется код — на клиенте или на сервере — зависят скорость работы, безопасность и даже то, какие команды доступны разработчику.
Понимание различий нужно не только программистам. Администратору это помогает правильно развернуть систему и найти причину тормозов, а пользователю — понять, почему одна и та же база может открываться по-разному и почему файл с конфигурацией нельзя просто скопировать на флешку в клиент-серверном режиме.
Что такое клиент 1С и какие его виды существуют
Клиент — это приложение, установленное на рабочем месте пользователя (или открытое в браузере). Его задача — отрисовать формы, принять ввод, отправить запрос на сервер и показать результат. Сами данные клиент не хранит: при закрытии программы на диске пользователя не остаётся ни документов, ни справочников.
Существует три основных вида клиента:
- Тонкий клиент — лёгкое приложение, которое общается с сервером по сети. Почти вся логика выполняется на сервере. Подходит для большинства пользователей и медленных каналов связи.
- Толстый клиент — «тяжёлое» приложение, способное выполнять часть кода локально. В основном нужен разработчикам для конфигуратора и отладки, а также для старых конфигураций.
- Веб-клиент — работа через браузер без установки программы. Удобен для удалённого доступа, но имеет ограничения: например, сложнее работа с локальными файлами и оборудованием.
Что такое сервер в 1С: два разных смысла
Первый смысл — сервер 1С:Предприятия. Это служба (кластер серверов), которая запускается на выделенной машине, принимает подключения от клиентов, выполняет серверный код конфигурации и управляет сеансами пользователей. Именно здесь работают регламентные задания и фоновые процессы.
Второй смысл — сервер СУБД: MS SQL Server, PostgreSQL, Oracle или IBM Db2. Это отдельная система, которая физически хранит таблицы базы данных. Сервер 1С не хранит данные сам — он обращается к СУБД, получает строки и передаёт их клиенту в готовом виде.
На практике сервер 1С и СУБД могут стоять на одной физической машине (для небольших компаний) или на разных (для нагруженных систем). Разделение позволяет масштабировать каждый компонент независимо, но требует грамотной настройки сети между ними.
Файловый и клиент-серверный режимы: в чём разница
1С умеет работать в двух режимах. В файловом режиме база — это файл 1Cv8.1CD в общей папке, и каждый клиент обращается к нему напрямую, самостоятельно выполняя всю логику. Здесь нет отдельного сервера 1С: роль «обработчика» берёт на себя клиентское приложение.
В клиент-серверном режиме между пользователем и данными стоят два посредника: сервер 1С и СУБД. Клиент отправляет запрос серверу 1С, тот выполняет код, обращается к СУБД и возвращает результат.
| Параметр | Файловый режим | Клиент-серверный режим |
|---|---|---|
| Где хранятся данные | Файл 1Cv8.1CD в папке | База в СУБД (SQL и др.) |
| Кто выполняет код | Клиентское приложение | Сервер 1С:Предприятия |
| Количество пользователей | Небольшое коллективное использование | Десятки и сотни одновременных сеансов |
| Регламентные задания | Запускаются из сеанса пользователя | Выполняются на сервере автономно |
| Требования к инфраструктуре | Общая папка | Отдельный сервер, лицензии, СУБД |
Файловый режим проще и дешевле, но при росте числа пользователей и объёма данных начинаются блокировки и падение скорости. Клиент-серверный режим требует вложений и администрирования, зато обеспечивает устойчивую работу под нагрузкой.
Где выполняется код: клиентская и серверная стороны в разработке
Для разработчика различие клиента и сервера — это вопрос директив компиляции. В модулях форм и общих модулях код помечается указаниями &НаКлиенте и &НаСервере. Клиентский код может работать с интерфейсом: открывать формы, показывать предупреждения, обращаться к файлам пользователя. Серверный код работает с данными: запросы, проведение документов, обращения к СУБД.
Есть жёсткие ограничения. На клиенте нельзя напрямую выполнять запросы к базе или обращаться к прикладным объектам через менеджеры (например, Документы.РеализацияТоваров в тонком клиенте недоступен). На сервере нельзя показать пользователю диалог или открыть форму — сервер не имеет интерфейса.
&НаКлиенте
Процедура ПоказатьСообщение(Команда)
ПоказатьПредупреждение(, "Документ сохранён");
КонецПроцедуры
&НаСервере
Функция ПолучитьОстаток(Номенклатура)
Запрос = Новый Запрос("ВЫБРАТЬ Остаток ИЗ РегистрНакопления.Товары.Остатки");
Возврат Запрос.Выполнить().Выгрузить();
КонецФункцииКаждый вызов сервера из клиентского кода — это сетевой обмен, который стоит времени. Поэтому частая ошибка начинающих — десятки серверных вызовов в цикле. Правильный подход: собрать данные на клиенте и передать их на сервер одним вызовом.
Как определить, в каком режиме работает ваша база
Проверить режим можно без прав администратора. Откройте окно «О программе» (кнопка с буквой «i» или меню «Справка»): там указан режим работы — файловый или клиент-серверный, а также адрес сервера и имя базы.
Ещё один способ — посмотреть строку подключения в списке информационных баз при запуске. Если путь выглядит как папка на диске (\\SERVER\Bases\Trade), это файловый режим. Если указаны сервер и имя базы (Srvr="srv1c";Ref="trade") — клиент-серверный.
- 1Запустите 1С и откройте список информационных баз
- 2Выделите базу и нажмите «Изменить», посмотрите тип расположения: «На данном компьютере или в локальной сети» — файловый, «На сервере 1С:Предприятия» — клиент-серверный
- 3В клиент-серверном режиме запишите имя сервера и имя базы — они понадобятся для диагностики
- 4Внутри сеанса откройте «О программе» и сверьте указанный режим с ожидаемым
Когда нужен сервер, а когда достаточно файлового режима
Выбор зависит от нагрузки и требований к надёжности. Файловый режим оправдан для небольшой команды, единственной базы и умеренного документооборота. Он не требует отдельного сервера, лицензии на сервер 1С и администратора СУБД.
Переходить на клиент-серверный вариант стоит, когда появляются признаки перегрузки файлового режима: частые блокировки при одновременной работе, долгое проведение документов, ошибки доступа к файлу базы. Также сервер обязателен, если нужны автономные регламентные задания, веб-доступ через публикацию на веб-сервере и централизованное управление сеансами.
Как выбрать режим
Частые вопросы о клиенте и сервере 1С
Можно ли работать в 1С без сервера?
Да, в файловом режиме сервер 1С не нужен: клиентское приложение само работает с файлом базы. Это нормальный вариант для небольших коллективов, но с ограничениями по нагрузке и без автономных регламентных заданий.
Что лучше выбрать пользователю: тонкий или толстый клиент?
Для повседневной работы почти всегда выбирают тонкий клиент: он легче, быстрее запускается и меньше нагружает сеть. Толстый клиент нужен в основном разработчикам и для конфигураций, которые не поддерживают тонкий клиент.
Почему веб-клиент не видит файлы на моём компьютере?
Браузер ограничивает доступ веб-приложений к локальной файловой системе из соображений безопасности. Для работы с файлами в веб-клиенте используются специальные механизмы выбора и передачи файлов, а не прямой доступ к диску, как в тонком клиенте.
Сервер 1С и SQL-сервер должны стоять на одной машине?
Не обязательно. Для небольших систем их часто ставят вместе, чтобы сэкономить на оборудовании. Для нагруженных баз рекомендуют разносить: тогда каждый компонент получает свои ресурсы и не конкурирует за память и процессор.
Кто выполняет регламентные задания в файловом режиме?
В файловом режиме нет выделенного сервера, поэтому регламентные задания запускаются внутри сеанса пользователя или отдельно запущенного сеанса-«планировщика». Если все сеансы закрыты, задания не выполняются — это одна из причин перехода на клиент-серверный режим.
От чего зависит скорость обмена между клиентом и сервером?
От качества сети, объёма передаваемых данных и количества серверных вызовов. Медленный канал особенно заметен при частых обращениях к серверу, поэтому в распределённых командах важно минимизировать число вызовов в коде и использовать тонкий или веб-клиент.
Что важно запомнить
Клиент 1С отвечает за интерфейс и работает на компьютере пользователя, сервер — за обработку данных и обращение к СУБД. В файловом режиме сервера нет, всю работу выполняет клиент. Различайте сервер 1С и сервер СУБД, следите за тем, где выполняется код, и переходите на клиент-серверный режим при росте нагрузки.