Зависает файловая 1С:Бухгалтерия на несколько минут и грузит диск: что смотреть и как исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

Работа в файловом варианте базы данных 1С:Предприятие 8 накладывает определенные ограничения на производительность системы. Рано или поздно пользователи сталкиваются с тем, что программа начинает периодически зависать на несколько минут, диск нагружается под 90–100%, а работа буквально останавливается. При этом компьютер или ноутбук может обладать отличными характеристиками (например, процессор Intel Core i7 и 8–16 ГБ оперативной памяти), но это не спасает от «замираний» интерфейса.

В этой статье мы подробно разберем практический кейс, когда файловая база «1С:Бухгалтерия предприятия 3.0» регулярно зависает на 5–20 минут. Мы выясним неочевидные технические причины такого поведения, проанализируем влияние адресного классификатора ФИАС/ГАР, разберемся с особенностями разрастания нового журнала регистрации SQLite и оптимизируем регламентные задания.

---

Разбор причин: Почему зависает файловая 1С

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

  1. Огромные таблицы адресного классификатора ФИАС/ГАР. При локальной загрузке адресных сведений по всей РФ в файловой базе разрастаются таблицы иерархии адресов, содержащие миллионы записей. Файловый движок 1С не приспособлен для быстрого выполнения тяжелых запросов к таким таблицам.
  2. Раздутый журнал регистрации (файл 1Cv8.lgd). Начиная с версии платформы 8.3.5, по умолчанию используется формат журнала на базе SQLite. Файл лога может вырастать до гигабайтных размеров, фрагментироваться и блокировать работу с базой данных при записи любого события.
  3. Фоновые и регламентные задания. В файловом режиме регламентные задания выполняются либо в сеансе пользователя (блокируя его интерфейс), либо запускаются параллельным фоновым процессом, который полностью утилизирует дисковую подсистему.
  4. Антивирусная активность. Антивирусы блокируют файлы базы данных 1Cv8.1CD и журнала регистрации 1Cv8.lgd при каждой микротранзакции, что приводит к росту очереди к диску.

---

Шаг 1. Анализ проблемы с адресным классификатором (ФИАС/ГАР)

Рассмотрим ситуацию, когда при замере производительности в конфигураторе 1С во время очередного зависания мы видим, что более 90% процессорного времени занимает одна строка кода в общем модуле АдресныйКлассификаторСлужебный при вызове функции СведенияОЗагрузкеСубъектовРФ(). Программа зависает на строке:

РезультатВыборкиЗагруженныхСведений = Запрос.Выполнить();

Эта функция обращается к регистрам сведений АдминистративнаяИерархия и МуниципальнаяИерархия. Если в базу загружены классификаторы множества регионов (или всей РФ), объем этих таблиц превышает физические возможности файловой СУБД 1С для быстрой обработки информации. Запрос пытается просканировать миллионы записей без подходящих индексов, что приводит к зависанию программы на 10–20 минут.

Важное техническое замечание: В платформе 1С существовала зарегистрированная ошибка (№00-00701771), связанная с падением скорости работы с ФИАС. Для исправления ситуации у измерения РодительскийИдентификатор в регистрах иерархии требовалось установить свойство «Индексировать». Если у вас базовая версия 1С:Бухгалтерии (где конфигурация закрыта для редактирования), изменить свойства объекта вручную невозможно. В этом случае необходимо установить официальный патч (исправление) от фирмы 1С через меню «Администрирование» -> «Обслуживание» -> «Обновление программы» -> «Установленные исправления (патчи)».

Однако лучшим и самым надежным решением для файловой базы является полный отказ от локального хранения адресного классификатора ФИАС и переход на веб-сервис. Выполним следующие действия по шагам:

  1. Перейдем в раздел «Администрирование» — «Интернет-поддержка и сервисы» — «Адресный классификатор».
  2. Нажмем на ссылку «Очистить адресный классификатор». Программа предложит удалить неиспользуемые адресные сведения. Соглашаемся и дожидаемся окончания процесса. Очистка может занять длительное время, так как база будет физически удалять миллионы записей и сжимать таблицы.
  3. Переключим настройку в положение «Использовать веб-сервис 1С для проверки адресов» (для этого требуется активное подключение к интернет-поддержке с действующим договором ИТС / 1С:Контрагент).

Теперь программа не будет хранить гигабайты адресных данных локально и не будет выполнять тяжелые поисковые запросы внутри файла 1Cv8.1CD. Поиск адресов будет происходить мгновенно через веб-сервис фирмы 1С.

---

Шаг 2. Оптимизация и физическое сжатие журнала регистрации (SQLite)

Часто администраторы замечают странность: они пытаются «порезать» или сократить журнал регистрации через Конфигуратор («Администрирование» -> «Настройка журнала регистрации» -> «Сократить»), но физический размер файла 1Cv8.lgd на диске абсолютно не уменьшается.

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

Рассмотрим два варианта решения проблемы с разросшимся журналом регистрации.

Вариант А. Физическое сжатие файла SQLite с помощью утилиты vacuum

Для того чтобы сжать файл 1Cv8.lgd без потери накопленной истории, выполним следующие действия:

  1. Полностью завершим работу всех пользователей и служб с базой данных 1С.
  2. Откроем каталог базы данных и перейдем в папку 1Cv8Log. Убедимся, что в этой папке отсутствуют временные файлы транзакций с расширениями .lgd-wal и .lgd-shm (их отсутствие гарантирует, что база SQLite закрыта корректно).
  3. Скачаем официальную консольную утилиту sqlite3.exe с официального сайта СУБД SQLite.
  4. Поместим исполняемый файл утилиты в папку 1Cv8Log.
  5. Запустим командную строку Windows (cmd) от имени администратора, перейдем в папку логов и выполним следующую команду:

sqlite3.exe 1Cv8.lgd "vacuum;"

Утилита перестроит базу данных лога, удалит пустые страницы и физически сожмет файл на диске до его реального объема данных. В зависимости от исходного размера файла процедура может занять от нескольких минут до получаса.

Вариант Б. Перевод журнала регистрации в старый текстовый формат (.lgf)

Файловая СУБД SQLite на некоторых компьютерах работает крайне медленно из-за особенностей дисковых блокировок Windows. Для повышения стабильности и производительности файловой базы имеет смысл вернуть надежный текстовый формат журнала регистрации, который использовался в платформе 8.3.4 и более ранних версиях.

Выполним процедуру перехода на текстовый формат:

  1. Полностью закроем 1С:Предприятие.
  2. Перейдем в каталог файловой базы данных, откроем папку 1Cv8Log.
  3. Архивируем и переносим старый тяжелый файл 1Cv8.lgd в другую папку (если нам нужно сохранить историю событий). Из папки 1Cv8Log удаляем абсолютно все файлы.
  4. Создаем в папке 1Cv8Log обычный пустой текстовый файл и переименовываем его в 1Cv8.lgf (обратите внимание на расширение файла!).
  5. Запустим базу 1С в режиме «Предприятие».

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

---

Шаг 3. Настройка регламентных и фоновых заданий в файловой базе

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

В начале темы автор упомянул, что регламентное задание «Извлечение текста» выполнялось более 2 часов. Это критическая нагрузка. Данное задание отвечает за полнотекстовый поиск по содержимому прикрепленных файлов (договоры в формате Word, PDF-сканы актов и т.д.). В 99% случаев бухгалтеру эта функция не требуется.

Разберем, как отключить тяжелые и ненужные регламентные задания:

  1. Перейдем в раздел «Администрирование» — «Обслуживание» — «Регламентные операции» — «Регламентные и фоновые задания».
  2. Найдем в списке задание «Извлечение текста», откроем его свойства и снимем флажок «Включено».
  3. Аналогичным образом рекомендуется отключить следующие ресурсоемкие задания, если они не используются в вашей работе ежедневно:
    • Обновление индекса ППД (Полнотекстового поиска данных);
    • Слияние индекса ППД;
    • Классификация контактов по сегментам;
    • Автоматическое подавление молчания (если используется телефония);
    • Любые неиспользуемые рассылки отчетов и автоматические загрузки курсов валют (если их достаточно обновлять раз в день при запуске).
  4. Нажмите кнопку «Записать и закрыть».

Отключение полнотекстового поиска и извлечения текста разгрузит дисковую подсистему и предотвратит внезапные падения производительности во время работы пользователя.

---

Шаг 4. Системные настройки: Диск, Лимиты и Антивирус

Для файловой базы 1С крайне важны параметры работы операционной системы. Проанализируем системные аспекты оптимизации:

Настройка исключений антивируса

Файловая 1С постоянно совершает тысячи мелких операций записи в один большой файл 1Cv8.1CD. Встроенный антивирус Windows Defender (или стороннее защитное ПО) при каждой такой микротранзакции перехватывает доступ к файлу, сканируя его на лету. Это вызывает рост дисковой очереди и загрузку диска до 90–100%.

Обязательно добавьте в список исключений вашего антивируса:

Контроль ограничения размера таблиц файловой базы

В файловой версии формата 1Cv8.1CD существует жесткое технологическое ограничение: размер одной таблицы внутри общего файла базы данных не может превышать 4 ГБ. Если у вас включен локальный адресный классификатор, то таблицы ФИАС/ГАР могут приблизиться к критическому лимиту в 4 ГБ. При достижении этой границы база данных начнет выдавать ошибки СУБД, завершать сеансы аварийно или полностью разрушит структуру таблиц, что приведет к невозможности зайти в программу. Регулярно проводите очистку старых классификаторов и сжатие базы через утилиту chdbfl.exe и механизм ТИИ («Сжатие таблиц»).

---

Заключение

Мы детально проанализировали причины зависания файловой 1С:Бухгалтерии и разработали комплексный план оптимизации системы. Перевод адресного классификатора на использование веб-сервисов, очистка локальных тяжелых таблиц ФИАС, перевод журнала регистрации в текстовый формат .lgf (или сжатие базы SQLite) и отключение фонового извлечения текста гарантированно возвращают былую скорость работы файловой 1С даже на средних по характеристикам компьютерах.

← На главную