Как устроен тонкий клиент 1С и когда выбирать его вместо толстого и веб-клиента
Содержание
Тонкий клиент 1С:Предприятия — это программа 1cv8c.exe, которая только показывает формы и принимает ввод пользователя, а всю работу с данными (запросы, проведение документов, расчёты) выполняет сервер. Он работает с управляемым интерфейсом, подключается к файловой базе, к серверу 1С или к базе, опубликованной на веб-сервере, и требует заметно меньше ресурсов компьютера и сети, чем толстый клиент.
Для типовых конфигураций на управляемых формах (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP) тонкий клиент — основной режим работы. Толстый клиент сегодня нужен в основном для старых конфигураций на обычных формах и для отдельных административных задач.
Как работает тонкий клиент: клиентская и серверная части
Приложение 1С на управляемых формах разделено на две половины. Код модулей помечается директивами компиляции, и именно они решают, где он выполнится.
- 🖥️
&НаКлиенте— код выполняется на компьютере пользователя, внутри тонкого клиента . - 🗄️
&НаСервере— код выполняется на сервере, у него есть доступ к базе данных и к данным формы. - ⚡
&НаСервереБезКонтекста— тоже сервер, но без передачи данных формы туда и обратно.
Тонкий клиент не умеет работать с базой напрямую. В нём нет объектной модели прикладных данных: нельзя получить СправочникОбъект или выполнить запрос на клиенте. Когда пользователь нажимает «Провести», клиент отправляет вызов на сервер, сервер проводит документ и возвращает результат — обновлённую форму или сообщение.
Что происходит при запуске
- Пользователь выбирает базу в окне запуска, стартует
1cv8c.exe. - Клиент устанавливает соединение: с файловой базой — через встроенный файловый движок, с сервером 1С — через агент сервера, с веб-публикацией — по HTTP или HTTPS.
- Проходит аутентификация, создаётся сеанс.
- Клиент получает описание интерфейса и форм. Часть этих данных кэшируется на диске пользователя, поэтому второй запуск быстрее первого.
- Дальше каждое действие с данными — это вызов сервера и ответ.
Что значит «меньше ресурсов»
Тонкому клиенту не нужно держать у себя прикладные объекты и метаданные конфигурации целиком. Отсюда три практических следствия:
- 💾 памяти на рабочем месте нужно меньше, чем толстому клиенту;
- 🌐 по сети гоняется не содержимое таблиц базы, а данные форм и результаты вызовов;
- 🔒 прикладные данные не обрабатываются на компьютере пользователя, что проще с точки зрения безопасности.
Нагрузка никуда не исчезает, она переезжает на сервер. Если тонкий клиент «тормозит», в половине случаев искать причину нужно на стороне сервера или в коде конфигурации, а не на компьютере пользователя.
Тонкий, толстый и веб-клиент: сравнение режимов запуска
У платформы 8.3 три вида клиентских приложений. Они различаются тем, где выполняется код и какие формы поддерживаются.
| Параметр | Тонкий клиент | Толстый клиент | Веб-клиент |
|---|---|---|---|
| Исполняемый файл | 1cv8c.exe | 1cv8.exe | браузер |
| Установка на компьютер | нужна | нужна | не нужна |
| Обычные формы | нет | да | нет |
| Управляемые формы | да | да | да |
| Работа с данными на клиенте | нет, только через сервер | да | нет, только через сервер |
| Подключение через интернет | да, через веб-публикацию | неудобно, сильная зависимость от сети | да, через веб-публикацию |
| Требования к рабочему месту | умеренные | самые высокие | минимальные |
| Работа с оборудованием и файлами | полноценная | полноценная | ограниченная, через расширения браузера |
Когда толстый клиент всё ещё нужен
- 📜 Конфигурация на обычных формах: Бухгалтерия 2.0, Зарплата и управление персоналом 2.5, самописные базы на старом интерфейсе. Тонкий клиент их открыть не сможет.
- 🛠️ Внешние обработки и отчёты, написанные под обычные формы.
- 🧩 Отдельные административные сценарии, которые разработчик выполняет в режиме толстого клиента на управляемом приложении.
Чем веб-клиент проигрывает тонкому
Веб-клиент удобен там, где ничего нельзя ставить на компьютер. Но у него есть ограничения: работа с локальными файлами, торговым оборудованием и криптографией идёт через расширения браузера и внешние компоненты, горячие клавиши частично перехватывает сам браузер, а интерфейс отрисовывается медленнее. Для ежедневной работы бухгалтера тонкий клиент через ту же веб-публикацию обычно удобнее.
Как выбрать режим и какие требования к сети
Выбор упирается в три вопроса: на каких формах конфигурация, где находятся пользователи и что разрешено устанавливать на их компьютеры.
Сетевые требования
Тонкий клиент передаёт мало данных, но делает много коротких обменов с сервером. Поэтому для него задержка (пинг) важнее ширины канала.
- 🏢 Локальная сеть. Проблем обычно нет. Для клиент-серверной базы клиент идёт к агенту сервера на порт
1540, затем к менеджеру кластера на1541и к рабочим процессам. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера, по умолчанию это1560-1591. Все эти порты должны быть открыты между клиентом и сервером. - 🌍 Интернет. Нужна веб-публикация базы на IIS или Apache. Снаружи открыт только порт
443веб-сервера, сервер 1С остаётся во внутренней сети. - 📶 Медленный канал. В свойствах базы можно выбрать низкую скорость соединения: клиент реже обращается к серверу за второстепенными данными и меньше обновляет форму.
Не открывайте порты 1540, 1541 и диапазон рабочих процессов в интернет ради удалённых пользователей. Для этого есть веб-публикация с HTTPS или VPN.
Файловая база и тонкий клиент
С файловой базой тонкий клиент тоже работает. В этом случае серверная часть выполняется в том же процессе на компьютере пользователя, а данные читаются из файла 1Cv8.1CD по сети. Выигрыша в трафике по сравнению с толстым клиентом здесь почти нет. Для файловой базы на нескольких пользователей через интернет правильнее опубликовать её на веб-сервере и подключаться по HTTP.
Отдельный дистрибутив «только тонкий клиент» рассчитан на клиент-серверные базы и веб-публикации. Для прямой работы с файловой базой ставьте полный дистрибутив платформы.
Установка и настройка запуска тонкого клиента
Шаг 1. Установите платформу
- Запустите
setup.exeиз дистрибутива платформы нужной версии. - В списке компонентов оставьте «1С:Предприятие — тонкий клиент». Если нужен толстый клиент и Конфигуратор, отметьте и «1С:Предприятие».
- Завершите установку.
Версия тонкого клиента должна совпадать с версией сервера 1С. Если сервер обновили, а рабочие места нет, подключение не состоится, пока на компьютер не встанет та же версия. Для баз на веб-публикации можно настроить загрузку дистрибутива клиента с веб-сервера: тогда нужная версия ставится при первом подключении, если у пользователя есть права на установку.
Шаг 2. Добавьте базу в список
- В окне запуска нажмите «Добавить» → «Добавление в список существующей информационной базы».
- Укажите тип расположения:
- на данном компьютере или в локальной сети — путь к папке с файловой базой;
- на сервере 1С:Предприятия — имя кластера и имя базы на сервере;
- на веб-сервере — адрес публикации, например
https://1c.company.ru/buh.
- На следующем шаге в поле выбора основного режима запуска укажите «Тонкий клиент» вместо «Выбирать автоматически».
- Там же задайте скорость соединения: «Обычная» для офиса, «Низкая» для слабых каналов.
Шаг 3. Запуск из командной строки
Ярлык с параметрами удобен, когда базу нужно открывать без окна выбора:
rem клиент-серверная база
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Иванова" /P"пароль"
rem напрямую тонкий клиент нужной версии, низкая скорость соединения
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8c.exe" /S"srv1c\buh" /O low
rem база на веб-сервере
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8c.exe" /WS"https://1c.company.ru/buh"
Номер версии в пути подставьте свой: он совпадает с папкой в C:\Program Files\1cv8\. Пароль в ярлыке хранить не стоит: лучше включить аутентификацию операционной системы для пользователя в базе.
1cestart.exe — это не клиент, а программа запуска. Она читает список баз и сама выбирает нужную версию платформы. Для ярлыков пользователям надёжнее использовать её: после обновления платформы ярлыки не придётся править.
Ошибки тонкого клиента и как их диагностировать
Большинство сбоев тонкого клиента — это не «сломанный клиент», а проблема соединения, версии или кэша.
ping srv1c с рабочего места. Затем порты 1540, 1541 и диапазон рабочих процессов: Test-NetConnection srv1c -Port 1541 в PowerShell. Часто мешает межсетевой экран на сервере или имя сервера, которое не разрешается в DNS.Как сбросить кэш тонкого клиента
Кэш лежит в профиле пользователя Windows, в двух местах:
%APPDATA%\1C\1cv8\%LOCALAPPDATA%\1C\1cv8\
Внутри — папки с длинными именами-идентификаторами, по одной на базу. Самый мягкий способ — ключ запуска:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /ClearCache
Если не помогло, закройте все окна 1С этого пользователя и удалите папки-идентификаторы в обоих каталогах. Файлы ibases.v8i и 1cestart.cfg не трогайте: в них список баз.
Удалять кэш можно только при закрытой 1С у этого пользователя. Сеансы других пользователей операция не затрагивает, сервер не останавливается.
Где смотреть подробности
- 📒 Журнал регистрации базы — ошибки прикладного кода, кто и когда работал.
- 🧭 Консоль администрирования серверов — список сеансов, к какому рабочему процессу привязан сеанс, нагрузка на процессы.
- 📄 Технологический журнал — для сложных случаев: долгие вызовы сервера, исключения, блокировки. Включается файлом
logcfg.xmlна сервере. Пишет много данных, поэтому включайте его на время диагностики и с ограниченным набором событий.
Как ускорить работу в тонком клиенте
На стороне пользователя и сети
- ⚙️ Установите режим запуска «Тонкий клиент» явно, а не «Выбирать автоматически»: исключите случайный запуск толстого клиента.
- 📶 Для удалённых офисов выставьте низкую скорость соединения.
- 🧹 После крупного обновления конфигурации сбросьте кэш один раз, если появились странности с формами.
- 🌐 Для работы через интернет используйте веб-публикацию с HTTPS, а не проброс портов сервера.
- 🖥️ Держите на рабочих местах ту же версию платформы, что на сервере, и обновляйте их вместе с сервером.
На стороне сервера
Тонкий клиент быстр настолько, насколько быстр сервер. Узкие места обычно такие:
- 💽 медленный диск под СУБД и под временные файлы рабочих процессов;
- 🧠 нехватка памяти на сервере 1С, когда рабочие процессы начинают перезапускаться;
- 🔐 длительные блокировки при проведении документов массово, в рабочее время;
- 📊 тяжёлые отчёты, которые сформированы без отборов за несколько лет.
Для разработчика: число вызовов сервера
Главный приём оптимизации под тонкий клиент — сократить количество обращений к серверу. Каждый вызов — это задержка сети, и на канале с пингом в десятки миллисекунд десять лишних вызовов дают ощутимую паузу.
- ✅ Собирайте данные за один вызов: одна серверная процедура вместо цепочки маленьких.
- ✅ Используйте
&НаСервереБезКонтекста, если данные формы серверу не нужны. Иначе форма целиком уходит на сервер и обратно. - ✅ Не вызывайте сервер из обработчиков, которые срабатывают часто, например при каждом изменении строки, без необходимости.
- ✅ Для поиска медленных мест используйте замер производительности в Конфигураторе при отладке: он показывает время клиентского и серверного кода по строкам.
// Плохо: два вызова сервера подряд
&НаКлиенте
Процедура ЗаполнитьРеквизиты()
Объект.ИНН = ПолучитьИНН(Объект.Контрагент);
Объект.КПП = ПолучитьКПП(Объект.Контрагент);
КонецПроцедуры
// Лучше: один вызов, без передачи формы
&НаСервереБезКонтекста
Функция РеквизитыКонтрагента(Контрагент)
Возврат Новый Структура("ИНН, КПП", Контрагент.ИНН, Контрагент.КПП);
КонецФункции