Файловая база 1С тормозит: диагностика, обслуживание и настройка
Содержание
Чтобы ускорить файловую базу
1С, сделайте три вещи по порядку: перенесите каталог базы на локальный SSD (или запускайте 1С на том же компьютере, где лежит база), добавьте папку базы и кэш 1С в исключения антивируса, затем в Конфигураторе выполните Администрирование → Тестирование и исправление со сжатием таблиц. Часто уже этого хватает, чтобы проведение документов снова занимало секунды, а не минуты.
Типичная картина: база на 6 ГБ лежит в общей папке на старом компьютере бухгалтера, к ней подключаются четыре человека по сети, а антивирус проверяет файл 1Cv8.1CD при каждом обращении. Документ проводится полминуты, отчёт за год не открывается. Разбираться лучше по порядку: от безопасных шагов к радикальным.
Сначала диагностика: где именно тормозит файловая база
Ускорять вслепую бессмысленно. Сначала поймите, что медленно и у кого.
🔍 Что выяснить за 10 минут:
- 🖥 Тормозит у всех или только у одного пользователя. Если у одного — смотрите его компьютер, кэш и сетевой путь.
- 🌐 Тормозит только по сети или и на компьютере, где лежит база. Если локально всё быстро — проблема в сети и общей папке.
- 📄 Медленно всё или отдельные операции: открытие базы, проведение конкретного документа, один отчёт.
- 👥 Зависит ли скорость от числа людей в базе. Если вечером, когда в базе один человек, всё летает — упираетесь в блокировки файлового режима.
- 📦 Сколько весит файл
1Cv8.1CDи как быстро он растёт.
Размер базы смотрите прямо в каталоге: путь к нему показан в списке информационных баз при выделении строки. Запишите размер файла до оптимизации, чтобы потом сравнить.
Для отдельной медленной операции включите замер производительности. В Конфигураторе запустите отладку (Отладка → Начать отладку → 1С:Предприятие), затем включите Отладка → Замер производительности, повторите медленное действие и остановите замер. Вы увидите строки кода и запросы, которые съедают время.
Где хранить файл базы и как настроить сеть
Файловая база — это один файл 1Cv8.1CD. Каждый клиент читает и пишет его напрямую через файловый доступ. Поэтому скорость диска и сети влияет на работу сильнее всего.
Диск
- ⚡ SSD вместо HDD. Файловая база делает множество мелких случайных чтений. На SSD они выполняются в десятки раз быстрее, чем на механическом диске.
- 🧹 Свободное место. Оставляйте на диске хотя бы запас в 2–3 размера базы: при сжатии, выгрузке и обновлении нужно место под временные файлы.
- 🚫 Не храните базу в облачных папках. Яндекс Диск, OneDrive и подобные синхронизаторы трогают файл во время работы. Итог — тормоза и повреждение базы.
Сеть
Лучший вариант для 3 и более пользователей — не открывать базу по сети вообще, а запускать 1С там, где лежит файл.
| Способ доступа | Скорость | Когда подходит |
|---|---|---|
| Общая папка по сети (SMB) | Самая низкая, зависит от сети | 1–3 пользователя, кабельная сеть 1 Гбит/с |
| Терминальный сервер (RDP), база на его локальном диске | Высокая: 1С и файл на одной машине | 3–10 пользователей, удалённая работа |
| Публикация на веб-сервере, вход через тонкий клиент или браузер | Средняя, меньше зависит от канала | Удалённые сотрудники, филиалы |
| Клиент-серверный вариант | Высокая и стабильная | 10+ пользователей или база в десятки гигабайт |
Если остаётесь на общей папке:
- Подключайте компьютеры к сети кабелем. Работа с файловой базой по Wi-Fi — частая причина и тормозов, и повреждений.
- Проверьте, что коммутатор и сетевые карты работают на 1 Гбит/с, а не на 100 Мбит/с.
- Компьютер с базой не должен быть рабочим местом с тяжёлой нагрузкой и не должен уходить в сон.
- Путь к базе в списке баз задавайте единообразно у всех пользователей, например
\\SRV-BUH\1C\Buh.
Антивирус
Антивирус, проверяющий 1Cv8.1CD на каждом чтении, легко замедляет работу в разы. Добавьте в исключения на компьютере с базой и на всех клиентах:
- 📁 каталог информационной базы;
- 📁 каталоги кэша 1С:
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8; - 📁 временную папку пользователя
%TEMP%, если политика безопасности это допускает.
Отключите индексацию Windows для папки с базой: в свойствах папки снимите разрешение индексировать содержимое файлов. Поисковой службе нечего делать в файле .1CD.
Тестирование и исправление: сжатие таблиц и обслуживание
Со временем файл базы фрагментируется: удалённые записи оставляют пустоты, индексы разрастаются. Регламентное обслуживание возвращает файлу компактность.
Перед обслуживанием сделайте копию каталога базы или выгрузку в .dt. Тестирование требует монопольного доступа: попросите всех выйти из базы, иначе запуск не начнётся. Запускайте после работы или в выходной.
Порядок обслуживания
- Откройте базу в Конфигураторе.
- Выберите
Администрирование → Тестирование и исправление. - Отметьте проверки: реиндексация таблиц, проверка логической целостности, проверка ссылочной целостности, пересчёт итогов, сжатие таблиц информационной базы.
- В режиме при ошибках выберите «Тестирование и исправление». Для битых ссылок безопаснее вариант «Не изменять», а сами ссылки разобрать после.
- Нажмите «Выполнить» и дождитесь окончания. На базе 5–10 ГБ это может занять от получаса до нескольких часов.
Реструктуризацию таблиц включайте, только если база ведёт себя странно после обновления или есть ошибки структуры. Для обычного ускорения она не нужна и сильно удлиняет процедуру.
Выгрузка и загрузка в .dt
Самый действенный способ «пересобрать» файл с нуля:
- В Конфигураторе —
Администрирование → Выгрузить информационную базу, сохраните файл.dt. - Создайте новую пустую базу в другом каталоге.
- Откройте её в Конфигураторе и выполните
Администрирование → Загрузить информационную базу. - Проверьте работу новой базы и только потом переключите пользователей на неё.
Новый файл получается без фрагментации и часто заметно меньше исходного. Старую базу сохраните хотя бы на месяц.
Если файл повреждён
В папке bin платформы есть утилита chdbfl.exe для проверки физической целостности файловой базы. Она нужна, когда Конфигуратор не открывает базу или падает при тестировании. Запускайте её только на копии файла и при закрытой базе.
Настройки платформы и программы, которые ускоряют работу
Кэш пользователя
Испорченный или раздутый кэш даёт медленный старт, зависания форм и странные ошибки. Очистите его одним из способов:
- запустите 1С с параметром
/ClearCache(в списке баз: «Изменить» → последняя страница → поле дополнительных параметров запуска); - или при закрытой 1С удалите в папках
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8подпапки с длинными именами из букв и цифр — это кэш отдельных баз. Список баз хранится в другом месте и не пострадает.
Параметр /ClearCache уберите после одного запуска: очищать кэш при каждом входе — значит замедлять каждый вход.
Журнал регистрации
Журнал лежит в папке 1Cv8Log внутри каталога базы и за несколько лет вырастает до гигабайт. Большой журнал замедляет запись событий и вход в базу.
- В Конфигураторе откройте
Администрирование → Настройка журнала регистрации. - Уровень регистрации «Ошибки» или «Ошибки и предупреждения» вместо «Все события» заметно снижает нагрузку.
- Там же сократите журнал: старые записи можно сохранить в файл перед удалением.
Тяжёлые фоновые функции
В типовых конфигурациях на БСП часть нагрузки создают служебные механизмы. Проверьте в разделе Администрирование → Общие настройки:
- 🔎 Полнотекстовый поиск. Обновление индекса в файловой базе идёт внутри сеанса пользователя. Если поиском не пользуются, отключите его.
- 🗂 История изменений объектов. Хранение версий каждого документа раздувает базу. Оставьте её только для тех объектов, где она нужна.
Регламентные задания в файловом варианте выполняются в одном из открытых клиентских сеансов. Если у кого-то в момент входа «подвисает» программа, часто это загрузка курсов, классификаторов или обмен, запущенные по расписанию. Расписание можно посмотреть и изменить через Администрирование → Обслуживание.
Итоги регистров
В разделе Администрирование → Обслуживание есть управление итогами. Установите период рассчитанных итогов на конец прошлого месяца или квартала. Отчёты по остаткам будут считаться от готовых итогов, а не от начала времён.
Компьютер пользователя
- 💾 Для 1С 8.3 на рабочем месте комфортно от 8 ГБ ОЗУ, 4 ГБ — минимум, на котором уже чувствуются тормоза.
- 🧩 Используйте тонкий клиент и актуальную платформу, номер которой не ниже требуемого конфигурацией.
- 🪟 Закройте лишние окна 1С: десятки открытых форм и отчётов держат память и тормозят интерфейс.
Оптимизация конфигурации и кода
Если медленно работает конкретный документ или отчёт, а обслуживание не помогло, причина почти всегда в программном коде. Чаще всего это доработки, сделанные без оглядки на производительность.
⚠️ Типовые «тормоза» в коде:
- 🔁 Запрос в цикле. Сто строк документа — сто запросов к базе. Правильно: один запрос с временной таблицей.
- 🔗 Разыменование через точку. Обращение
Строка.Номенклатура.Родитель.Наименованиев цикле каждый раз читает объект целиком. - 📥 Получение объекта ради одного реквизита. Вызов
ПолучитьОбъект()читает всё, включая табличные части. Для чтения пары полей хватит запроса. - 📊 Виртуальные таблицы без параметров. Отбор по периоду и измерениям нужно передавать в параметры виртуальной таблицы, а не в условие
ГДЕ. - 🧮 Отчёт за весь период. Оборотно-сальдовая ведомость за пять лет с детализацией по документам будет медленной в любой базе.
Пример: вместо чтения цен построчно в цикле получите их одним запросом:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Цены.Номенклатура,
| Цены.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, Номенклатура В (&Список)) КАК Цены";
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Список", Объект.Товары.ВыгрузитьКолонку("Номенклатура"));
Выборка = Запрос.Выполнить().Выбрать();
Имена регистра и его полей зависят от конфигурации, смысл один: отбор передан в параметр среза, база читается один раз.
Доработки лучше выносить в расширения, а не снимать типовую конфигурацию с поддержки. Конфигурация на поддержке быстрее обновляется, а новые релизы часто сами исправляют медленные места.
Для сложных случаев отдайте результат замера производительности программисту: он покажет строки, на которые ушло больше всего времени, и их долю.
Когда файловый вариант исчерпан: переход на клиент-сервер
Есть пределы, которые никакая настройка не снимет. В файловом режиме запись блокирует таблицы целиком: пока один пользователь проводит закрытие месяца , остальные ждут.
Признаки, что пора переходить
- В базе одновременно работают 8–10 человек и больше, и очереди на запись стали нормой.
- Файл базы перевалил за 15–20 ГБ и продолжает расти.
- Тяжёлые операции (закрытие месяца, перепроведение) мешают всем остальным.
- База повреждается чаще одного-двух раз в год, несмотря на хорошую сеть и бесперебойник.
Что понадобится
| Компонент | Варианты | Ориентир по затратам |
|---|---|---|
| Лицензия сервера 1С | ПРОФ или КОРП, 64-разрядная | ориентировочно от 100 тыс. руб. за ПРОФ |
| СУБД | PostgreSQL (сборка для 1С, бесплатно) или MS SQL Server | PostgreSQL — без платы за лицензию |
| Сервер | отдельная машина или виртуальный сервер, SSD, от 16 ГБ ОЗУ | зависит от выбора: своё железо или аренда |
| Настройка | установка сервера 1С, СУБД, перенос базы через .dt | работа специалиста |
Перенос базы делается той же выгрузкой в .dt и загрузкой в новую серверную базу
. Клиентские лицензии остаются прежними.
Переход на клиент-сервер — крайняя мера по деньгам и сложности. Для офиса из 3–5 человек обычно дешевле терминальный сервер с базой на локальном SSD.
Промежуточный вариант
Если бюджета на сервер нет, а пользователей 4–7, разнесите нагрузку по времени. Закрытие месяца, перепроведение и тяжёлые отчёты запускайте, когда в базе никого нет. Обмены и загрузки ставьте на вечер.
Как сохранить скорость после оптимизации
Разовое ускорение быстро сходит на нет без регламента. Зафиксируйте простой график:
Сравнивайте размер базы и время типовых операций с записанными до оптимизации. Если цифры снова поползли вверх быстрее обычного — смотрите, какие данные растут: часто это журнал, история изменений или протоколы обменов.