Имя: Пароль:
1C
1С v8
ут 11.5 Ошибка блокировок, разбор причины
0 letovd
 
16.05.23
17:09
Добрый вечер, подскажите по поводу текста ошибки - проведение осуществлялось из модуля формы, или из списка/обработки проведения? Непонятен характер ошибки конфликта блокировок.
Смущает "ВыполнитьПакет"

Ошибка при вызове метода контекста (Записать)
{ОбщийМодуль.ОбщегоНазначенияУТ.Модуль(5052)}:Результаты = Запрос.ВыполнитьПакет();
{ОбщийМодуль.ПроведениеДокументов.Модуль(1551)}:Результаты = ОбщегоНазначенияУТ.ВыполнитьПакетЗапросов(Запрос, ТекстыЗапроса);
{ОбщийМодуль.ПроведениеДокументов.Модуль(1541)}:Возврат ВыгрузитьРезультатыЗапросаПроведения(Запрос, ТекстыЗапроса);
{ОбщийМодуль.ПроведениеДокументов.Модуль(457)}:ДанныеДокументаДляПроведения = ИнициализироватьТаблицыДляДвижений(Запрос,
{Документ.ПоступлениеБезналичныхДенежныхСредств.МодульМенеджера(119)}:Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
{ОбщийМодуль.ПроведениеДокументов.Модуль(1842)}:ТаблицыДляДвижений = МенеджерДокумента.ДанныеДокументаДляПроведения(Документ.Ссылка,
{ОбщийМодуль.ПроведениеДокументов.Модуль(1481)}:ТаблицыДляДвижений = ТаблицыДляДвижений(Документ, МенеджерДокумента, ДвижимыеРегистры, ДопПараметры);
{ОбщийМодуль.ПроведениеДокументов.Модуль(217)}:ПровестиДокумент(Документ, Отказ, ДопПараметры);
{Документ.ПоступлениеБезналичныхДенежныхСредств.МодульОбъекта(418)}:ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1845)}:Результат = Форма.Записать(ПараметрыЗаписи);
{Документ.ПоступлениеБезналичныхДенежныхСредств.Форма.ФормаДокумента.Форма(1984)}:ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);

по причине:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
Ошибка при вызове метода контекста (ВыполнитьПакет)
по причине:
Ошибка выполнения запроса
по причине:
Конфликт блокировок при выполнении транзакции:
Не удалось заблокировать таблицу '_DOCUMENT415'
по причине:
Не удалось заблокировать таблицу '_DOCUMENT415'
1 d4rkmesa
 
16.05.23
17:11
(0) ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме как бы намекает. ВыполнитьПакет() - это стандартное получение пакета данных для движений документа.
2 Волшебник
 
16.05.23
17:12
Выясните, что за таблица _DOCUMENT415 и почему она заблокирована другой транзакцией.
3 letovd
 
16.05.23
17:19
(2) Таблицу найти не сложно. А как выяснить в файловой базе "какая транзакция заблокировала таблицу"?
4 Волшебник
 
16.05.23
17:20
(3) Как называется таблица в Конфигураторе?
5 letovd
 
16.05.23
19:07
(4) "Документ.АктВыполненныхРабот"
6 Гена
 
16.05.23
21:09
(1) [ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме как бы намекает]

Хотите сказать, что глючит предоплата этих работ? Запускает зачем-то своё время ожидания и идёт взаимоблокировка?
7 letovd
 
16.05.23
23:29
Что-то типа:
&НаКлиенте
Процедура Проверить(Команда)  
        
    Результат = ПолучитьОшибку(Объект.ВыбранныйОбъект);
    МассивСтрок = СтрРазделить(СтрПолучитьСтроку(Результат, 2), ",");
    Если МассивСтрок.Количество() > 1 Тогда
        //Пользователь = СтрРазделить(МассивСтрок[1], " ");
        //Пользователь[2] //Имя пользователя который заблокировал объект  
        Сообщить("подробности блокировки данных:"
                + Символы.ПС + МассивСтрок[1] + ", " + МассивСтрок[0]
                + Символы.ПС + МассивСтрок[2] + "," + МассивСтрок[3] + "," + МассивСтрок[4]);
    Иначе
        Сообщить("Блокировки не найдены");        
    КонецЕсли;
    

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

&НаСервере
Функция ЗаблокироватьДанные(Ссылка, ВерсияДанных, УникальныйИдентификатор) Экспорт
    
    Попытка ЗаблокироватьДанныеДляРедактирования(Ссылка, ВерсияДанных, УникальныйИдентификатор);
    Исключение Возврат ОписаниеОшибки();
    КонецПопытки;
    Возврат "";
    
КонецФункции  

&НаСервере
Функция ПолучитьОшибку(Ссылка)    
    
    ПолученныйОбъект = Ссылка.ПолучитьОбъект();
    Результат = ЗаблокироватьДанные(Ссылка, ПолученныйОбъект.ВерсияДанных,);
    Возврат Результат;
    
КонецФункции

Находит пользователя, который заблочил конкретный документ, выбранный на форме обработки

НО (2) Как-то в файловой можно увидеть блокировки по типу https://expert.chistov.pro/public/557477/ ?
Без выбора конкретного документа.