Как устроен толстый клиент 1С:Предприятия и когда без него не обойтись
Содержание
Толстый клиент 1С:Предприятия — это исполняемый файл 1cv8.exe, который умеет выполнять на компьютере пользователя не только интерфейс, но и прикладной код конфигурации. Только он открывает конфигурации на обычных формах (БП 2.0, УПП 1.3, УТ 10.3, ЗУП 2.5) и внешние обработки, нарисованные обычными формами.
Обычно о нём вспоминают, когда старая обработка не открывается в тонком клиенте или программист просит «зайти в толстом». Для повседневной работы в управляемых конфигурациях он не нужен, а вот для обычных форм, отладки и старых драйверов оборудования замены ему нет.
Как устроен толстый клиент 1С:Предприятия
Платформа 1С 8.3 построена по многоуровневой схеме: клиентское приложение → сервер 1С:Предприятия (или файловый движок) → хранилище данных. Клиенты отличаются тем, какую часть работы они берут на себя.
Толстый клиент «толстый» потому, что тянет на свою сторону почти всё:
- 🧩 Полные метаданные конфигурации. Клиент загружает описание всех объектов, а не только клиентскую часть интерфейса.
- ⚙️ Прикладной код. В обычном приложении модули объектов, менеджеров и общие модули без ограничений по контексту могут исполняться прямо на клиенте.
- 🗄️ Доступ к данным с клиента. Код на клиенте может читать справочники, документы и выполнять запросы; само обращение к базе при этом всё равно идёт через сервер 1С.
- 🖼️ Два вида форм. Толстый клиент показывает и обычные, и управляемые формы.
Обычное и управляемое приложение в толстом клиенте
Толстый клиент работает в двух режимах:
| Режим | Какой модуль приложения | Формы | Типичные конфигурации |
|---|---|---|---|
| Обычное приложение | Модуль приложения | Обычные (и управляемые при включённом свойстве) | БП 2.0, УПП 1.3, УТ 10.3, ЗУП 2.5 |
| Управляемое приложение | Модуль управляемого приложения | Управляемые (и обычные при включённом свойстве) | БП 3.0, ЗУП 3.1, УТ 11 в толстом клиенте |
В коде режим различают инструкциями препроцессора: #Если ТолстыйКлиентОбычноеПриложение Тогда, #Если ТолстыйКлиентУправляемоеПриложение Тогда, #Если ТонкийКлиент Тогда. Это удобно, когда одна обработка должна работать в разных клиентах.
Файловый и клиент-серверный вариант
В файловой базе движок работы с данными загружается в процесс клиента. Получается, что толстый клиент сам и «сервер», и интерфейс: всё крутится на одном компьютере, а файл 1Cv8.1CD лежит локально или в общей папке.
В клиент-серверной базе клиент сначала обращается к агенту сервера (порт 1540), затем к менеджеру кластера (1541) и рабочим процессам. Толстый клиент при этом отправляет на сервер обращения к данным, но часть логики оставляет у себя. Отсюда и больший трафик по сравнению с тонким клиентом.
Толстый, тонкий и веб-клиент: сравнение режимов
Три клиента — это не три разные программы для разных задач, а три способа подключиться к одной базе. Различия удобнее смотреть в таблице.
| Параметр | Толстый клиент | Тонкий клиент | Веб-клиент |
|---|---|---|---|
| Файл запуска | 1cv8.exe | 1cv8c.exe | Браузер |
| Установка | Полная платформа | Платформа или отдельный дистрибутив тонкого клиента | Не нужна, база публикуется на веб-сервере |
| Обычные формы | ✅ Да | ❌ Нет | ❌ Нет |
| Управляемые формы | ✅ Да | ✅ Да | ✅ Да |
| Прикладной код на клиенте | Почти весь | Только клиентские процедуры | Только клиентские процедуры |
| Доступ к данным с клиента | Есть | Только через вызов сервера | Только через вызов сервера |
| Работа по медленному каналу | Плохо | Хорошо | Хорошо |
| Нагрузка на компьютер | Высокая | Умеренная | Зависит от браузера |
Лицензии от выбора клиента не зависят: каждый сеанс 1С:Предприятия занимает клиентскую лицензию, будь то толстый, тонкий или веб-клиент.
Почему типовые конфигурации ушли от толстого клиента
Обычное приложение позволяло писать код где угодно: запрос мог выполняться прямо из формы на клиенте. Это просто для разработчика, но плохо для сети и масштабирования. Каждая форма тянет данные по каналу, и при сотне пользователей сервер и сеть загружены лишними обращениями.
Управляемое приложение разделило код на клиентский и серверный директивами &НаКлиенте и &НаСервере. Клиенту достаётся только интерфейс, тяжёлая работа остаётся на сервере. Поэтому новые редакции типовых решений выходят только на управляемых формах, а толстый клиент остался для совместимости.
Если конфигурация управляемая (БП 3.0, ЗУП 3.1, УТ 11), для ежедневной работы выбирайте тонкий клиент. Толстый в такой базе нужен эпизодически: для старых внешних обработок и отладки.
Исключительный режим: что это и при чём тут толстый клиент
Исключительный, или монопольный, режим — это состояние, при котором с базой работает только один сеанс. Его путают с толстым клиентом, но это разные вещи: монопольный режим доступен в любом клиенте и в Конфигураторе.
Когда нужен монопольный доступ
Монопольный режим требуется для операций, которые меняют базу целиком:
- 🔧 Обновление структуры базы данных после изменения конфигурации (
Конфигурация → Обновить конфигурацию базы данных). - 📦 Загрузка информационной базы из файла
.dt(Администрирование → Загрузить информационную базу). - 🩺 Тестирование и исправление информационной базы.
- 🗑️ Некоторые обработки, которые сами запрашивают монопольный режим. Чаще это старые обработки на обычных формах, запускаемые как раз в толстом клиенте.
В коде режим включают методом УстановитьМонопольныйРежим(Истина), а проверяют функцией МонопольныйРежим(). Если в базе есть другие сеансы, установка режима завершится ошибкой.
Как получить монопольный доступ без конфликтов
Чтобы освободить базу, используют блокировку установки соединений. В типовых управляемых конфигурациях её включают в разделе Администрирование → Обслуживание, в группе, где настраиваются блокировка работы пользователей и код разрешения.
После блокировки администратор входит с ключом /UC<код разрешения>, например:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /UC123456
Блокировка и завершение сеансов обрывают работу пользователей. Несохранённые документы потеряются. Предупредите коллег заранее и выбирайте время вне рабочего дня или перерыв.
Перед обновлением структуры базы и загрузкой .dt сделайте резервную копию: выгрузку .dt или бэкап СУБД. Эти операции не отменяются кнопкой «Назад».
Когда необходим запуск 1С в толстом клиенте
Толстый клиент не «лучше» и не «мощнее» в бытовом смысле. Он нужен в конкретных ситуациях.
Случаи, когда без него не обойтись
- 📁 Конфигурация на обычных формах. БП 2.0, УПП 1.3, УТ 10.3, ЗУП 2.5, КА 1.1 и самописные базы того же поколения работают только в толстом клиенте.
- 🧾 Внешняя обработка или отчёт на обычных формах. Файл
.epfили.erfс обычной формой не откроется в тонком клиенте. В управляемой базе его можно запустить в толстом клиенте, если в свойствах конфигурации включеноИспользовать обычные формы в управляемом приложении. - 🔌 Старые внешние компоненты и драйверы оборудования, которые разработчик делал под обычное приложение.
- 🐞 Отладка кода, который в обычном приложении выполняется на клиенте. Чтобы отладчик остановился на точке останова, сеанс нужно запустить в том же клиенте, где работает пользователь.
Когда толстый клиент не нужен
- Работа бухгалтера в БП 3.0 или кадровика в ЗУП 3.1.
- Подключение из дома или филиала по интернету: здесь лучше тонкий клиент, веб-клиент или удалённый рабочий стол.
- Слабые компьютеры и ноутбуки с малым объёмом памяти.
Настройка запуска толстого клиента и параметры командной строки
Запустить 1С в толстом клиенте можно тремя способами: через свойства базы в стартере, через настройки пользователя и через командную строку.
Способ 1. Свойства базы в окне запуска
- Откройте окно запуска 1С (
1cestart.exe). - Выделите базу и нажмите
Изменить. - Пройдите мастер до последней страницы.
- В поле
Основной режим запускавыберитеТолстый клиент. - Нажмите
Готовои запустите базу кнопкой1С:Предприятие.
Вариант Выбирать автоматически оставляет решение платформе: для управляемой конфигурации она обычно выбирает тонкий клиент.
Способ 2. Режим запуска у пользователя
В Конфигураторе откройте Администрирование → Пользователи, затем карточку пользователя. На вкладке Прочие есть поле Режим запуска со значениями Авто, Обычное приложение и Управляемое приложение.
Значение Обычное приложение заставит платформу открывать для этого пользователя толстый клиент в обычном режиме, если конфигурация это поддерживает.
Способ 3. Командная строка и ярлык
Самый надёжный способ — ярлык с параметрами. Платформа берётся из конкретной папки версии, режим задаётся явно.
:: Файловая база, толстый клиент, обычное приложение
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Torg" /RunModeOrdinaryApplication
:: Клиент-серверная база, толстый клиент, управляемое приложение
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /S"srv1c\buh" /RunModeManagedApplication
:: Запуск с очисткой кэша
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Torg" /ClearCache
Основные параметры:
| Параметр | Что делает |
|---|---|
ENTERPRISE | Запуск в режиме 1С:Предприятие (а не Конфигуратора) |
/F"путь" | Путь к файловой базе |
/S"сервер\база" | Адрес клиент-серверной базы |
/N"имя" и /P"пароль" | Пользователь и пароль 1С |
/RunModeOrdinaryApplication | Толстый клиент, обычное приложение |
/RunModeManagedApplication | Толстый клиент, управляемое приложение |
/UC<код> | Вход при включённой блокировке соединений |
/ClearCache | Очистка клиентского кэша при запуске |
/DisableStartupMessages | Без стартовых предупреждений |
Номер версии в пути подставьте свой: он совпадает с названием папки в C:\Program Files\1cv8\.
Пароль в ярлыке виден любому, кто откроет свойства ярлыка. Для рабочих мест лучше аутентификация Windows (ключ /WA+) или ввод пароля вручную.
Как проверить, в каком клиенте вы работаете
Откройте окно «О программе» (значок со знаком вопроса в правом верхнем углу или меню Справка). Там указан тип клиента и режим приложения. Ещё один признак: если в главном окне есть классическое меню с пунктами Операции и Сервис, перед вами обычное приложение, а значит, толстый клиент.
Почему толстый клиент работает медленно и как его ускорить
Толстый клиент тяжелее тонкого по устройству. Жалобы на скорость обычно сводятся к четырём причинам.
Причины тормозов
- 🐢 Медленный канал до сервера. Толстый клиент гоняет по сети больше данных, чем тонкий. По VPN с высоким пингом это заметно на каждой форме.
- 🗄️ Файловая база в общей папке. Каждый пользователь работает с файлом
1Cv8.1CDпо сети. При 5–10 одновременных сеансах начинаются ожидания на блокировках. - 💾 Раздутый или битый кэш. Клиент хранит копию метаданных в профиле пользователя. После обновлений там копятся старые версии, иногда кэш повреждается.
- 🧠 Нехватка памяти. Полная конфигурация УПП или КА в 32-разрядном клиенте упирается в лимит адресного пространства процесса.
Что сделать
- Очистите кэш. Закройте 1С и запустите базу с ключом
/ClearCache. Альтернатива — удалить папки с длинными именами-идентификаторами в%APPDATA%\1C\1cv8\и%LOCALAPPDATA%\1C\1cv8\. Список баз (ibases.v8i) при этом не трогайте. - Поставьте 64-разрядный клиент, если компьютер и версия платформы это позволяют. Ограничение по памяти процесса уходит.
- Не тяните толстый клиент через интернет. Для удалённых сотрудников поднимите удалённый рабочий стол рядом с сервером 1С: клиент будет работать в той же сети, что и база.
- Переведите файловую базу на клиент-серверный вариант, если одновременно работают больше нескольких человек и тормоза связаны с блокировками.
- Проверьте антивирус. Исключите из проверки каталоги кэша и папку с файловой базой. Сканирование
1Cv8.1CDна лету резко замедляет любые операции.
Удалять папки кэша можно только при закрытой 1С на этом компьютере. Если чистите кэш на терминальном сервере, сначала попросите пользователей выйти: иначе их сеансы завершатся с ошибкой.
Частые вопросы о толстом клиенте 1С
Нужна ли отдельная лицензия для толстого клиента?
Можно ли установить только толстый клиент без остальной платформы?
Работает ли толстый клиент на Linux?
Почему внешняя обработка открывается у программиста, но не у бухгалтера?
Чем отличаются 1cv8.exe и 1cestart.exe?
1cestart.exe — стартер: он показывает список баз и выбирает нужную версию платформы. 1cv8.exe — сам толстый клиент и Конфигуратор конкретной версии.