Как ускорить восстановление последовательности и закрытие месяца в 1С:Бухгалтерия предприятия 2.0

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет
← На главную

При работе в конфигурации «1С:Бухгалтерия предприятия 2.0» пользователи часто сталкиваются с проблемой длительного восстановления последовательности документов. Ситуация, когда 6500 реализаций за месяц обрабатываются более 7 часов, является критической для бизнеса. В данной статье мы проанализируем причины низкой производительности и разберем комплекс мер по ускорению работы системы: от простых настроек интерфейса до глубокой технической оптимизации файловой базы и серверной инфраструктуры.

Анализ узких мест производительности

Для начала разберем ситуацию, описанную пользователем. Имеется файловая база, работающая на процессоре Intel Xeon E5-2643 с частотой 3.3 GHz и 4 ГБ оперативной памяти. На первый взгляд, процессор обладает хорошей частотой, что важно для 1С, но 4 ГБ памяти и файловый режим работы накладывают серьезные ограничения. В файловом варианте при записи любого документа происходит блокировка всей таблицы, что делает невозможным параллельную обработку данных. Рассмотрим, как можно оптимизировать этот процесс.

Метод 1: Программный сдвиг границы последовательности

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

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

Метод 2: Техническая оптимизация файловой базы

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

  1. Настройка исключений антивируса. Файловая база 1С — это постоянные микро-операции чтения и записи. Антивирус, проверяющий файл базы при каждом обращении, может замедлить процесс на 30%. Необходимо добавить в исключения расширения: *.1CD, *.1CL, *.log, *.pfl, а также каталог временных файлов пользователя %temp%.
  2. Отключение полнотекстового поиска. Механизм полнотекстового поиска (ПП) постоянно обновляет индексы при записи документов. Для ускорения массовых операций его рекомендуется отключить через меню Сервис — Управление полнотекстовым поиском.
  3. Очистка кэша и временных файлов. Накопленные ошибки в кэше могут вызывать деградацию производительности. Регулярно удаляйте папки из каталогов %AppData%\1C\1Cv82.

Метод 3: Управление итогами регистров

Одной из самых ресурсоемких операций при проведении документа является пересчет итогов в регистрах накопления и бухгалтерии. Выясним причину замедления: при записи каждого из 6500 документов система обновляет таблицы итогов. Мы можем ускорить этот процесс, если временно отключим использование итогов перед началом восстановления последовательности.

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


// Отключение итогов для ускорения записи
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(Ложь);
РегистрыНакопления.Продажи.УстановитьИспользованиеИтогов(Ложь);

// Выполнение перепроведения документов
// ... код обработки документов ...

// Включение итогов и их пересчет один раз в конце
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(Истина);
РегистрыБухгалтерии.Хозрасчетный.ПересчитатьИтоги();

Этот метод позволяет сократить время восстановления последовательности в несколько раз, так как итоговые таблицы будут сформированы единоразово в конце процедуры, а не 6500 раз подряд.

Метод 4: Работа с дисковой подсистемой и RAM-диском

Файловая версия 1С крайне чувствительна к скорости случайного доступа (IOPS). Если база занимает несколько гигабайт, она может целиком поместиться в оперативную память. Рассмотрим вариант использования RAM-диска. Это виртуальный диск в оперативной памяти, скорость работы с которым в десятки раз выше, чем с любым SSD. Поскольку у сервера в примере всего 4 ГБ памяти, этот вариант потребует апгрейда ОЗУ хотя бы до 16-32 ГБ. Если такой возможности нет, перенос базы на современный NVMe SSD станет наиболее эффективным вложением средств.

Метод 5: Использование параметров запуска

Для снижения нагрузки на память и ускорения инициализации сессии 1С можно использовать дополнительные ключи запуска. Например, параметр -NoPreloadConfig позволяет системе не загружать конфигурацию в память целиком при старте, что может быть полезно в условиях ограниченных ресурсов сервера (те самые 4 ГБ памяти).

Метод 6: Переход на архитектуру «Клиент-Сервер»

Проанализируем перспективу: объем в 6500 реализаций в месяц — это серьезный показатель для файлового режима. Файловая СУБД 1С имеет ограничение на размер внутренней таблицы в 4 ГБ. При достижении этого лимита база может просто перестать работать. Самым правильным архитектурным решением будет переход на PostgreSQL.

Использование бесплатной СУБД PostgreSQL совместно с сервером 1С позволит:

Резюме

Если восстановление последовательности длится 7 часов, мы рекомендуем следующий план действий: сначала проверьте возможность простого переноса границы последовательности без перепроведения. Если это недопустимо по правилам учета, проведите технический аудит: настройте исключения антивируса, перенесите базу на SSD и выполните Тестирование и исправление с пунктом Сжатие таблиц. В долгосрочной перспективе для такого объема данных единственным надежным решением будет переход на клиент-серверный вариант работы.

← На главную