Медленная загрузка и проведение банковских выписок — это распространенная проблема, с которой сталкиваются пользователи «1С:Бухгалтерия 3.0» при росте объема документооборота. Когда процесс, который раньше занимал секунды, растягивается на минуты, это парализует работу бухгалтерии. В данной статье мы разберем методический подход к поиску причин «тормозов» и определим последовательность действий для исправления ситуации.
Прежде чем приступать к лечению, необходимо поставить диагноз. Как справедливо отмечено в обсуждении, без замера производительности любые советы будут «тыканьем пальцем в небо». Рассмотрим, как правильно выполнить эту процедуру.
Для начала запустим сеанс 1С в режиме «Конфигуратор», перейдем в меню «Отладка» и выберем пункт «Замер производительности». После этого в пользовательском режиме (1С:Предприятие) выполним проведение проблемного документа или запустим процесс загрузки из клиент-банка. По завершении операции вернемся в Конфигуратор и остановим замер.
Проанализируем полученную таблицу. Нас интересуют колонки Число вызовов, Общее время и Собственное время. Обратим особое внимание на следующие процедуры и функции:
ПередЗаписью и ПриЗаписи — здесь часто «сидят» расширения и подписки на события.ОбработкаПроведения — основная логика формирования движений по регистрам.Если замер производительности показывает, что время равномерно распределено по всем строкам кода, или если система «замирает» на простых операциях записи, проверим внешние факторы. Рассмотрим наиболее вероятные причины:
.1CD, .1CL). Добавим папки с базой данных, каталоги кэша пользователя и исполняемые файлы 1С в исключения антивируса.Max Degree of Parallelism (MAXDOP). Если он настроен неверно, SQL может тратить лишние ресурсы на распараллеливание простых запросов, что вызывает блокировки при записи пакетов данных из клиент-банка.Проанализируем состояние итогов и индексов. В процессе работы 1С постоянно обращается к итогам для контроля остатков. Если итоги не актуальны или индексы сильно фрагментированы, выборка данных замедляется в разы.
Разберем последовательность действий в режиме «Тестирование и исправление» (ТиИ): при наличии нескольких баз регулярный запуск таких проверок можно автоматизировать через программу для тихой архивации, обновления и тестирования баз 1С.
Обновление статистик (Update Statistics) средствами SQL-сервера.Программа 1С:Бухгалтерия содержит множество механизмов, которые работают «под капотом» во время загрузки выписок. Проверим, не перегружена ли система лишними проверками:
Автоматическое создание контрагентов. При загрузке выписок система ищет контрагентов по ИНН/КПП. Если включен сервис 1С:Контрагент, программа может пытаться обращаться к веб-сервисам для проверки актуальности реквизитов каждого нового или измененного контрагента, что создает сетевые задержки.
Ограничение доступа (RLS). Рассмотрим ситуацию, когда в базе настроены сложные права доступа (например, бухгалтер видит только «свою» организацию). В этом случае при проведении документа система добавляет к каждому запросу огромные куски кода для проверки прав доступа. Если возможно, попробуем провести загрузку под пользователем с полными правами без RLS — это часто дает прирост скорости в 2-3 раза.
Регламентные задания. Посмотрим, не пересекается ли время загрузки выписок с тяжелыми фоновыми процессами. Например, Полнотекстовый поиск или Обновление агрегатов могут значительно нагружать дисковую подсистему именно в тот момент, когда вы пытаетесь провести сотню платежек.
Если в системе установлены расширения (для печатных форм, дополнительных проверок или интеграций), они могут влиять на проведение. Даже если расширение не относится к банку, оно может содержать обработчики событий, срабатывающие для любого типа документа.
Проанализируем ситуацию на копии базы: отключим все расширения и попробуем провести документы. Если скорость восстановилась — ищем проблемный код в расширении. Обычно это неоптимальные запросы в циклах внутри процедур ПередЗаписью.
Подводя итог, составим алгоритм действий для ускорения проведения выписок:
Следование этой методике позволит вам системно подойти к решению задачи и избежать бессистемного изменения настроек, которое может привести к новым ошибкам.