Имя: Пароль:
1C
 
Использовать Справочник как Нумератор
,
0 lartibetra
 
27.12.18
15:18
Нужно вести нумерацию неких объектов.
Правильно ли будет использовать справочник как нумератор объектов. В таком случае нумерация происходит автоматически при записи нового элемента, то есть нужно просто записывать новый элемент и брать у него Код.
Или же другой вариант сделать через регистр сведений и каждый раз находить последний элемент +1.
Что правильнее?
1 seevkik
 
27.12.18
15:20
А эти объекты в 1с как кто?
2 Numerus Mikhail
 
27.12.18
15:24
регистр сведений
Объект
Номер

берешь максимум
3 Сияющий в темноте
 
27.12.18
15:29
Нумерация справочников в 1с не очень качественная,во первых,используется отслеживание используемых номеров,так что нумерация может быть с перерывами,если несколько потоков пишут,во вторых,в режиме загрузки можно случайно записать повтор номера.
с другой стороны,в регистре сведений,вы сами будете управлять генерацией,и как напишете,тае и будет.
просто,если нужен номер ни к чему не привязанный,то регистр.
если это какие то обьекты,то конечно справочник и везде в базе использовать не номер,а ссылку на элемент.
4 vtolga
 
27.12.18
15:37
А почему бы просто "Нумератор" не использовать ?
5 lartibetra
 
27.12.18
15:41
(3) Пожалуй соглашусь, нужно отталкиваться от потребности.
(4) Про этот объект я и забыл) но все таки в моем случае не подойдет.
6 Eiffil123
 
27.12.18
16:19
(3) обычно нумерация в 1С намного качественнее самописной (ну разве что будет алгоритмически очень хорошо всё проработано и учтено).  Особенно в высоконагруженной системе, когда параллельно могут записываться несколько объектов.


А так - зачем РС, если номер можно брать из этой же таблицы и делать +1 к последнему номеру.
8 Eiffil123
 
27.12.18
16:34
(4) нумератор только для документов же
9 Franchiser
 
гуру
27.12.18
16:39
(6) "если номер можно брать из этой же таблицы и делать +1 к последнему номеру." Нужно заниматься преобразованием строки к числу, выделять префиксы и т.д.
10 Eiffil123
 
27.12.18
16:41
(9) ну собственно, платформа так и работает.
11 Garykom
 
гуру
27.12.18
16:44
(0) Нужен именно нумератор (возрастающая последовательность без пропусков) или нужны уникальные отличающиеся значения для идентификации?
12 lartibetra
 
27.12.18
17:23
(11) нужны уникальные отличающиеся значения для идентификации
13 Вафель
 
27.12.18
17:24
можно в константе хранить послдений номер
14 Eiffil123
 
27.12.18
17:40
(12) так для этого есть УникальныйИдентификатор. Его можно генерировать хоть каждую секунду
15 Злопчинский
 
27.12.18
17:50
(12) идентификация чисто техническая? или "пользовательская"...? то есть будет ли пользователь ориентироваться например типа "что-то с номером КоторыйМожноВнятноПрочитать"..?
16 lartibetra
 
27.12.18
17:58
(14) (15) Наверное неправильно выразился, ГУИД генерить не подойдет, значения должны быть видны пользователю, по сути это определенные коды. Часть кода это Префикс, другая часть Счетчик.
17 Garykom
 
гуру
27.12.18
17:58
(12) Лучше всего придумать некую буквенно-цифровую кодировку, куда заснуть "кто, что, где и когда".

По сути некий префикс (для пользователя или базы или еще чего) + ГСЧ + дата/время
18 lartibetra
 
27.12.18
18:00
Есть еще идея документ использовать документ. Передавать ему префикс, а на выходе получать номер.
19 Garykom
 
гуру
27.12.18
18:02
Если номера генерируются только в одном процессе/сеансе (и в одной базе без РИБ) то хоть константу используй.
Если надо получать номера из разных сеансов то позаботься о блокировках или разрешении коллизий и все.

Использовать для этого справочник это как из пушки по воробьям, если реально элементы справочника не используются и по сути будут пустыми висеть без дела, только код берется как строка/число.
20 lartibetra
 
27.12.18
18:04
(19) Ну почти согласен, просо используя Код система мне сама генерит счетчик с учетом префикса. А в регистре нужно будет делать поиск последнего +1 и блокировки.
21 Eiffil123
 
27.12.18
18:10
(20) справочник с нулевой длиной наименования. зачем эмулировать платформу, когда она сама это умеет делать.
Независимо от того, куда вы едете — это в гору и против ветра!