РегистрНакопления.ОтгрузкаТоваров
Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции:
Microsoft SQL Server Native Client 10.0: Транзакция (идентификатор процесса 100) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно.
HRESULT=80004005, SQLSrvr: SQLSTATE=40001, state=38, Severity=D, native=1205, line=1
Ошибка при попытке проведения документа!

Здравствуйте!

Есть регистр ОтгрузкаТоваров и он прописан в Движении документа Отгрузка.
Нигде в конфигурации регистр.ОтгрузкаТоваров.Записать() - нет.

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

Как записывать в Журнал регистрации - взамоблокировки Движения документов?

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)

    // регистр ОтгрузкаТоваров Расход
    Движения.ОтгрузкаТоваров.Записывать = Истина;
    Движения.ОтгрузкаТоваров.Очистить();

    Для Каждого ТекСтрокаТовары Из Товары Цикл
    Движение = Движения.ОтгрузкаТоваров.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Склад = Склад;
    Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
    Движение.ХарактеристикаНоменклатуры = ТекСтрокаТовары.ХарактеристикаНоменклатуры;
    Движение.ШтрихкодОтгрузки = ШтрихкодОтгрузки;
    Движение.Контрагент = Контрагент;
    Движение.ДокументРеализации = ДокументРеализации;
    Движение.Количество = ТекСтрокаТовары.Количество;
    Движение.Стоимость = ТекСтрокаТовары.Стоимость;
    КонецЦикла;

    КонецПроцедуры

    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    // Вставить содержимое обработчика.
    Если ОбменДанными.Загрузка Тогда
    Возврат;
    КонецЕсли;
    КонецПроцедуры
```
---
Для этого есть другие средства: технологический журнал.
---
Может в модуль регистра куда-то можно вставить подобную конструкцию?

```1c
    НачатьТранзакцию();
    Попытка

    // Движения..?

    ЗафиксироватьТранзакцию();
    Исключение
    ОтменитьТранзакцию();
    // Запись события в журнал регистрации для системного администратора.
    ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"),
    УровеньЖурналаРегистрации.Ошибка,,Строка(СсылкаДляПередачиВЖурналРегистрации(Ссылка)),
    ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));

    Отказ = Истина;
    #Если Клиент или ВнешнееСоединение Тогда
    Сообщить("Не выполнена запись об изменении документа");
    #КонецЕсли
    КонецПопытки;
```
---
Вы бы лучше разобрались в причине появления взаимоблокировок
---
А как разобраться, если не видно когда она происходит?
В журнале то записи нет.
---
Для этого есть другие средства: технологический журнал.
---
Решил, добавить запись регистра явным образом.
В транзакции.

Движения.ОтгрузкаТоваров.Записать();

На тесте, все работает.
---
Ошибка локализована.
Запускаем два клиента, на одном делаем массовое распроведение РТиУ через групповую обработку.
На втором, так же проводим ЧекиККМ.

{Обработка.ГрупповаяОбработкаСправочниковИДокументов.Форма.Форма.Форма(1701)}: Ошибка при вызове метода контекста (Записать)
        Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft SQL Server Native Client 10.0: Транзакция (идентификатор процесса 115) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно.
HRESULT=80004005, SQLSrvr: SQLSTATE=40001, state=38, Severity=D, native=1205, line=1

Вроде бы все удачно, но не указывается причина блокировки, ожидаемо регистр по товарам.
Непонятно, что взаимоблокируется.

Как быть?
---
https://infostart.ru/1c/tools/557477/
---
Эта обработка только под управляемые формы..