← База знаний

1С висит при проведении документов: как перестать терять время продажников

Один из самых раздражающих бизнес-процессов — это долгое ожидание. Менеджер нажимает «Провести и закрыть» на документе реализации, и 1С замирает на 3-5 минут, блокируя всю остальную работу терминала. Очередь на складе растет, клиенты злятся на телефоне. Разбираем, почему возникает эта проблема и как ее отключить.

Нужна помощь специалиста 1С?

Выполню настройку, обновление и доработку 1С любой сложности. Первый месяц обслуживания — со скидкой или аудит в подарок.

Узнать стоимость →

Тяжелый алгоритм контроля отрицательных остатков

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

Почему это замедляет систему:

Если таблица остатков не оптимизирована (или не пересчитаны итоги за прошлые месяцы), система вместо быстрого ответа перебирает огромное "полотно" данных. Решение: настроить регламентное "управление итогами" раз в месяц и рассмотреть варианты оперативного/неоперативного проведения.

Взаимоблокировки (Deadlocks)

Если в базе одновременно работает много пользователей, они могут начать "мешать" друг другу обновлять одни и те же таблицы в SQL-базе.

  • Обычная транзакционная блокировка (Lock): Менеджер А списывает партию гвоздей. Пока он проводит документ, платформа блокирует эту партию для всех остальных. Менеджер Б, списывающий те же гвозди, повисает в ожидании своей очереди. Чем дольше процедура, тем длиннее очередь ожидания.
  • Взаимоблокировка (Мертвая петля): Транзакция А ждет, пока завершится транзакция Б, а транзакция Б ждет, пока завершится транзакция А. 1С "висит" намертво, а через несколько минут выдает ошибку.

Затратные обработчики: триггеры и "самописки"

По опыту 90% чужих конфигураций, с которыми мы сталкиваемся на аудите, имеют огромный объем дописанного старого кода.

Очень часто предыдущие программисты вставляют "тяжелые" проверки прямо в обработчик события ОбработкаПроведения(). Например: отправить email клиенту, синхронизировать статус с сайтом, пересчитать ретробонусы. Это огромная архитектурная ошибка!

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

Как найти узкое место: Алгоритм Технологического Журнала

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

Мы настраиваем файл logcfg.xml так, чтобы он ловил только "тяжелые" запросы дольше 3 секунд, блокировки (TDEADLOCK и TLOCK) и ошибки. Анализ этих логов за 1 рабочий день с вероятностью 99% назовет вам точную строчку кода или процесс, из-за которого менеджеры пьют кофе.