Администрирование · 11 мин
1С: что под капотом — как устроена платформа
Как устроена платформа 1С изнутри: клиент-серверная архитектура, СУБД, метаданные, кластер серверов и механизмы, которые влияют на скорость и стабильность работы.
Когда бухгалтер нажимает «Провести», а документ зависает на минуту, причина почти никогда не лежит на поверхности. Она скрыта в связке «клиент — сервер 1С — СУБД», в том, как платформа хранит метаданные, строит запросы и управляет блокировками. Понимание внутреннего устройства 1С позволяет не гадать, а точно находить узкие места: медленный запрос, избыточная блокировка, перегруженный рабочий процесс кластера.
Платформа 1С:Предприятие — это не одна программа, а многослойная система: клиентское приложение, сервер приложений (кластер), система управления базами данных и собственно конфигурация, написанная на встроенном языке. Каждый слой имеет свои механизмы, ограничения и точки отказа.
Материал рассчитан на администраторов, внедренцев и разработчиков, которые хотят понимать, что происходит «под капотом», когда пользователи жалуются на тормоза, ошибки и конфликты блокировок.
Трёхзвенная архитектура: кто за что отвечает
Классическая схема работы 1С в файловом варианте — это один процесс, который сам читает файл базы. Такой режим подходит только для небольших баз и ограниченного числа пользователей: файл базы становится единой точкой конкуренции, а сетевые сбои легко приводят к повреждению данных.
В клиент-серверном варианте появляются три независимых звена. Клиент (тонкий, толстый или веб-клиент) отвечает за интерфейс и часть логики форм. Сервер 1С (кластер) исполняет серверный код конфигурации, управляет сеансами, лицензиями и фоновыми заданиями. СУБД хранит данные и выполняет запросы, которые платформа генерирует из встроенного языка.
Практический вывод: диагностику проблем всегда начинайте с определения, на каком звене теряется время. Медленная отрисовка формы — чаще клиент или сеть; долгое проведение документа — серверный код или запросы к СУБД; массовые ожидания у всех пользователей — блокировки на уровне СУБД.
Метаданные: как конфигурация превращается в таблицы
Главная особенность 1С — разработчик не создаёт таблицы вручную. Он описывает объекты метаданных: справочники, документы, регистры накопления и сведений. Платформа сама решает, какие таблицы и индексы создать в СУБД, и при изменении структуры конфигурации выполняет реструктуризацию.
Например, регистр накопления превращается в таблицу итогов и таблицу движений, документ — в таблицу с реквизитами плюс табличные части. Имена физических таблиц не совпадают с именами объектов в конфигураторе, поэтому прямой анализ базы средствами СУБД требует сопоставления через служебные таблицы.
Реструктуризация при обновлении конфигурации — самая рискованная операция с метаданными. На больших таблицах она может идти часами и полностью блокировать работу. Поэтому обновления рабочих баз выполняют в нерабочее время и только после резервного копирования.
Как платформа работает с СУБД
Запросы на встроенном языке 1С платформа транслирует в SQL. Это удобно для разработчика, но создаёт риск: неоптимально написанный запрос (соединения по вычисляемым полям, выборка «всё и сразу», запросы в цикле) превращается в тяжёлый SQL, который грузит сервер баз данных.
Второй ключевой механизм — блокировки. Платформа использует два режима: автоматический (управляет сама) и управляемый, где разработчик явно указывает, что и когда блокировать. Современные конфигурации работают в управляемом режиме, а уровень изоляции в СУБД обычно настроен на чтение зафиксированных данных с версионированием строк, что снижает число конфликтов между читателями и писателями.
Третий механизм — транзакции. Проведение документа, запись набора регистров — всё это выполняется в транзакциях. Длинная транзакция удерживает блокировки и журналы СУБД, поэтому массовые обработки правильно разбивать на порции с фиксацией.
Загрузку CPU и дисков сервера СУБД, активные блокировки
Технологический журнал, длительные запросы к СУБД
Какие объекты блокируются, нет ли обменов в рабочее время
Пинг до сервера, нагрузку на ПК, версию платформы
Кластер серверов: процессы, сеансы и фоновые задания
Кластер 1С состоит из агента (координирует работу), менеджеров кластера и рабочих процессов, которые непосредственно исполняют код. Рабочий процесс обслуживает несколько сеансов; если процесс падает, кластер может перезапустить его, но незавершённые операции пользователей прервутся.
Фоновые задания и регламентные задания выполняются внутри кластера и часто становятся скрытым источником нагрузки: обмены с сайтом, пересчёт итогов, загрузка курсов валют могут запускаться в разгар рабочего дня и конкурировать с пользователями за ресурсы СУБД.
Для крупных внедрений кластер позволяет распределять нагрузку между несколькими серверами, назначать требования назначения функциональности (например, выделить отдельный сервер под фоновые задания) и ограничивать объём памяти рабочих процессов, чтобы один «прожорливый» сеанс не утянул весь сервер.
Диагностика: технологический журнал и замеры
Главный инструмент «рентгена» платформы — технологический журнал (ТЖ). Это текстовые логи, в которых фиксируются события: вызовы, запросы к СУБД, блокировки, исключения, аварийные завершения. ТЖ включается через конфигурационный файл logcfg.xml, где задаётся, какие события и с какой длительностью записывать.
Второй инструмент — консоль кластера: она показывает активные сеансы, соединения с СУБД, рабочие процессы и их потребление ресурсов. По ней быстро видно, кто занял сервер: конкретный пользователь, фоновое задание или сеанс обмена.
Третий уровень — средства самой СУБД: планы выполнения запросов, статистика ожиданий, мониторинг дисковой подсистемы. Именно на этом уровне выясняется, не хватает ли индекса, устарела ли статистика или упирается ли всё в медленные диски.
- 1Определите масштаб: у всех пользователей или у одного, всегда или в конкретные часы
- 2Откройте консоль кластера и найдите сеансы и фоновые задания с максимальной нагрузкой
- 3Включите технологический журнал с фильтром по длительным событиям (запросы, блокировки)
- 4Сопоставьте найденные запросы с планами выполнения в СУБД
- 5Устраните причину (оптимизация кода, индекс, перенос фоновых заданий) и повторите замер
Типичные узкие места и ограничения
Чаще всего «под капотом» проблемы одни и те же: запросы в цикле вместо пакетной выборки, отсутствие индексов под реальные отборы, регламентные задания в пиковые часы, избыточные блокировки при групповом проведении и разросшиеся таблицы итогов без своевременного обслуживания.
Отдельный источник рисков — обслуживание СУБД. Перестроение индексов, обновление статистики, контроль роста журнала транзакций и регулярные резервные копии — обязательный минимум. Без него база деградирует постепенно, и пользователи привыкают к тормозам как к норме.
Граница безопасной самостоятельной работы проходит так: читать логи, смотреть сеансы, настраивать расписание заданий и делать выгрузку/загрузку через конфигуратор — можно. Менять структуру таблиц, править данные напрямую в СУБД, экспериментировать с реструктуризацией на рабочей базе без копии — нельзя.
Итоговая картина и контроль результата
Понимание архитектуры 1С сводится к простой модели: клиент рисует интерфейс, кластер исполняет код и управляет сеансами, СУБД хранит данные и выполняет запросы, а метаданные связывают мир конфигуратора с миром таблиц. Любая проблема производительности локализуется на одном из этих уровней.
После любых оптимизаций проверяйте результат измеримо: время выполнения проблемной операции, число и длительность блокировок в технологическом журнале, загрузка сервера СУБД в пиковые часы. Без повторного замера невозможно отличить реальное улучшение от совпадения.
Как проверить результат
Стабильно быстрое в часы пик
Быстро только ночью, днём снова тормозит
Нет длительных запросов и взаимоблокировок
Повторяющиеся тяжёлые запросы и конфликты блокировок
CPU и диски с запасом в пиковые часы
Постоянная загрузка под потолком
Выполняются по расписанию вне пиков
Падают с ошибками или работают в разгар дня
Что важно запомнить
1С — это связка «клиент — кластер — СУБД», где конфигурация хранится как метаданные. Диагностику ведите по уровням: сеансы в консоли кластера, события в технологическом журнале, запросы в СУБД. Структуру меняйте только через конфигуратор и только после резервной копии.
Частые вопросы
Чем файловый режим отличается от клиент-серверного?
В файловом режиме платформа сама читает один файл базы, что ограничивает число пользователей и делает базу уязвимой к сбоям сети. В клиент-серверном данными управляет полноценная СУБД, а кластер 1С обслуживает сеансы — это масштабируется и надёжнее, но требует администрирования серверов.
Можно ли смотреть данные 1С напрямую в SQL?
Читать — да, это безопасно и часто полезно для анализа. Изменять — категорически нет: платформа хранит служебные поля, итоги и служебные структуры, и ручная правка нарушит целостность базы.
Почему после обновления конфигурации база долго недоступна?
При изменении структуры метаданных платформа выполняет реструктуризацию — физическое преобразование таблиц в СУБД. На больших таблицах это занимает значительное время и блокирует работу, поэтому обновления планируют на нерабочие часы.
Что такое технологический журнал и когда его включать?
Это механизм логирования событий платформы: запросов, блокировок, ошибок, вызовов. Включают его по необходимости и с фильтрами (например, только события дольше заданной длительности), потому что полный журнал быстро заполняет диск и сам нагружает сервер.
Отчего возникают ошибки «Конфликт блокировок при выполнении транзакции»?
Два процесса одновременно пытаются изменить одни и те же данные — например, пользователь проводит документ, а фоновый обмен обновляет те же регистры. Помогает разнесение тяжёлых операций по времени, сокращение транзакций и оптимизация запросов, удерживающих блокировки.
Когда стоит привлекать специалиста, а не разбираться самостоятельно?
Если проблема требует изменения кода конфигурации, перестройки кластера, тонкой настройки СУБД или затрагивает рабочую базу без тестовой копии. Самостоятельно безопасно делать наблюдение: логи, сеансы, замеры времени операций.