#0
by f87
Блокируются все данные совпадающие по измерениям, без учета ПЕРИОДА. А хочу заблокировать только первые 5 записей регистра. Вот код... Спасибо
#5
by f87
- не совсем понял вопрос, думаю 1С Режим управления блокировкой (конф) - Управляемая Режим управления блокировкой (Регистр) - Управляемая Транзакция так же - Управляемая Повторюсь, блокируются все записи совподающие по измерениям. Интересное наблюдение при отладке...
#8
by Maxus43
а если не источник юзать? ЭлементБлокировкиДанных (DataLockItem) УстановитьЗначение (SetValue) Для пространства РегистрСведений.<имя> - Период (если есть), <имя измерения>;
#9
by Vetal_978
как-то давно тоже пытался блокировку по периоду сделать - не получилось, но у меня вываливалась какая-то ошибка. Семен Семеныч...
#11
by Maxus43
я хочу сказать что попробуй использовать не "ИспользоватьИзИсточникаДанных" а устанавливай явно методом УстановитьЗначение
#13
by f87
Только вот не понятно <БлокируемоеЗначение> - Тип Произвольный либо Диапазон Так вот пять записей содержит разные измерения. Значет блокировать по одной записи?
#14
by Maxus43
имхо по периоду как раз заблокировать, все измерения... конкретно произвольные наборы записей блокирнуть хз
#15
by f87
Но блокируется ВСЯ таблица. Что за хрень не знаю. На период вообще не реагирует. И ни каких ошибок!
#20
by Sonny
Хорошо бы так же понять: каким образом автор узнал, что блокируются все записи по измерениям без учета периода?
#22
by Sonny
Кхм... Вообще-то это тебе нужно, а не мне. У меня всё работает нормально. Но если влом ответить, тогда в сад, помогать тебе желания уже нет.
#23
by МихаилМ
если первые 5 будут все на разных страницах то блокировка может быть не страничная, а на всю таблицу. это нормально, если период не первое поле в кластерном индексе.
#25
by Рыжий Лис
Блокировки и в управляемом режиме могут быть как 1С, так и SQL. Если во время открытой транзакции прочитать из базы данных, запрос сформированный платформой будет без hint'а NOLOCK и прочитанные данные будут заблокированы SQL. Например если приведенный кусок кода вызывается из обработки проведения документа и поле Инкремент не индексировано и не первое в таблице или количество записей регистра невелико, план запроса будет использовать index scan или table scan. В результате все записи прошедшие через scan будут заблокированы SQL.
#27
by Рыжий Лис
До конца транзакции. Либо явной ЗавершитьТранзакцию, либо завершения проведения документа.
#30
by VVi3ard
ТС приведи полностью сообщение о блокировке так же в консоли SQL можно посмотреть тип блокировки это тоже не помешало бы.
#31
by VVi3ard
В мат части(ИТС) в статье Анализ и устранение взаимоблокировок описан случай который описал 25
#33
by f87
Когда данные заблокированны (остановка при отладке), то из другово клинента пытаюсь открыть запись вылетает: Где посмотреть тип блокировки - не нашел. Вроде пишет везде разделяемая, а я в коде указал исключительную.
#34
by 5 Элемент
где у тебя стоит точка останова? В твоем коде точно стоят комментарии на коде который изменяет записи?
#36
by 5 Элемент
В общем есть предположение что у автора изменяются записи. В этом случае SQL ставит блокировку. На что он поставит только ему известно: за прочтенные записи или на всю таблицу. Точка останова стоит после изменения записей. В этом случае будет срабатывать блокировка SQL, т.к. нельзя читать записи заблокированные при изменении.
#37
by Господин ПЖ
>Если во время открытой транзакции прочитать из базы данных, запрос сформированный платформой будет без hint'а NOLOCK и прочитанные данные будут заблокированы SQL почему бы... там readcommited в управляемом... и опять же читать он их будет в shared без "ДЛЯ ИЗМЕНЕНИЯ", нах ему их блокировать?
#38
by f87
Данные точно не меняются (за комментировал) Остановка в конце процедуры "Возврат Истина;" "предположение что у автора изменяются записи." я же код выложил, записи просто блокируются в транзакции, затем разблокируются Спасибо за ваши мысли, много интересного. Вот мои наблюдения. Записи блокирутся моим кодом адекватно, все по измерениям. Укажу одно или же три измерения, меняю значения - блокировка ставится корректно. Бонально 1С не ставит блокировку по периоду. Может глюк какой-то? 8.2 (8.2.14.533) Есть мысль зделать рег. не периодическим, и добавить ИЗМЕРЕНИЕ Период. Буду пробовать
#39
by f87
Ну в общем то все. Убрал периодичность, создал измерение "Период1". Результат: блокируются строго пять записей из запроса, даже при наличии совпадений по другим измерениям. Вывод: 1С не ставит блокировку по стандартному реквизиту "Период"! Есть мысли?
#40
by jump if zero
>>блокируются строго пять записей из запроса, даже при наличии совпадений по другим измерениям если период то же одинаковый - то такого быть не может, блокировка накладывается по совокупности измерений включая период , а не на результат запроса в 5 строчек и по периоду тоже работает. и запрос у тебя выполняется вне управляемой транзакции , а значит может читать еще не закоммиченные данные и при таком условии запросто возможно пересечение по измерениям сдругой транзакцией
#41
by f87
Период естественно различный, интервал в секкунду/две Запрос не блокирует данные, а лишь выбирает пять записей (вне транзакции, т.н. "Грязное чтение") которые я в дальнейшем ПОПРОБУЮ заблокировать. И если будет пересечение с другой транзакцией то "Блокировка.Заблокировать;" выдаст исключение.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Непонятки при получениии сведений из регистра сведений
- Есть ключ записи регистра сведений. Как получить имя этого регистра?
- 8.2 Управляемая блокировка по субконто
- Управляемая форма - как "подписаться" на активацию поля?
- 8.2 Управляемая форма, ТЧ.ОтборСтрок
- Управляемая форма на сервере
- Управляемая блокировка регистра накопления
- Отбор регистра на форме списка регистра сведений
- Как получить последнее значение из периодич регистра сведений по измерению?
- Управляемая блокировка на регистр бухгалтерии
- Нужна ли блокировка для менеджера записи регистра сведений?
В этой группе 1С
- Корректировочный счет фатура выданный (УПП 1.3.17.1)
- Временная таблица уже существует. Где ошибка?!
- v7: ЗиК 313: Больничный задним числом
- Нестандартное расположение итогов в СКД
- БП 2.0 Пособие до 1.5 лет попадает в КУДиР
- не запускается рарус
- упп больше одного заказа покупателя в 1 реализацию.
- Автоматическое заполнение поступления услуг в УПП
- Контролировать пересечение периодов начислений, регистрирующих норму времени!
- Проконсультируйте по корректировке себестоимости в Бухгалтерии
- ЭлементыФормы.ТабличноеПоле2.Свертка, а как обратно развернуть?
- Не открывается журнал банковских Выписок
- v8: КА 8.2: Ключи запуска при Автообмене для загрузки обновления конфигурации
- Период действия ресурса в периодическом регистре сведений
- Что такое агрегаты в регистре накопления?
- 1С8 ЗавершитьРаботуПользователей для создания Backup
- Пропал документ реализация как такое может быть?
- Проблемы с DBENG8.dll
- Характеристики номенклатуры в 1с 8.2 УТ 11
- v7: Как в 1с 7.7 отключить компоненту "Оперативный учет"