|
Как правильно сделать нумерацию | ☑ | ||
---|---|---|---|---|
0
YHVVH
19.07.13
✎
22:27
|
Хочу спросить совета.
Есть регистр сведений , одно из измерений - Номер (тип число), Есть форма записи , пользователь нажимает записать. необходимо чтоб при записи определялся следующий номер и соответственно записывался. найти следующий номер можно в запросе, а вот как сделать чтоб нумерация соблюдалась уникальная, ведь если одновременно работают несколько пользователей, то существует вероятность что будут записи с одним и тем же номером. Как этого можно избежать ? |
|||
1
shuhard
19.07.13
✎
22:33
|
(0) засади в измерение справочник и нумеруй его средствами платформы
|
|||
2
Fragster
гуру
19.07.13
✎
22:34
|
блокируй таблицу перед присвоением номера
|
|||
3
YHVVH
19.07.13
✎
22:35
|
(2) в какой момент я должен буду блокировать и как?
|
|||
4
YHVVH
19.07.13
✎
22:35
|
(1) идея хорошая , но хотелось бы без справочника.
|
|||
5
Тьма
19.07.13
✎
22:36
|
(2)Перед поиском свободного номера, причем блокировать на чтение.
|
|||
6
YHVVH
19.07.13
✎
22:37
|
(5) а можно подробней , как заблокировать на чтение всю таблицу.
|
|||
7
YHVVH
19.07.13
✎
22:38
|
сейчас сделано так
у меня процедура &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если НЕ ЗначениеЗаполнено(ТекущийОбъект.НПП) Тогда ТекущийОбъект.НПП = ПолучитьНПП(); КонецЕсли; КонецПроцедуры |
|||
8
YHVVH
19.07.13
✎
22:40
|
в процессе работе получаются двойные номера :-(( редко но получаются
|
|||
9
wertyu
19.07.13
✎
22:49
|
а в ПолучитьНПП() чего?
|
|||
10
YHVVH
19.07.13
✎
22:53
|
(9) просто функция которая возвращает результат запроса
ВЫБРАТЬ ПЕРВЫЕ 1 Тест.Номер КАК Номер ИЗ РегистрСведений.Тест КАК Тест УПОРЯДОЧИТЬ ПО Номер УБЫВ |
|||
11
Fragster
гуру
19.07.13
✎
22:58
|
блокировки - управляемые? или автоматические?
|
|||
12
Fragster
гуру
19.07.13
✎
22:59
|
если автоматические - то в запросе - ДЛЯ ИЗМЕНЕНИЯ, если управляемые - то через объект БлокировкаДанных с ипом Исключительная
|
|||
13
YHVVH
19.07.13
✎
22:59
|
(11) управляемый
|
|||
14
YHVVH
19.07.13
✎
23:00
|
объект БлокировкаДанных с ипом Исключительная
не понял. |
|||
15
YHVVH
19.07.13
✎
23:02
|
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Тест"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; Блокировка.Заблокировать(); так? |
|||
16
Fragster
гуру
19.07.13
✎
23:07
|
(15) ну, типа того
|
|||
17
wertyu
19.07.13
✎
23:09
|
Разрешенные
|
|||
18
wertyu
19.07.13
✎
23:10
|
у тебя будет блокировка получения
|
|||
19
YHVVH
19.07.13
✎
23:12
|
(17) (18) не понял, что разрешенные ?
добавить к (15 )еще в запросе моем ВЫБРАТЬ разрешенные сделать? |
|||
20
wertyu
19.07.13
✎
23:39
|
да
|
|||
21
wertyu
19.07.13
✎
23:41
|
ну и обработку с пустым результатом
|
|||
22
Fragster
гуру
19.07.13
✎
23:47
|
(17)(18)(20)(21) не для того РАЗРЕШЕННЫЕ. совсем не для того.
|
|||
23
EvgeniuXP
19.07.13
✎
23:51
|
права
|
|||
24
beer_fan
20.07.13
✎
00:48
|
(0) Не парься с блокировками... просто перед записью считывай крайний номер, и добавляй 1.
|
|||
25
YHVVH
20.07.13
✎
08:34
|
(24) какой крайний номер ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |