Конфликт блокировок при выполнении транзакции (1С:БУС)

1. triviumfan 83 27.01.22 10:42 Сейчас в теме
Доброго дня.

Есть вот такая шляпа:

src\basic\src\DocumentLogFormObjController.cpp(884):
afd2b550-0d52-4e03-b448-15ed68d87ac5
0d2200af-1696-4395-91e5-2872675e6d3d: Ошибка при выполнении обработчика - 'ОбработкаПроведения'
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка при вызове метода контекста (Записать)
{ОбщийМодуль.ПроведениеСерверУТ.Модуль(355)}: Объект.Движения.Записать();
{Документ.ПриходныйОрдерНаТовары.МодульОбъекта(101)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);
f08d92f8-9eb2-4e19-9dd9-977d907cec2d: Ошибка при выполнении обработчика - 'ПередЗаписью'
0d2200af-1696-4395-91e5-2872675e6d3d: Ошибка при выполнении обработчика - 'ПередЗаписью'
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка при вызове метода контекста (ЗарегистрироватьИзменения)
{ОбщийМодуль.Б_ОбменССайтомСервер.Модуль(566)}: ПланыОбмена.ЗарегистрироватьИзменения(МассивУзловТовары, Запись.Номенклатура);
{ОбщийМодуль.Б_ОбменССайтомСервер.Модуль(175)}: ЗарегистрироватьИзменения(Источник, Замещение);
{ОбщийМодуль.ПроведениеСерверУТ.Модуль(355)}: Объект.Движения.Записать();
{Документ.ПриходныйОрдерНаТовары.МодульОбъекта(101)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);
f08d92f8-9eb2-4e19-9dd9-977d907cec2d
dc31263e-ecbf-41bd-9b3a-7b55897d5fd6: Конфликт блокировок при выполнении транзакции:
Microsoft SQL Server Native Client 11.0: Lock request time out period exceeded.
HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=33, Severity=10, native=1222, line=1
Показать

Я много раз видел ошибки с блокировками с планами обмена, но они были связаны с тем, что использовался метод ВыбратьИзменения(). У меня же типовой модуль Битрикса 7 редакции и УТ11.4.
Там изменения получаются запросом! Далее складываются в пакеты, пакеты в файлы, файлы уже идут в Битрикс.
Я не пойму, в чем проблема то?

Хотя, вижу, что судя по ошибке, проблема связана с узлом "Товары"
ПланыОбмена.ЗарегистрироватьИзменения(МассивУзловТовары, Запись.Номенклатура).

А в товарах у нас всегда множество изменений, ведь регистрируется там почти вся номенклатура из-за того, что меняется количество, цена, сегмент ... все эти телодвижения регистрируют номенклатуру к выгрузке и получаем ~10к номенклатуры в узле Б (выгрузка изменений каждый час). Сейчас думаю, чтобы исправить это на уровне регистрации к выгрузке. Правильно ли я двигаюсь?
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user1203706 12 27.01.22 10:50 Сейчас в теме
(1)
Зачем при проведении документа регистрировать к обмену саму номенклатуру ?
Что за дикость ?...
3. triviumfan 83 27.01.22 10:54 Сейчас в теме
(2) Так написан типовой интеграционный модуль Б.
При выгрузке номенклатуры он берёт её, доп реквизиты, количество и цены.
Отдельной выгрузки цен и остатков нету.
При проведении разных типов доков, влияющих на это, идёт регистрация именно номенклатуры.
4. user1203706 12 27.01.22 10:56 Сейчас в теме
(3) Это полный ПЭ.
Кто писал это чудо ?
6. user1203706 12 27.01.22 13:19 Сейчас в теме
(5) какая версия платформы хоть ?
Тут только или переписывать это чудо..
Релиз платформы какой у вас ?
Какой режим блокировки установлен в свойствах конфы ?
7. triviumfan 83 27.01.22 14:21 Сейчас в теме
(6) последняя, управляемый режим, разумеется, ут11.4 как никак)
Никто не будет переписывать стандартный модуль обмена.
8. user1203706 12 27.01.22 14:42 Сейчас в теме
(7) mdop = 1 хоть в свойствах сервера ?
11. triviumfan 83 28.01.22 09:31 Сейчас в теме
9. user1203706 12 27.01.22 14:44 Сейчас в теме
(7) я б переписал, и эту ересь с регистрацией номенклатуры в перед записью , в первую очередь.

Оно поди, во всех доках такое - в реализации/поступлении/списании.. раз в приходном ордере даже запихали?
12. triviumfan 83 28.01.22 09:32 Сейчас в теме
(9)
Оно поди, во всех доках такое - в реализации/поступлении/списании.. раз в приходном ордере даже запихали?

Верно
10. user1203706 12 27.01.22 14:46 Сейчас в теме
2) Выгрузка на сайт только измененных позиций с момента последней выгрузки.


Ага, таким извращенным способом, они поди вот это реализовали в своей поделке.
13. user1203706 12 28.01.22 10:57 Сейчас в теме
(12) есть запрос выгрузки, где идёт обращение к табличке изменений Номенклатуры, что б понимать, чего помимо самой номенклатуры летит в обмен ?
Если там остатки/цены..то имеет смысл выкинуть регистрацию самой номенклатуры со всех доков, и тупо (если она так нужна), получать её с тех же доков за период потом запросом при обмене.
14. Free_Danial 50 28.01.22 19:04 Сейчас в теме
Можно попробовать найти что с чем заблокировалось в момент выгрузки:
На SQL пособирать события:
lock_timeout_greater_than_0
rpc_completed
sql_batch_completed
lock_escalation
lock_acquired

Для 1С ТЖ
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">

<log location="Ваш путь" history="8">

<event>
<eq property="name" value="DBMSSQL"/>
</event>
<event>
<eq property="name" value="SDBL"/>
</event>
<event>
<eq property="name" value="CALL"/>
</event>
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="EXCPCNTX"/>
</event>

<property name="all"/>

</log>

</config>

С событий SQL- ТЖ найдете код с которым блокируется, может тоже регламентное задание и сможете разнести по времени или подкорректировать код.
Для правок типового можно расширением обойтись и написать разрабам конфы о проблеме блокировок для исправления на постоянке.
15. user1203706 12 28.01.22 19:13 Сейчас в теме
(14) автор уже нашел это - запись регистрации всей номенклатуры ТЧ доков при проведении каждого документа с товаром.
16. triviumfan 83 29.01.22 00:36 Сейчас в теме
Мне вообще интересно, кто-нибудь вообще использует битрикс как интернет-магазин?! какая-нибудь средняя контора с достаточно большим документооборотом? Он же вообще неюзабелен.
Оставьте свое сообщение
Вакансии
Аналитик
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С:ERP WE
Москва
зарплата от 250 000 руб.
Полный день

Аналитик 1С:ЗУП
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 220 000 руб. до 300 000 руб.
Полный день