![]() |
|
Microsoft SQL Server Native Client 10.0: Не удалось продолжить просмотр с NOLOCK | ☑ | ||
---|---|---|---|---|
0
Повелитель
01.08.16
✎
08:32
|
В журнале справочника, или обращения запросом.
Вот такая ошибка вышла: Ошибка выполнения запроса по причине: Конфликт блокировок при выполнении транзакции: Microsoft SQL Server Native Client 10.0: Не удалось продолжить просмотр с NOLOCK вследствие перемещения данных. HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=3, Severity=C, native=601, line=1 Погуглил, пишут, что возможно поврежденны данные. Этим справочником можно пожертвовать, там вычисляемая информация для сайта. Вопрос как лучше очистить справочник? Вариант 1. Грохнуть в конфигураторе справочник (придется вечера ждать). Вариант 2. Очистить этот справочник напрямую в MS SQL (но такого не доводилось делать). |
|||
1
mehfk
01.08.16
✎
09:05
|
То есть вот так сразу ты готов убить данные?
|
|||
2
apokrit
01.08.16
✎
09:10
|
(0) Ошибка повторно воспроизводится?
Если нет - это относительно разовое явление. Поможет переход на 8.3 (достаточно даже 8.3.3) со снятием режима совместимости. Ну или просто читай данные в транзакции. |
|||
3
Повелитель
01.08.16
✎
09:49
|
(1) Да готов. Этот справочник, промежуточный, в нем рассчитываются данные для выгрузки на сайт, элементы легко заново создать.
(2) 1С:Предприятие 8.3 (8.3.5.1570), режим совместимости Версия 8.2.16 вряд ли можно снять, конфа большей частью типовая, не понятно как себя поведет. Думаю разовое. А причем тут транзакция? Но на всякий случай проверил. НачатьТранзакцию(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КаналДоставкиНоменклатуры.Ссылка, | КаналДоставкиНоменклатуры.Номенклатура, | КаналДоставкиНоменклатуры.Поставка |ИЗ | Справочник.КаналДоставкиНоменклатуры КАК КаналДоставкиНоменклатуры"; РезультатЗапроса = Запрос.Выполнить(); ТаблицаЗапроса = РезультатЗапроса.Выгрузить(); ТабличноеПоле1.ЗаполнитьЗначения(ТаблицаЗапроса); ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); ЗафиксироватьТранзакцию(); Не помогло, та же ошибка. |
|||
4
apokrit
01.08.16
✎
10:17
|
(0)
>А причем тут транзакция? Транзакция при том, что в этом случае меняется уровень изоляции. Без транзакции - READ UNCOMMITTED С транзакцией минимум - READ COMMITTED >Не помогло, та же ошибка. Это значит одно из двух: 1. "Все пациенты лгут" 2. Врет в данном случае MS SQL Server и никакого NOLOCK нет. Я в любом случае больше ничего посоветовать не могу. P.S. 1 конечно существенно более вероятно |
|||
5
Повелитель
02.08.16
✎
06:53
|
Решил проблему удалением справочника.
Понимаю, что грубо, но в данном случае это было оптимально, и заняло 5 минут. Другие варианты требуют больше времени и опыта. Всем спасибо, тема закрыта. |
|||
6
bodri
02.08.16
✎
07:09
|
перезапуск SQL сервера и ре индексация могли помочь
|
|||
7
Повелитель
02.08.16
✎
08:14
|
(6) перезапуск не довелось попробовать, а ре индексация падала с этой же ошибкой.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |