Перепроведение документов — это ресурсоемкая операция, которая в условиях файловой базы данных и многопользовательской работы может превратиться в серьезное испытание для инфраструктуры. Давайте разберем по шагам, как проанализировать причины замедления и что можно предпринять для оптимизации.
Прежде чем принимать кардинальные меры, необходимо понять, на каком этапе «буксует» система. Для этого мы воспользуемся встроенным инструментом — Замер производительности.
Модуль.ДокументооборотСКонтролирующимиОрганами), регламентные задания или специфические подписки на события.Важно помнить, что файловый вариант (файл 1Cv8.1CD) не предназначен для интенсивной многопользовательской работы. В этом режиме 1С использует файловые блокировки. Когда несколько пользователей работают по RDP, а база лежит на сетевом ресурсе или даже на SSD, конкуренция за запись в файл становится «узким горлышком».
Что нужно проверить:
1cv8.exe. Работа через сетевые шары (SMB/CIFS) категорически не рекомендуется..1CD и каталог с базой в список исключений.Если после замеров мы видим, что основные тормоза происходят из-за структуры данных или конкурентных блокировок, рассмотрим следующие методы оптимизации:
1. Отключение лишних проверок
Попробуйте временно отключить ПолнотекстовыйПоиск и убедиться, что ЖурналРегистрации не перегружен. Огромный журнал регистрации при каждой транзакции требует записи на диск, что создает дополнительную нагрузку.
2. Переход на автономный сервер
Если покупка полноценного SQL-сервера невозможна, рассмотрите использование 1С:Автономного сервера. Это компонент платформы 1С, который позволяет вынести логику работы с данными из процесса пользователя в отдельную службу. Это поможет эффективнее управлять блокировками без перехода на полноценный серверный вариант.
3. Использование клиент-серверного варианта
Для конфигурации Бухгалтерия предприятия КОРП файловый режим — это вынужденное ограничение. Если бизнес-процессы включают сложные расчеты (например, по обособленным подразделениям), переход на MS SQL Server или PostgreSQL станет единственным способом кратно увеличить производительность. SQL-сервер оптимизирует транзакции на уровне СУБД, снимая нагрузку с платформы.
Если замер показал, что критическая задержка происходит в процедурах записи, проверьте наличие подписок на события. Иногда типовой код может выглядеть примерно так:
Процедура ПриЗаписиДокумента(Источник, Отказ)
// Проверка регламентных задач или отправка данных
Если Константы.ИспользоватьЭДО.Получить() Тогда
ВыполнитьОтправкуВКонтролирующийОрган(Источник);
КонецЕсли;
КонецПроцедуры
Подобные вызовы при перепроведении сотен документов суммируются. Рассмотрите возможность переноса таких действий в РегламентныеЗадания, которые будут выполняться не в момент проведения документа, а по расписанию в фоновом режиме.
Для решения проблемы рекомендуем действовать по следующему алгоритму:
Клиент-Сервер. Это снимет вопрос с блокировками раз и навсегда.Работа с КОРП-функционалом требует соответствующей архитектуры. Если инфраструктура не справляется, лучше потратить время на перенос базы на SQL, чем пытаться оптимизировать каждый запрос в файловом режиме.