1C и ошибка SQL deadlock - что можно поправить в коде 1С #269441


#0 by VanDiesel
В общем пришли путем наблюдений к выводу что 90% ошибок SQL связанных с взаимными блокировками связаны с тем что один вылетающий просто двигается в форме списка справочника номенклатуры а второй проводит документ со нижепреведенным кодом. Причем проводит документ один чел а по справочнику лазиют человек 10 и вылетают сразу человека 3. В справочнике номенклатуры вроде как все нормально никаких обработок быть не может - простые расчеты остатков и т.п. включая получение и вывод последней цены. Пока все камни в сторону модуля документа. Что тут может быть неоптимально с точки зрения 1С либо есть какие-нибудь другие способы добавления в спр. Цены элементов.    ВыбратьСтроки;
#1 by ТелепатБот
#2 by VanDiesel
Апну штоле...
#3 by Мулька
Кури мягкие блокировки или очередь транзакций.
#4 by Лефмихалыч
а зачем ИспользоватьДату?
#5 by Лефмихалыч
По сабжу - вот так, мне кажца, оптимальнее будет, но это мое субъективное мнение
#6 by Программист 484
Как вариант предалагаю записывать новые элементы при записи документа. естественно при проведении - так скорость будет явно больше
#7 by Лефмихалыч
зато тогда вводить эти документы можно будет ТОЛЬКО интерактивно
#8 by Лефмихалыч
+ кроме того, УстановитьРеквизитСправочника сущестует только в модуле документа
#9 by masky
что такое граф дедлока конечно же не знаем. профайлером пользоваться не умеем. но хоть думать то научили??
#10 by Программист 484
Левыч - так модуль документа можно оставить без изменений - там как раз если не находит то создает. А потом может быть стоит проверить - изза чего вылетает - из за записи нового элемента (что мне кажется более вероятным) или из-за установитьреквизит...
#11 by VanDiesel
Если ты всё про тоже то скажу - ставили профайлер и выяснили что дедлоки возникают при попытке записи в таблицу в которой храняться периодические реквизиты. Вот поэтому сюда и был положен сей участок кода
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С