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

1. triviumfan 81 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 81 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 81 27.01.22 14:21 Сейчас в теме
(6) последняя, управляемый режим, разумеется, ут11.4 как никак)
Никто не будет переписывать стандартный модуль обмена.
8. user1203706 12 27.01.22 14:42 Сейчас в теме
(7) mdop = 1 хоть в свойствах сервера ?
11. triviumfan 81 28.01.22 09:31 Сейчас в теме
9. user1203706 12 27.01.22 14:44 Сейчас в теме
(7) я б переписал, и эту ересь с регистрацией номенклатуры в перед записью , в первую очередь.

Оно поди, во всех доках такое - в реализации/поступлении/списании.. раз в приходном ордере даже запихали?
12. triviumfan 81 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 81 29.01.22 00:36 Сейчас в теме
Мне вообще интересно, кто-нибудь вообще использует битрикс как интернет-магазин?! какая-нибудь средняя контора с достаточно большим документооборотом? Он же вообще неюзабелен.
Оставьте свое сообщение
Вакансии
Ведущий разработчик 1С
Москва
зарплата от 200 000 руб.
Полный день

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

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

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

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