|
Уникальность идентификаторов гарантируется только в рамках одной таблицы? | ☑ | ||
---|---|---|---|---|
0
Лунтик
17.08.18
✎
16:27
|
Может сейчас ситуация уже другая и уникальность соблюдается в рамках всей базы?
Где это описано в ИТС или документации? Киньте, пожалуйста, ссылки или ориентиры. |
|||
1
Casey1984
17.08.18
✎
16:31
|
У меня в закладках цитата: Характерной особенностью объектного манипулирования данными является то, что на каждый объект, как совокупность данных, существует уникальная ссылка, позволяющая однозначно идентифицировать этот объект в базе данных.
|
|||
2
Casey1984
17.08.18
✎
16:32
|
(1) Не помню откуда скопировал) откуда-то с 1с)
|
|||
3
Casey1984
17.08.18
✎
16:33
|
(1) Отсюда я всегда считал, что в пределах база. Но так как это GUID то по идее гораздо шире.
|
|||
4
Cool_Profi
17.08.18
✎
16:34
|
ГУИД определяется как Глобально Уникальный Идентификатор
Вероятнось совпадения теоритечиски очень-очень-очень маловероятны |
|||
5
Tonik992
17.08.18
✎
16:37
|
(0) вероятно, ситуация была очень и очень спорной с последовательностью.. Где-то читал, что в пределах одной таблицы по одной и той же дате может наблюдаться разная последовательность документов.
|
|||
6
Fragster
гуру
17.08.18
✎
16:37
|
Уникальность идентификаторов гарантируется только в пределах одной таблицы, это следует из структуры индексов и наличия УстановитьСсылкуНового с заранее определенным идентификатором
(1) а теперь посмотри на структуру полей составного типа в БД (3)(4) а GUID тут не причем, в слове УникальныйИдентификатор нет буквы Г(лобальный) |
|||
7
vdss
17.08.18
✎
16:40
|
(6) +1
Уникальность ГУИД соблюдается в пределах таблицы Это легко проверить - создай два элемента разных справочников с одним и тем же ГУИДом |
|||
8
Cyberhawk
17.08.18
✎
16:40
|
В 1С не ГУИДы, а УИДы. Когда-то Я тоже говорил неправильно (с "Г")
|
|||
9
Eiffil123
17.08.18
✎
16:45
|
Платформой гарантируется в пределах таблицы.
При этом при автоматической генерации новых ссылок (если туда не влезает программист) совпадение идентификаторов в разных таблицах маловероятно. |
|||
10
Eiffil123
17.08.18
✎
16:47
|
(1) Это верно. Но здесь имеется ввиду ссылка на объект, а это комбинация Тип (что соответсвует таблице БД) + Идентификатор
|
|||
11
Casey1984
17.08.18
✎
16:51
|
(6) из описания УстановитьСсылкуНового:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта. Согласен. |
|||
12
Лунтик
17.08.18
✎
17:03
|
И, все-таки, вопрос освещен в документации или нет?
|
|||
13
Fragster
гуру
17.08.18
✎
17:05
|
(12) Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа
|
|||
14
Fragster
гуру
17.08.18
✎
17:06
|
не может ... данного типа
|
|||
15
Лунтик
17.08.18
✎
17:10
|
(13) как раз объекты РАЗНЫХ типов надо сливать в ОДНУ таблицу на стороне. Получается, по идентификатору это делать нельзя. Чем обосновать-то?
|
|||
16
Casey1984
17.08.18
✎
17:10
|
В 1С: Предприятие 8.3 Практическое пособие разработчика например :-)
Но (6) (8)! В описании объекта УникальныйИдентификатор в справке платформы: Предназначен для создания и хранения глобального уникального идентификатора GUID. Вот и верь печатному слову. |
|||
17
Fragster
гуру
17.08.18
✎
17:12
|
(15) вероятность крайне мала. сначала проверь, может у тебя не пересекаются они.
|
|||
18
Вафель
17.08.18
✎
17:15
|
(15) можешь гуиды не сливать, а делать например запись в регистре соотвествие элементов баз данных или что-то типо такого
|
|||
19
Franchiser
гуру
17.08.18
✎
17:15
|
в 1с 7.7 уникальные идентификаторы (т.к. они все в _1sjourn), в 1с8 нет. Можешь сам проверить: взять УИД и создать новый документ другого типа с таким же УИД.
|
|||
20
D_E_S_131
17.08.18
✎
17:15
|
"сливать в ОДНУ таблицу на стороне" - зачем "сливать" УИД?
|
|||
21
Вафель
17.08.18
✎
17:16
|
но лучше по гуидам, па потом проверить отчетом. все равно отчет по проверке нужно делать
|
|||
22
Вафель
17.08.18
✎
17:16
|
(20) а если нужно перелить повторно?
|
|||
23
Лунтик
17.08.18
✎
17:21
|
(21) так пока и получается. На каждую строку ряда документов создавать, наверное, справочник, чтобы по-нему строить уникальный идентификатор. Ничего себе размерчик справочника получается!!!
|
|||
24
Fragster
гуру
17.08.18
✎
17:21
|
в типовых на БСП уже есть такой регистр сведений под это дело. Причем при работе через КД2 и КД3 там все само заполняется
|
|||
25
Fragster
гуру
17.08.18
✎
17:22
|
естественно, если пользоваться типовым обменом по правилам
|
|||
26
Вафель
17.08.18
✎
17:23
|
(24) но в типовых вроде гиуды по умолчанию сохраняются.
а регистр нужен для случаев сопоставления |
|||
27
Fragster
гуру
17.08.18
✎
17:24
|
(26) ну там не только гуид, но и тип объекта-источника сохраняется
|
|||
28
Лунтик
17.08.18
✎
17:26
|
как раз из-за типового РС.ИдентификаторыОбмена и сыр-бор.
Там одно измерение Объект (ссылка на прикладной объект) и один реквизит Идентификатор (36 символов). Не хватает длины идентификатора или идентификатора типа/базы/др |
|||
29
Лунтик
17.08.18
✎
17:28
|
Офигеть!! а в УТ, реально, есть ТипПриемника, ТипИсточника и др!!!
|
|||
30
Лунтик
17.08.18
✎
17:30
|
Axelot отстой!!
|
|||
31
Fragster
гуру
17.08.18
✎
17:31
|
в старой БСП было меньше измерений :)
|
|||
32
Лунтик
17.08.18
✎
17:36
|
Теперь совсем-совсем нужна ссылка на документацию!! Как без этого бодаться с акселотом-то!!!
|
|||
33
Casey1984
17.08.18
✎
18:05
|
(32) не совсем документация, но: https://its.1c.ru/db/pubdevguide83#content:285:1
|
|||
34
Eiffil123
17.08.18
✎
18:06
|
(15) сначала проверить надо, может сейчас пересечений по ГУИДам нет. В случае одноразовой выгрузки тогда проблем нет. А если многоразовая - тогда к строковому идентификатору можно добавлять первую букву справочника для уникальности.
|
|||
35
Cyberhawk
17.08.18
✎
18:14
|
(29) Это сделано в частности для передачи удалений объектов, а не для того, о чем ты думаешь
|
|||
36
Cyberhawk
17.08.18
✎
18:15
|
А что там Акселот, шинку данных вам пилит?
|
|||
37
Cyberhawk
17.08.18
✎
18:27
|
(16) Ну, на ИТС тоже много где используется "GUID" как синоним "уникального идентификатора"
|
|||
38
Cyberhawk
17.08.18
✎
18:30
|
Ну и в одата-интерфейсе тип для ссылок имеет в своем названии "Guid".
А по сути где первоисточник? |
|||
39
Вафель
17.08.18
✎
18:45
|
(38) в с++ тоже гуид называется
|
|||
40
Cyberhawk
17.08.18
✎
19:07
|
В RFC тоже синонимы: https://tools.ietf.org/html/rfc4122
"This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier)" А что может быть "первоисточнее"? |
|||
41
Garykom
гуру
17.08.18
✎
21:44
|
1. Уникальность только в одной таблице
2. На практике было 1 совпадение УИД на 2 миллиона записей (документов) создаваемых в разных базах. |
|||
42
hhhh
18.08.18
✎
07:52
|
(41) ну это в теории. а если на практике? например, если правила обмена, там гуид копируется в другую базу. Если например в бп один справочник Контрагенты. А в Ут два справочника Контрагенты и Партнеры. То легко можно накосячить в правилах, чтобы в справнике Контрагенты и Справочнике Партнеры ГУИД был одинаковый.
|
|||
43
rphosts
18.08.18
✎
08:05
|
(0) ссылка на объект содержит в себе: Вид(тип) объекта и Уникальный код среди этого вида (в пределах этой ИБ)
|
|||
44
spectre1978
18.08.18
✎
08:34
|
(40) Насколько я понимаю, суть оно одно и то же - 128-битное целое. Это очень много значений и теоретически глобальная уникальность достижима. Но весь вопрос в механизме генерации. Уникальность достигается в том случае, если этот механизм достаточно качественно сделан. Если не очень, то дубли возможны.
|
|||
45
Garykom
гуру
18.08.18
✎
09:57
|
(42) Если у тебя Контрагенты+Партнеры >2 лямов то вот примерно 1 совпадение и будет и то возможно.
А возможно и не будет совпадений УИД, все зависит от времени занесения/создания новых записей. В моем случае было около 180 мест (баз) одновременного занесения, если места всего 2 то вероятность совпадений снижается очень сильно, УИД он включает в себе текущие дату+время. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |