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

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

Почему 1С 8.3 работает медленно и как это исправить

Почему программа 1С 8.3 работает очень медленно: разбор причин — сервер, сеть, база, настройки — и конкретные шаги по диагностике и ускорению работы.

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

Принципиально важно понимать: 1С 8.3 — это не одна программа, а связка компонентов. В файловом варианте это платформа и файл базы на диске. В клиент-серверном — платформа, сервер 1С, СУБД (MS SQL, PostgreSQL) и сеть между ними. Узкое место может находиться в любом из звеньев, и пока вы его не локализовали, любые «оптимизации» — это гадание.

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

Шаг 1. Локализуйте проблему перед любыми действиями

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

Второй вопрос: тормозит всё подряд или конкретные операции? Если медленно работает только проведение больших документов или тяжёлый отчёт — это проблема кода запросов или объёма данных, а не железа. Если медленно даже открытие списка справочника — копайте в сторону сервера, дисков и сети.

Третий вопрос: проблема постоянная или возникает в определённое время? Просадки в одни и те же часы часто указывают на регламентные задания (обмены, расчёт итогов, резервное копирование), которые запускаются в рабочее время и конкурируют за ресурсы.

Тормозит у одного пользователяПроблема локальная

Проверить его ПК, сеть, антивирус, кэш

Тормозит у всех, всё подрядПроблема серверная

Проверить диски, RAM, нагрузку на СУБД

Тормозят отдельные операцииПроблема в коде или данных

Замерить операцию, смотреть запросы и блокировки

Просадки по расписаниюФоновые процессы

Проверить регламентные задания и бэкапы

Шаг 2. Проверьте сервер и дисковую подсистему

Самая частая аппаратная причина медленной работы 1С — медленные диски. Файловая база на обычном HDD при одновременной работе нескольких пользователей практически гарантированно тормозит. Даже в клиент-серверном варианте база данных на медленном диске даёт постоянные задержки при чтении и записи.

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

Откройте монитор ресурсов или диспетчер задач на сервере в момент «тормозов» и посмотрите три показателя: загрузку диска (в процентах активного времени), свободную память и загрузку процессора. Диск, загруженный на 95–100% при небольшой нагрузке на процессор, — классическая картина «дискового узкого места».

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

Шаг 3. Разберитесь с типом базы: файловая или клиент-серверная

Файловый вариант (база в виде файла 1Cv8.1CD на локальном диске или сетевой папке) имеет жёсткие ограничения. При размещении файла на сетевом диске весь обмен идёт через сетевые протоколы Windows, которые не предназначены для такой нагрузки: несколько одновременно работающих пользователей начинают мешать друг другу, появляются ожидания и ошибки блокировок.

Признаки того, что файловый режим исчерпал себя: база заметно выросла, одновременно работает больше нескольких пользователей, регулярно возникают ошибки «конфликт блокировок», проведение документов занимает десятки секунд. В этой ситуации настройки уже не помогут — нужен переход на клиент-серверный вариант или хотя бы размещение файловой базы на быстром локальном SSD с минимальным числом одновременных пользователей.

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

Сравнение вариантов размещения базы

Файловая база на сетевом диске

Подходит только для 1–3 пользователей и небольших баз. При росте числа пользователей — гарантированные блокировки и тормоза.

Файловая база на локальном SSD

Приемлемо для одного пользователя или небольшой базы. Ограничение — одновременная работа и отсутствие полноценного параллелизма.

Клиент-серверный вариант

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

Шаг 4. Проверьте обслуживание базы данных

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

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

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

Ещё один фактор роста — объём данных. Журналы регистрации, помеченные на удаление объекты, исторические данные за много лет раздувают таблицы. Регулярно выполняйте удаление помеченных объектов (монопольно), рассмотрите свёртку старых периодов и очистку устаревших данных штатными средствами конфигурации.

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

Шаг 5. Найдите блокировки и тяжёлые операции

Если база в целом работает нормально, но отдельные операции «висят», почти всегда виноваты блокировки или неоптимальные запросы. Блокировка возникает, когда один пользователь проводит большой документ, а другие в это время пытаются работать с теми же регистрами — они встают в очередь и ждут.

Диагностировать это можно встроенными средствами. В технологическом журнале (настраивается через файл logcfg.xml) фиксируются длительные операции, запросы и взаимоблокировки. В консоли кластера серверов 1С видно активные сеансы и их активность. В MS SQL — представления и отчёты по ожиданиям и блокировкам.

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

Шаг 6. Проверьте клиентскую часть и сеть

Если проблема у конкретного пользователя, начните с его машины. Типовые причины: мало оперативной памяти и браузер с десятками вкладок, антивирус, проверяющий процессы 1С, медленный сетевой канал при работе через Wi-Fi вместо кабеля, устаревшая версия платформы.

Полезный приём — очистка кэша 1С на клиенте. Кэш метаданных хранится в профиле пользователя (каталоги вида %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8). Повреждённый или раздутый кэш вызывает странные тормоза и глюки именно у одного пользователя. Достаточно закрыть 1С и удалить содержимое папок кэша — при следующем запуске он пересоздастся.

При работе через тонкий клиент или веб-клиент по медленному каналу задержки неизбежны — платформа постоянно обменивается данными с сервером. Проверьте пинг до сервера и потери пакетов: нестабильная сеть с потерями даёт эффект «1С подвисает рывками». Для удалённых пользователей часто лучше работает терминальный доступ (RDP) к серверу, где 1С выполняется локально, а по сети передаётся только экран.

Шаг 7. Когда причина в конфигурации и коде

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

Инструмент для поиска таких мест — замер производительности в конфигураторе (Отладка → Замер производительности) в связке с технологическим журналом и планом запроса на стороне СУБД. Замер покажет, какие строки кода и запросы съедают время.

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

Типичные ошибки при «лечении» медленной 1С
01
Менять настройки вслепую без замеров — проблема не решается, а диагностика усложняется
02
Покупать более мощный сервер, когда узкое место — один неоптимальный запрос
03
Запускать тестирование и исправление без резервной копии — риск потерять данные
04
Игнорировать регламентные задания днём — они незаметно съедают ресурсы в часы пик
05
Добавлять оперативную память при 100% загрузке диска — эффекта не будет
06
Держать файловую базу на сетевом диске для десяти пользователей и бороться с блокировками настройками

Шаг 8. Соберите всё в план действий

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

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

Маршрут решения

Как выбрать действие

Тормозит у одного пользователя, у остальных нормальноОчистите кэш 1С на его ПК, проверьте антивирус, память и сеть
Тормозит у всех, диск сервера загружен на 100%Перенесите базу на SSD, проверьте фоновые процессы и антивирус
Висят конкретные документы и отчётыВключите технологический журнал, найдите тяжёлые запросы и блокировки, привлеките разработчика
Файловая база на сетевом диске, работает много пользователейПланируйте переход на клиент-серверный вариант — настройки тут не помогут
Тормоза по расписанию в одни часыПеренесите регламентные задания, обмены и бэкапы на нерабочее время
Итог

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

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

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

1С тормозит только утром, когда все заходят в базу. Это нормально?

Нет, это признак того, что сервер или дисковая подсистема не справляется с пиковой нагрузкой при массовом подключении и начале работы. Проверьте загрузку диска и памяти именно в это время, а также посмотрите, не запускаются ли утром регламентные задания и обмены. Часто помогает перенос базы на SSD и разнос фоновых задач по времени.

Поможет ли увеличение оперативной памяти серверу?

Только если память действительно является узким местом. Проверьте в момент тормозов: если свободной памяти почти нет и активно используется файл подкачки — добавление RAM поможет. Если памяти хватает, а диск загружен на 100%, эффекта не будет. Сначала замер, потом покупка.

Как часто нужно обслуживать базу на MS SQL?

Обновление статистики и обслуживание индексов разумно выполнять еженедельно, для активно растущих баз — чаще. Резервное копирование — ежедневно как минимум. Конкретная периодичность зависит от интенсивности работы: ориентируйтесь на динамику фрагментации индексов и время выполнения типовых операций.

После обновления платформы 1С стала работать медленнее. Что делать?

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

Можно ли ускорить файловую базу без перехода на сервер?

Частично: перенесите файл базы с сетевого диска на локальный SSD, добавьте каталог базы в исключения антивируса, периодически делайте выгрузку-загрузку через dt, удаляйте помеченные объекты. Но если одновременно работает много пользователей, эти меры дадут лишь временное облегчение — ограничение заложено в самой архитектуре файлового режима.

Отчёт формируется 10 минут. Это проблема сервера?

Не обязательно. Тяжёлый отчёт может тормозить из-за неоптимальных запросов даже на мощном сервере. Включите замер производительности и технологический журнал на время формирования отчёта: если основное время уходит на один-два запроса — нужна оптимизация запроса и индексов, а не железа. Также проверьте, не задаётся ли отчёт за слишком большой период без отборов.