К статье
Практический материал

Администрирование · 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С:Предприятия
Количество пользователейНебольшое коллективное использованиеДесятки и сотни одновременных сеансов
Регламентные заданияЗапускаются из сеанса пользователяВыполняются на сервере автономно
Требования к инфраструктуреОбщая папкаОтдельный сервер, лицензии, СУБД

Файловый режим проще и дешевле, но при росте числа пользователей и объёма данных начинаются блокировки и падение скорости. Клиент-серверный режим требует вложений и администрирования, зато обеспечивает устойчивую работу под нагрузкой.

Где выполняется код: клиентская и серверная стороны в разработке

Для разработчика различие клиента и сервера — это вопрос директив компиляции. В модулях форм и общих модулях код помечается указаниями &НаКлиенте и &НаСервере. Клиентский код может работать с интерфейсом: открывать формы, показывать предупреждения, обращаться к файлам пользователя. Серверный код работает с данными: запросы, проведение документов, обращения к СУБД.

Есть жёсткие ограничения. На клиенте нельзя напрямую выполнять запросы к базе или обращаться к прикладным объектам через менеджеры (например, Документы.РеализацияТоваров в тонком клиенте недоступен). На сервере нельзя показать пользователю диалог или открыть форму — сервер не имеет интерфейса.

bsl
&НаКлиенте
Процедура ПоказатьСообщение(Команда)
	ПоказатьПредупреждение(, "Документ сохранён");
КонецПроцедуры

&НаСервере
Функция ПолучитьОстаток(Номенклатура)
	Запрос = Новый Запрос("ВЫБРАТЬ Остаток ИЗ РегистрНакопления.Товары.Остатки");
	Возврат Запрос.Выполнить().Выгрузить();
КонецФункции

Каждый вызов сервера из клиентского кода — это сетевой обмен, который стоит времени. Поэтому частая ошибка начинающих — десятки серверных вызовов в цикле. Правильный подход: собрать данные на клиенте и передать их на сервер одним вызовом.

Типичные ошибки
01
Вызов сервера в цикле на каждую строку таблицы — интерфейс зависает из-за множества сетевых обращений
02
Попытка выполнить запрос к базе в клиентской процедуре тонкого клиента — код просто не скомпилируется
03
Попытка показать пользователю окно из серверной процедуры — на сервере нет интерфейса, вызов бесполезен

Как определить, в каком режиме работает ваша база

Проверить режим можно без прав администратора. Откройте окно «О программе» (кнопка с буквой «i» или меню «Справка»): там указан режим работы — файловый или клиент-серверный, а также адрес сервера и имя базы.

Ещё один способ — посмотреть строку подключения в списке информационных баз при запуске. Если путь выглядит как папка на диске (\\SERVER\Bases\Trade), это файловый режим. Если указаны сервер и имя базы (Srvr="srv1c";Ref="trade") — клиент-серверный.

Как проверить режим работы базы
  1. 1
    Запустите 1С и откройте список информационных баз
  2. 2
    Выделите базу и нажмите «Изменить», посмотрите тип расположения: «На данном компьютере или в локальной сети» — файловый, «На сервере 1С:Предприятия» — клиент-серверный
  3. 3
    В клиент-серверном режиме запишите имя сервера и имя базы — они понадобятся для диагностики
  4. 4
    Внутри сеанса откройте «О программе» и сверьте указанный режим с ожидаемым

Когда нужен сервер, а когда достаточно файлового режима

Выбор зависит от нагрузки и требований к надёжности. Файловый режим оправдан для небольшой команды, единственной базы и умеренного документооборота. Он не требует отдельного сервера, лицензии на сервер 1С и администратора СУБД.

Переходить на клиент-серверный вариант стоит, когда появляются признаки перегрузки файлового режима: частые блокировки при одновременной работе, долгое проведение документов, ошибки доступа к файлу базы. Также сервер обязателен, если нужны автономные регламентные задания, веб-доступ через публикацию на веб-сервере и централизованное управление сеансами.

Маршрут решения

Как выбрать режим

Работают несколько человек, документов немного, база однаОставайтесь на файловом режиме, обеспечьте регулярное резервное копирование файла базы
Пользователи жалуются на блокировки и медленное проведение при одновременной работеПланируйте переход на клиент-серверный режим с СУБД
Нужны регламентные задания вне сеансов пользователей или доступ через браузерТребуется сервер 1С:Предприятия — файловый режим этого полноценно не обеспечивает
Нужен доступ извне без установки программыРассмотрите веб-клиент через публикацию базы на веб-сервере

Частые вопросы о клиенте и сервере 1С

Можно ли работать в 1С без сервера?

Да, в файловом режиме сервер 1С не нужен: клиентское приложение само работает с файлом базы. Это нормальный вариант для небольших коллективов, но с ограничениями по нагрузке и без автономных регламентных заданий.

Что лучше выбрать пользователю: тонкий или толстый клиент?

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

Почему веб-клиент не видит файлы на моём компьютере?

Браузер ограничивает доступ веб-приложений к локальной файловой системе из соображений безопасности. Для работы с файлами в веб-клиенте используются специальные механизмы выбора и передачи файлов, а не прямой доступ к диску, как в тонком клиенте.

Сервер 1С и SQL-сервер должны стоять на одной машине?

Не обязательно. Для небольших систем их часто ставят вместе, чтобы сэкономить на оборудовании. Для нагруженных баз рекомендуют разносить: тогда каждый компонент получает свои ресурсы и не конкурирует за память и процессор.

Кто выполняет регламентные задания в файловом режиме?

В файловом режиме нет выделенного сервера, поэтому регламентные задания запускаются внутри сеанса пользователя или отдельно запущенного сеанса-«планировщика». Если все сеансы закрыты, задания не выполняются — это одна из причин перехода на клиент-серверный режим.

От чего зависит скорость обмена между клиентом и сервером?

От качества сети, объёма передаваемых данных и количества серверных вызовов. Медленный канал особенно заметен при частых обращениях к серверу, поэтому в распределённых командах важно минимизировать число вызовов в коде и использовать тонкий или веб-клиент.

Итог

Что важно запомнить

Клиент 1С отвечает за интерфейс и работает на компьютере пользователя, сервер — за обработку данных и обращение к СУБД. В файловом режиме сервера нет, всю работу выполняет клиент. Различайте сервер 1С и сервер СУБД, следите за тем, где выполняется код, и переходите на клиент-серверный режим при росте нагрузки.