Блокировки в 1С: как найти виновника и перестать “стоять” в очереди документов
Привет! На связи ведущий программист 1С Иван Николенко из компании OSMINOG PROJECT.
Сегодня поговорим о блокировках внутри вашей 1С-ки: нажимаешь «Провести документ» — и всё. Виснет. «Ожидание снятия блокировки данных», «Конфликт блокировок», «Документ заблокирован пользователем». А очередь растёт. Кто виноват? И главное — что делать?
Разбираемся, как найти виновника паники и разморозить учёт.
Тишина в зале: почему вообще бывают блокировки
Представьте магазин «Лампочки» и двух покупателей — Петрова и Иванова. Иванов первый взял с полки лампу и пошёл на кассу. Продавец мысленно зарезервировал товар за Ивановым. Петрову — от ворот поворот: «Эту уже покупают, выбирай другую».
Блокировка в 1С — тот же принцип: если один пользователь изменяет документ, другим остаётся только ждать. Это объектная блокировка — «примерка» документа, видимая остальным и работающая по принципу «один вошёл — второй встал в очередь». А когда два человека одновременно пытаются изменить одни и те же данные, система сообщает: «Возникла взаимоблокировка» — и это уже код красный.
Не «тыкать», а искать: пошаговая инструкция для администратора
Вместо того чтобы бегать по офису с криком «Кто сейчас в 1С?», вот чёткие шаги, чтобы вычислить виновника.
Режим 1С: Консоль кластера
В консоли серверов (раздел «Соединения» ветка «Соединения») видно, кто кого блокирует и сколько времени. Включите в функционале Администратора системы «Блокировка регламентных заданий», если нужно временно приостановить фоновую обработку и дать возможность пользователю поработать.
Журнал регистрации как детектив
Откройте «Сервис» → «Монитор пользователей» → «Журнал регистрации» — здесь Excel с детализацией: кто заходил, с какого компьютера, с какими документами работал в момент сбоя. Выберите отбор событий «отобрать сразу», иначе будете ждать вечность.
Прямой SQL-запрос (для продвинутых)
В Microsoft SQL Server Management Studio выполните запрос для отслеживания блокировок. Здесь хорошо видно, какой именно процесс «висит» и держит базу. Только осторожно — это не про нажатие «Запустить», а про чтение служебных таблиц.
Реальный кейс: как я за час разобрал очередь на 150 документов
— Прилетает звонок от производственной компании. В кризис заказчик, торгующий товарами народного потребления, выпускает 40% объёмов. А в 1С бардак: час пик, сотрудники пытаются отгружать готовую продукцию, а система «встала». Очередь из непроведенных документов — более 150 штук! Люди сидят, заказы не уходят, касса стопорится.
— Выясняем — кто-то из кладовщиков по ошибке открыл «Реализацию товаров» и ушёл на перекур, а фоновое регламентное задание по обмену данными заблокировало таблицы. Да так, что остальные пользователи встали в очередь на ожидание.
— Первая мысль — убить сессию вручную. Но это крайность. Начали с диагностики: через консоль кластера за 2 минуты нашли заблокированную сессию, через Журнал регистрации определили — в какой момент и на каком компьютере это произошло. Удалили "зависший" процесс штатно. Разобрали очередь — 150 долгожданных документов провели за час.
Клиент был в шоке, когда увидел реального виновника — фоновое задание по синхронизации с сайтом. Оказалось, оно самопроизвольно встало в бесконечный цикл. Отключили его до вечера, дали людям поработать, а ночью уже детально переписали код.
Если бы в тот момент мы просто перезагрузили сервер — бизнес потерял бы день, а так — час простоя и десятки спасательных кругов для ключевых отгрузок. Главное научиться не гадать, а смотреть прямо в монитор и видеть, кто конкретно держит систему.
Что делать, если зависла ваша 1С
Золотое правило борьбы с блокировками — не паниковать, а спокойно разбираться:
1. Не перезагружайте сервер — потеряете данные и испортите индексы.
2. Откройте консоль кластера и Журнал регистрации — там почти всегда есть ответ.
3. Запомните: блокировка документа — это объект, который не устанавливается при простом открытии формы, а только при попытке изменения.
4. Вкладывайте в грамотную настройку и мониторинг — управляемые блокировки должны быть настроены так, чтобы они не перекрывали доступ ко всей системе. Для этого в свойствах конфигурации включают «Автоматический и управляемый» режим, а в коде добавляют объект «Блокировка Данных».
Автоматизация хороша, когда она работает незаметно. Если ваша 1С «стоит», а виновника найти не удаётся — пора звать профессионалов. И, пожалуйста, не перезагружайте сервер. Оставьте это нам, и то — на крайний случай)