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

Администрирование · 11 мин

1С: что под капотом — как устроена платформа

Как устроена платформа 1С изнутри: клиент-серверная архитектура, СУБД, метаданные, кластер серверов и механизмы, которые влияют на скорость и стабильность работы.

Когда бухгалтер нажимает «Провести», а документ зависает на минуту, причина почти никогда не лежит на поверхности. Она скрыта в связке «клиент — сервер 1С — СУБД», в том, как платформа хранит метаданные, строит запросы и управляет блокировками. Понимание внутреннего устройства 1С позволяет не гадать, а точно находить узкие места: медленный запрос, избыточная блокировка, перегруженный рабочий процесс кластера.

Платформа 1С:Предприятие — это не одна программа, а многослойная система: клиентское приложение, сервер приложений (кластер), система управления базами данных и собственно конфигурация, написанная на встроенном языке. Каждый слой имеет свои механизмы, ограничения и точки отказа.

Материал рассчитан на администраторов, внедренцев и разработчиков, которые хотят понимать, что происходит «под капотом», когда пользователи жалуются на тормоза, ошибки и конфликты блокировок.

Трёхзвенная архитектура: кто за что отвечает

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

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

Практический вывод: диагностику проблем всегда начинайте с определения, на каком звене теряется время. Медленная отрисовка формы — чаще клиент или сеть; долгое проведение документа — серверный код или запросы к СУБД; массовые ожидания у всех пользователей — блокировки на уровне СУБД.

Метаданные: как конфигурация превращается в таблицы

Главная особенность 1С — разработчик не создаёт таблицы вручную. Он описывает объекты метаданных: справочники, документы, регистры накопления и сведений. Платформа сама решает, какие таблицы и индексы создать в СУБД, и при изменении структуры конфигурации выполняет реструктуризацию.

Например, регистр накопления превращается в таблицу итогов и таблицу движений, документ — в таблицу с реквизитами плюс табличные части. Имена физических таблиц не совпадают с именами объектов в конфигураторе, поэтому прямой анализ базы средствами СУБД требует сопоставления через служебные таблицы.

Реструктуризация при обновлении конфигурации — самая рискованная операция с метаданными. На больших таблицах она может идти часами и полностью блокировать работу. Поэтому обновления рабочих баз выполняют в нерабочее время и только после резервного копирования.

Как платформа работает с СУБД

Запросы на встроенном языке 1С платформа транслирует в SQL. Это удобно для разработчика, но создаёт риск: неоптимально написанный запрос (соединения по вычисляемым полям, выборка «всё и сразу», запросы в цикле) превращается в тяжёлый SQL, который грузит сервер баз данных.

Второй ключевой механизм — блокировки. Платформа использует два режима: автоматический (управляет сама) и управляемый, где разработчик явно указывает, что и когда блокировать. Современные конфигурации работают в управляемом режиме, а уровень изоляции в СУБД обычно настроен на чтение зафиксированных данных с версионированием строк, что снижает число конфликтов между читателями и писателями.

Третий механизм — транзакции. Проведение документа, запись набора регистров — всё это выполняется в транзакциях. Длинная транзакция удерживает блокировки и журналы СУБД, поэтому массовые обработки правильно разбивать на порции с фиксацией.

Все пользователи тормозят одновременноПроблема на сервере или в СУБД

Загрузку CPU и дисков сервера СУБД, активные блокировки

Тормозит один вид документовТяжёлый запрос или код проведения

Технологический журнал, длительные запросы к СУБД

Ошибки «Конфликт блокировок»Конкуренция за одни данные

Какие объекты блокируются, нет ли обменов в рабочее время

Тормозит у одного пользователяКлиент или сеть

Пинг до сервера, нагрузку на ПК, версию платформы

Кластер серверов: процессы, сеансы и фоновые задания

Кластер 1С состоит из агента (координирует работу), менеджеров кластера и рабочих процессов, которые непосредственно исполняют код. Рабочий процесс обслуживает несколько сеансов; если процесс падает, кластер может перезапустить его, но незавершённые операции пользователей прервутся.

Фоновые задания и регламентные задания выполняются внутри кластера и часто становятся скрытым источником нагрузки: обмены с сайтом, пересчёт итогов, загрузка курсов валют могут запускаться в разгар рабочего дня и конкурировать с пользователями за ресурсы СУБД.

Для крупных внедрений кластер позволяет распределять нагрузку между несколькими серверами, назначать требования назначения функциональности (например, выделить отдельный сервер под фоновые задания) и ограничивать объём памяти рабочих процессов, чтобы один «прожорливый» сеанс не утянул весь сервер.

Диагностика: технологический журнал и замеры

Главный инструмент «рентгена» платформы — технологический журнал (ТЖ). Это текстовые логи, в которых фиксируются события: вызовы, запросы к СУБД, блокировки, исключения, аварийные завершения. ТЖ включается через конфигурационный файл logcfg.xml, где задаётся, какие события и с какой длительностью записывать.

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

Третий уровень — средства самой СУБД: планы выполнения запросов, статистика ожиданий, мониторинг дисковой подсистемы. Именно на этом уровне выясняется, не хватает ли индекса, устарела ли статистика или упирается ли всё в медленные диски.

Порядок поиска причины медленной работы
  1. 1
    Определите масштаб: у всех пользователей или у одного, всегда или в конкретные часы
  2. 2
    Откройте консоль кластера и найдите сеансы и фоновые задания с максимальной нагрузкой
  3. 3
    Включите технологический журнал с фильтром по длительным событиям (запросы, блокировки)
  4. 4
    Сопоставьте найденные запросы с планами выполнения в СУБД
  5. 5
    Устраните причину (оптимизация кода, индекс, перенос фоновых заданий) и повторите замер

Типичные узкие места и ограничения

Чаще всего «под капотом» проблемы одни и те же: запросы в цикле вместо пакетной выборки, отсутствие индексов под реальные отборы, регламентные задания в пиковые часы, избыточные блокировки при групповом проведении и разросшиеся таблицы итогов без своевременного обслуживания.

Отдельный источник рисков — обслуживание СУБД. Перестроение индексов, обновление статистики, контроль роста журнала транзакций и регулярные резервные копии — обязательный минимум. Без него база деградирует постепенно, и пользователи привыкают к тормозам как к норме.

Граница безопасной самостоятельной работы проходит так: читать логи, смотреть сеансы, настраивать расписание заданий и делать выгрузку/загрузку через конфигуратор — можно. Менять структуру таблиц, править данные напрямую в СУБД, экспериментировать с реструктуризацией на рабочей базе без копии — нельзя.

Типичные ошибки
01
Правка данных напрямую в таблицах СУБД — нарушается целостность ссылок и итогов, восстановление почти невозможно
02
Обновление конфигурации днём без копии — реструктуризация блокирует базу и при сбое оставляет её в промежуточном состоянии
03
Включение полного технологического журнала без фильтров — логи съедают диск и сами тормозят сервер
04
Запуск тяжёлых обменов и пересчётов итогов в рабочее время — массовые блокировки и жалобы пользователей
05
Игнорирование обслуживания СУБД — устаревшая статистика и фрагментированные индексы постепенно душат производительность

Итоговая картина и контроль результата

Понимание архитектуры 1С сводится к простой модели: клиент рисует интерфейс, кластер исполняет код и управляет сеансами, СУБД хранит данные и выполняет запросы, а метаданные связывают мир конфигуратора с миром таблиц. Любая проблема производительности локализуется на одном из этих уровней.

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

Контрольные точки

Как проверить результат

Время проведения проблемного документа
Норма

Стабильно быстрое в часы пик

Тревожный признак

Быстро только ночью, днём снова тормозит

Технологический журнал
Норма

Нет длительных запросов и взаимоблокировок

Тревожный признак

Повторяющиеся тяжёлые запросы и конфликты блокировок

Загрузка сервера СУБД
Норма

CPU и диски с запасом в пиковые часы

Тревожный признак

Постоянная загрузка под потолком

Фоновые задания
Норма

Выполняются по расписанию вне пиков

Тревожный признак

Падают с ошибками или работают в разгар дня

Итог

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

1С — это связка «клиент — кластер — СУБД», где конфигурация хранится как метаданные. Диагностику ведите по уровням: сеансы в консоли кластера, события в технологическом журнале, запросы в СУБД. Структуру меняйте только через конфигуратор и только после резервной копии.

Частые вопросы

Чем файловый режим отличается от клиент-серверного?

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

Можно ли смотреть данные 1С напрямую в SQL?

Читать — да, это безопасно и часто полезно для анализа. Изменять — категорически нет: платформа хранит служебные поля, итоги и служебные структуры, и ручная правка нарушит целостность базы.

Почему после обновления конфигурации база долго недоступна?

При изменении структуры метаданных платформа выполняет реструктуризацию — физическое преобразование таблиц в СУБД. На больших таблицах это занимает значительное время и блокирует работу, поэтому обновления планируют на нерабочие часы.

Что такое технологический журнал и когда его включать?

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

Отчего возникают ошибки «Конфликт блокировок при выполнении транзакции»?

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

Когда стоит привлекать специалиста, а не разбираться самостоятельно?

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