Ситуация, когда при первом запуске информационной базы в начале месяца программа показывает курсор ожидания («песочные часы») и блокирует интерфейс на несколько часов, достаточно распространена в крупных конфигурациях, таких как «Управление производственным предприятием» (УПП). При этом в диспетчере задач процесс 1cv8.exe активно потребляет процессорные ресурсы и выполняет дисковые операции ввода-вывода. Проанализируем основные технические причины такого поведения и разберем по шагам, как локализовать и устранить проблему.
Прежде чем менять настройки базы, выясним, какая именно операция выполняется системой в момент зависания. Платформа 1С фиксирует запуск всех системных и прикладных процедур в журнале регистрации.
Одной из главных причин длительных блокировок является автоматический запуск ресурсоемких фоновых задач. В файловом режиме работы все запланированные фоновые процессы запускаются непосредственно в сеансе первого подключившегося пользователя, полностью парализуя работу интерфейса. В клиент-серверном варианте они могут вызывать взаимоблокировки таблиц базы данных.
Для управления расписанием заданий воспользуемся специальным инструментом — обработкой КонсольЗаданий.epf:
В платформе 1С:Предприятие итоги по регистрам накопления и регистрам бухгалтерии рассчитываются с периодичностью в один календарный месяц. При наступлении нового месяца и первой попытке сформировать отчет по остаткам или провести документ система инициирует процедуру сдвига границы рассчитанных итогов на новый период.
На базах с большим объемом движений такой пересчет «на лету» в пользовательском сеансе может длиться несколько часов. Чтобы предотвратить внезапные зависания, настроим пересчет итогов на опережение:
УстановитьПериодРассчитанныхИтогов() по расписанию в нерабочее время.Пример программной установки границы итогов для регистра накопления:
Граница = КонецМесяца(ТекущаяДата());
РегистрыНакопления.ТоварыНаСкладах.УстановитьПериодРассчитанныхИтогов(Граница);
Регламентная операция слияния основного и дополнительного индексов полнотекстового поиска потребляет значительный объем ресурсов дисковой подсистемы. Если полнотекстовый поиск не используется в ежедневной работе сотрудников, его рекомендуется отключить:
Если в журнале регистрации отсутствуют явные записи фоновых заданий, зависание может происходить в модуле приложения (например, в процедурах ПриНачалеРаботыСистемы или ПередНачаломРаботыСистемы) из-за циклических проверок, сверки курсов валют или чтения больших объемов данных.
Разберем, как зафиксировать проблемный участок кода с помощью отладчика: