|   |   | 
| 
 | Как правильно сделать нумерацию | ☑ | ||
|---|---|---|---|---|
| 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) какой крайний номер ?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |