Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Уникальность идентификаторов гарантируется только в рамках одной таблицы?

Уникальность идентификаторов гарантируется только в рамках одной таблицы?
Я
   Лунтик
 
17.08.18 - 16:27
Может сейчас ситуация уже другая и уникальность соблюдается в рамках всей базы?
Где это описано в ИТС или документации? Киньте, пожалуйста, ссылки или ориентиры.
 
 
   Casey1984
 
1 - 17.08.18 - 16:31
У меня в закладках цитата: Характерной особенностью объектного манипулирования данными является то, что на каждый объект, как совокупность данных, существует уникальная ссылка, позволяющая однозначно идентифицировать этот объект в базе данных.
   Casey1984
 
2 - 17.08.18 - 16:32
(1) Не помню откуда скопировал) откуда-то с 1с)
   Casey1984
 
3 - 17.08.18 - 16:33
(1) Отсюда я всегда считал, что в пределах база. Но так как это GUID то по идее гораздо шире.
   Cool_Profi
 
4 - 17.08.18 - 16:34
ГУИД определяется как Глобально Уникальный Идентификатор
Вероятнось совпадения теоритечиски очень-очень-очень маловероятны
   Tonik992
 
5 - 17.08.18 - 16:37
(0) вероятно, ситуация была очень и очень спорной с последовательностью.. Где-то читал, что в пределах одной таблицы по одной и той же дате может наблюдаться разная последовательность документов.
   Fragster
 
6 - 17.08.18 - 16:37
Уникальность идентификаторов гарантируется только в пределах одной таблицы, это следует из структуры индексов и наличия УстановитьСсылкуНового с заранее определенным идентификатором

(1) а теперь посмотри на структуру полей составного типа в БД

(3)(4) а GUID тут не причем, в слове УникальныйИдентификатор нет буквы Г(лобальный)
   vdss
 
7 - 17.08.18 - 16:40
(6) +1
Уникальность ГУИД соблюдается в пределах таблицы

Это легко проверить - создай два элемента разных справочников с одним и тем же ГУИДом
   Cyberhawk
 
8 - 17.08.18 - 16:40
В 1С не ГУИДы, а УИДы. Когда-то Я тоже говорил неправильно (с "Г")
   Eiffil123
 
9 - 17.08.18 - 16:45
Платформой гарантируется в пределах таблицы.
При этом при автоматической генерации новых ссылок (если туда не влезает программист) совпадение идентификаторов в разных таблицах маловероятно.
   Eiffil123
 
10 - 17.08.18 - 16:47
(1) Это верно. Но здесь имеется ввиду ссылка на объект, а это комбинация Тип (что соответсвует таблице БД) + Идентификатор
 
 Рекламное место пустует
   Casey1984
 
11 - 17.08.18 - 16:51
(6) из описания УстановитьСсылкуНового:

Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.

Согласен.
   Лунтик
 
12 - 17.08.18 - 17:03
И, все-таки, вопрос освещен в документации или нет?
   Fragster
 
13 - 17.08.18 - 17:05
(12) Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа
   Fragster
 
14 - 17.08.18 - 17:06
не может ... данного типа
   Лунтик
 
15 - 17.08.18 - 17:10
(13) как раз объекты РАЗНЫХ типов надо сливать в ОДНУ таблицу на стороне. Получается, по идентификатору это делать нельзя. Чем обосновать-то?
   Casey1984
 
16 - 17.08.18 - 17:10
В 1С: Предприятие 8.3 Практическое пособие разработчика например :-)

Но (6) (8)! В описании объекта УникальныйИдентификатор в справке платформы:

Предназначен для создания и хранения глобального уникального идентификатора GUID.

Вот и верь печатному слову.
   Fragster
 
17 - 17.08.18 - 17:12
(15) вероятность крайне мала. сначала проверь, может у тебя не пересекаются они.
   Вафель
 
18 - 17.08.18 - 17:15
(15) можешь гуиды не сливать, а делать например запись в регистре соотвествие элементов баз данных или что-то типо такого
   Franchiser
 
19 - 17.08.18 - 17:15
в 1с 7.7 уникальные идентификаторы (т.к. они все в _1sjourn), в 1с8 нет. Можешь сам проверить: взять УИД и создать новый документ другого типа с таким же УИД.
   D_E_S_131
 
20 - 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) так пока и получается. На каждую строку ряда документов создавать, наверное, справочник, чтобы по-нему строить уникальный идентификатор. Ничего себе размерчик справочника получается!!!
   Fragster
 
24 - 17.08.18 - 17:21
в типовых на БСП уже есть такой регистр сведений под это дело. Причем при работе через КД2 и КД3 там все само заполняется
   Fragster
 
25 - 17.08.18 - 17:22
естественно, если пользоваться типовым обменом по правилам
   Вафель
 
26 - 17.08.18 - 17:23
(24) но в типовых вроде гиуды по умолчанию сохраняются.
а регистр нужен для случаев сопоставления
   Fragster
 
27 - 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 отстой!!
   Fragster
 
31 - 17.08.18 - 17:31
в старой БСП было меньше измерений :)
   Лунтик
 
32 - 17.08.18 - 17:36
Теперь совсем-совсем нужна ссылка на документацию!! Как без этого бодаться с акселотом-то!!!
   Casey1984
 
33 - 17.08.18 - 18:05
(32) не совсем документация, но: https://its.1c.ru/db/pubdevguide83#content:285:1
 
 
   Eiffil123
 
34 - 17.08.18 - 18:06
(15) сначала проверить надо, может сейчас пересечений по ГУИДам нет. В случае одноразовой выгрузки тогда проблем нет. А если многоразовая - тогда к строковому идентификатору можно добавлять первую букву справочника для уникальности.
   Cyberhawk
 
35 - 17.08.18 - 18:14
(29) Это сделано в частности для передачи удалений объектов, а не для того, о чем ты думаешь
   Cyberhawk
 
36 - 17.08.18 - 18:15
А что там Акселот, шинку данных вам пилит?
   Cyberhawk
 
37 - 17.08.18 - 18:27
(16) Ну, на ИТС тоже много где используется "GUID" как синоним "уникального идентификатора"
   Cyberhawk
 
38 - 17.08.18 - 18:30
Ну и в одата-интерфейсе тип для ссылок имеет в своем названии "Guid".
А по сути где первоисточник?
   Вафель
 
39 - 17.08.18 - 18:45
(38) в с++ тоже гуид называется
   Cyberhawk
 
40 - 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)"
А что может быть "первоисточнее"?
   Garykom
 
41 - 17.08.18 - 21:44
1. Уникальность только в одной таблице
2. На практике было 1 совпадение УИД на 2 миллиона записей (документов) создаваемых в разных базах.
   hhhh
 
42 - 18.08.18 - 07:52
(41) ну это в теории. а если на практике? например, если правила обмена, там гуид копируется в другую базу. Если например в бп один справочник Контрагенты. А в Ут два справочника Контрагенты и Партнеры. То легко можно накосячить в правилах, чтобы в справнике Контрагенты и Справочнике Партнеры ГУИД был одинаковый.
   rphosts
 
43 - 18.08.18 - 08:05
(0) ссылка на объект содержит в себе: Вид(тип) объекта и Уникальный код среди этого вида (в пределах этой ИБ)
   spectre1978
 
44 - 18.08.18 - 08:34
(40) Насколько я понимаю, суть оно одно и то же - 128-битное целое. Это очень много значений и теоретически глобальная уникальность достижима. Но весь вопрос в механизме генерации. Уникальность достигается в том случае, если этот механизм достаточно качественно сделан. Если не очень, то дубли возможны.
   Garykom
 
45 - 18.08.18 - 09:57
(42) Если у тебя Контрагенты+Партнеры >2 лямов то вот примерно 1 совпадение и будет и то возможно.
А возможно и не будет совпадений УИД, все зависит от времени занесения/создания новых записей.

В моем случае было около 180 мест (баз) одновременного занесения, если места всего 2 то вероятность совпадений снижается очень сильно, УИД он включает в себе текущие дату+время.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует