Клиент-серверная архитектура 1С
Клиент-серверная архитектура 1С — это способ организации взаимодействия между компонентами программного обеспечения платформы «1С:Предприятие», при котором прикладные задачи разделены между клиентским приложением (тонким или толстым клиентом) и сервером (кластером серверов), а также используется система управления базами данных (СУБД) для хранения и обработки данных. Данная архитектура применяется для обеспечения многопользовательской работы, масштабируемости, централизованного администрирования и высокой производительности информационных систем на платформе 1С.
История и предпосылки появления
Первоначально платформа 1С (начиная с версии 7.7) работала исключительно в файловом режиме, когда все данные хранились в одном файле на диске, а пользователи подключались к нему по сети. Этот подход имел существенные ограничения: низкая производительность при большом количестве пользователей (более 10–20), риск повреждения файла, отсутствие разграничения прав доступа на уровне СУБД и сложности с резервным копированием.
С выходом платформы 1С:Предприятие 8.0 (2003 год) была введена клиент-серверная архитектура, которая позволила перенести часть вычислительной нагрузки на сервер, а данные — в профессиональные СУБД (Microsoft SQL Server, PostgreSQL, IBM DB2). Это стало важным шагом для использования 1С в крупных корпоративных средах с сотнями и тысячами одновременных пользователей.
Основные компоненты архитектуры
Клиент-серверная архитектура 1С состоит из трёх ключевых уровней:
Клиентское приложение (Клиент)
Клиент — это программа, установленная на компьютере пользователя или запускаемая через веб-браузер. Она отвечает за отображение интерфейса, ввод данных и выполнение части логики, связанной с интерфейсом. Существует два основных типа клиентов:
- Толстый клиент — полноценное приложение, которое содержит в себе всю функциональность платформы, включая возможность выполнения кода на стороне клиента. Используется для работы с конфигурацией в режиме «Предприятие» и «Конфигуратор». Требует установки на компьютер пользователя.
- Тонкий клиент — облегчённая версия клиента, которая передаёт большую часть вычислительной нагрузки на сервер. На стороне клиента выполняется только отображение форм и обработка событий ввода. Тонкий клиент может работать как через локальную сеть, так и через интернет (по протоколу HTTP/HTTPS). Он не требует установки полной платформы, но использует компоненты, доступные через браузер или отдельный установщик.
Также существует веб-клиент, который не требует установки дополнительного ПО — пользователь работает через любой современный браузер. Веб-клиент является разновидностью тонкого клиента.
Кластер серверов 1С:Предприятия
Сервер 1С — это центральный компонент, который управляет сессиями пользователей, выполняет бизнес-логику прикладных решений, координирует доступ к данным и обеспечивает масштабирование. Кластер может состоять из одного или нескольких физических или виртуальных серверов, объединённых в единую систему. Основные функции кластера:
- Приём и обработка запросов от клиентов.
- Выполнение кода на серверном языке (встроенный язык 1С), который оптимизирован для работы с большими объёмами данных.
- Управление транзакциями и блокировками.
- Балансировка нагрузки между рабочими процессами (RProc — рабочие процессы).
- Обеспечение отказоустойчивости (при наличии нескольких рабочих серверов).
Кластер серверов 1С может работать в режиме «Сервер 1С:Предприятия» (Windows) или «Сервер 1С:Предприятия (Linux)». В последних версиях платформы (8.3 и выше) активно используется сервер на базе Linux (например, под управлением Astra Linux, Red Hat, Ubuntu).
Система управления базами данных (СУБД)
СУБД отвечает за хранение, извлечение и модификацию данных. В клиент-серверном варианте 1С поддерживаются следующие СУБД:
- Microsoft SQL Server — наиболее распространённая СУБД для Windows-среды.
- PostgreSQL — свободная СУБД, активно используется в российских организациях, особенно в рамках импортозамещения. Поддерживается как в Windows, так и в Linux.
- IBM DB2 — исторически поддерживалась, но в настоящее время используется редко.
- Oracle Database — также поддерживалась, но в новых версиях платформы сертификация для Oracle была прекращена.
СУБД устанавливается на отдельном сервере (или на том же, что и кластер 1С, но для производительности рекомендуется разделение). Она обеспечивает целостность данных, резервное копирование, индексацию, а также выполнение сложных запросов на языке SQL.
Принцип работы
Взаимодействие между компонентами происходит следующим образом:
- Пользователь запускает клиентское приложение (толстый, тонкий или веб-клиент) и указывает адрес информационной базы.
- Клиент подключается к кластеру серверов 1С через сетевой протокол (TCP/IP для толстого и тонкого клиента, HTTP/HTTPS для веб-клиента).
- Сервер 1С аутентифицирует пользователя, загружает метаданные конфигурации и запускает сессию.
- При выполнении операций (ввод документа, формирование отчёта) клиент отправляет на сервер запросы. Сервер выполняет бизнес-логику, при необходимости обращается к СУБД для получения или изменения данных.
- СУБД обрабатывает SQL-запросы, возвращает результаты серверу 1С.
- Сервер 1С передаёт обработанные данные клиенту, который отображает их в интерфейсе.
Таким образом, клиент не имеет прямого доступа к СУБД — все операции с данными происходят через сервер 1С. Это повышает безопасность и позволяет централизованно управлять доступом.
Преимущества и недостатки
Преимущества
- Масштабируемость — возможность добавления новых серверов в кластер для увеличения производительности.
- Многопользовательская работа — поддержка сотен и тысяч одновременных пользователей без потери производительности.
- Централизованное администрирование — обновление конфигурации, управление пользователями, резервное копирование выполняются на сервере.
- Безопасность — разграничение доступа на уровне СУБД и сервера 1С, шифрование трафика.
- Отказоустойчивость — при выходе из строя одного сервера кластера нагрузка перераспределяется на другие.
- Поддержка различных СУБД — возможность выбора под конкретные требования организации.
Недостатки
- Сложность настройки и администрирования — требуется квалифицированный специалист (администратор 1С и СУБД).
- Зависимость от сетевой инфраструктуры — при плохом качестве связи (высокие задержки, низкая пропускная способность) производительность падает.
- Высокие требования к аппаратному обеспечению серверов — особенно к оперативной памяти и процессору.
- Стоимость — лицензирование серверных компонентов 1С и СУБД (например, Microsoft SQL Server) может быть дорогим.
- Сложность обновления — обновление платформы или конфигурации требует остановки сервера и тестирования.
Сравнение с файловым режимом
| Характеристика | Файловый режим | Клиент-серверный режим |
|---|---|---|
| Хранение данных | Один файл (.1CD) | СУБД (SQL Server, PostgreSQL) |
| Максимальное количество пользователей | 10–20 (рекомендуется) | Сотни и тысячи |
| Производительность | Падает при росте нагрузки | Высокая, масштабируется |
| Безопасность | Низкая (файл доступен по сети) | Высокая (разграничение доступа, шифрование) |
| Резервное копирование | Сложное (файл блокируется) | Простое (средствами СУБД) |
| Сложность администрирования | Низкая | Высокая |
| Стоимость лицензирования | Только клиентские лицензии | Клиентские + серверные + СУБД |
Применение
Клиент-серверная архитектура 1С используется в организациях, где требуется одновременная работа большого числа пользователей (от 20–30 и выше), а также в случаях, когда критичны надёжность, безопасность и производительность. Типичные сценарии:
- Крупные предприятия (холдинги, заводы, торговые сети) с числом сотрудников от 100 до нескольких тысяч.
- Государственные учреждения, где требуется строгий контроль доступа и аудит.
- Организации, использующие 1С в режиме 24/7 (например, интернет-магазины, банки).
- Проекты с территориально распределёнными офисами, где используется веб-клиент или тонкий клиент через интернет.
Интересные факты
- В платформе 1С:Предприятие 8.3 появилась возможность работы в режиме «Управляемые формы», который оптимизирован для тонкого и веб-клиента.
- Для повышения производительности в кластере серверов используется технология «Рабочие процессы» (RProc), которые могут быть запущены на разных ядрах процессора.
- В рамках импортозамещения в России активно внедряется сервер 1С на Linux и СУБД PostgreSQL. По состоянию на 2024 год PostgreSQL является рекомендованной СУБД для новых проектов в государственных организациях.
- Клиент-серверная архитектура 1С поддерживает протокол HTTPS для безопасной передачи данных через интернет, что позволяет организовывать удалённую работу без использования VPN.
Источники
- Официальная документация фирмы «1С»: «Архитектура платформы 1С:Предприятие 8.3».
- Книга: Радченко М.Г., Хрусталёва Е.Ю. «1С:Предприятие 8.3. Практическое пособие разработчика».
- Статья: «Клиент-серверная архитектура 1С:Предприятие» на портале «Инфостарт».
- Материалы конференций «1С:Профессионал» и «1С:ERP-дни».
- Техническая документация по PostgreSQL и Microsoft SQL Server для 1С.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →