|
Оптимистическая блокировка | ☑ | ||
---|---|---|---|---|
0
Широкий
30.03.12
✎
15:14
|
Пытаюсь избавиться от ошибки "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы бла-бла".
Устраивает вариант: кто последний - тот и папа. Можно ли сие отключить? |
|||
1
Greeen
30.03.12
✎
15:21
|
У меня в конфе было
Док.ОбменДанными.Загрузка = Истина Док.Записать(блаблабла) - тут облом был при проведении документа, и соотв. документ нельзя было сохранить без закрытия Док.ОбменДанными.Загрузка = Ложь Как почетный быдлокодер, закоментил нафиг ОбменДанными.Загрузка, больше не жалуются |
|||
2
Stepa86
30.03.12
✎
15:32
|
Наверно все же лучше разобраться, кто меняет запись в базе, пока идет работа с объектом
|
|||
3
Широкий
30.03.12
✎
15:40
|
(1) ОбменДанными на это не влияет
(2) Обработка меняет |
|||
4
Stepa86
30.03.12
✎
15:44
|
(3) Пользователь открыл форму, чо то там меняет, в это время обработка в другом сеансе меняет данные этого объекта и при попытке записать пользователю падает ошибка. Так?
|
|||
5
Широкий
30.03.12
✎
15:45
|
(4) Так
|
|||
6
Stepa86
30.03.12
✎
15:49
|
есть подозрение, что нужно юзать ЗаблокироватьДанныеДляРедактирования( в форме
|
|||
7
Широкий
30.03.12
✎
15:50
|
(6) Не прокатит.. 8.1
|
|||
8
Stepa86
30.03.12
✎
15:58
|
Чот в голову приходит тока изврат вида:
попробовать записать объект, если выпадает ошибка несоответствия, то сбросить данные куда нить, прочитать объект, заполнить взад данными и записать... |
|||
9
Широкий
30.03.12
✎
16:16
|
(8) Это тоже приходило в голову
|
|||
10
Murzz
30.03.12
✎
16:20
|
(7) ну тогда метод "Заблокировать" объекта документа
|
|||
11
Широкий
30.03.12
✎
16:39
|
(10) Он блокирует вроде в рамках сеанса одного юзера
|
|||
12
Stepa86
30.03.12
✎
16:43
|
(11) он полностью блокирует, то есть в другом сеансе при попытке заблокировать будет вызвано исключение, но схему "кто последний тот и папа" так не реализовать
|
|||
13
Широкий
05.04.12
✎
10:54
|
Придумал вот что :)).
Может кому пригодится Процедура ПередЗаписью(Отказ) Если ЭтоНовый() Тогда Возврат; КонецЕсли; СтруктураШапки=Новый Структура; Для Каждого РеквизитМ Из Метаданные().Реквизиты Цикл ИмяРеквизита=РеквизитМ.Имя; Если ИмяРеквизита="Код" Тогда Продолжить; КонецЕсли; СтруктураШапки.Вставить(ИмяРеквизита,ЭтотОбъект[ИмяРеквизита]); КонецЦикла; СтруктураТаблицы=Образы.Выгрузить(); Прочитать(); ЗаполнитьЗначенияСвойств(ЭтотОбъект,СтруктураШапки); Образы.Загрузить(СтруктураТаблицы); КонецПроцедуры |
|||
14
Дикообразко
05.04.12
✎
10:56
|
и в итоге ты потеряешь предыдущие изменения
|
|||
15
Широкий
05.04.12
✎
10:59
|
(14)
в (0) "Устраивает вариант: кто последний - тот и папа. " |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |