|   |   | 
| 
 | Уникальность UUID в БД. | ☑ | ||
|---|---|---|---|---|
| 0
    
        Snork 12.06.12✎ 09:37 | 
        Подскажите, БД 1С обеспечивает уникальность UUID, которой получаем посредством .УникальныйИдентификатор() в пределах всех БД или только в пределах объектов одного вида?
  Допустим имеем 2 разных вида документов. У них UUIDы могут пересекаться или нет в 1 БД? | |||
| 1
    
        pumbaEO 12.06.12✎ 09:39 | 
        Да, могут.     | |||
| 2
    
        Рэйв 12.06.12✎ 09:42 | 
        Нет, не могут     | |||
| 3
    
        Рэйв 12.06.12✎ 09:43 | 
        Если имеется УникальеныйИдентификатор() коненчно.  ID в таблицах могут     | |||
| 4
    
        Рэйв 12.06.12✎ 09:44 | 
        *имеется в виду     | |||
| 5
    
        Snork 12.06.12✎ 09:46 | 
        Повторюсь: выражение, которое получено с помощью .УникальныйИдентификатор() будет гарантировано уникальным среди всех объектов различного вида/типа в пределах 1 БД?     | |||
| 6
    
        Рэйв 12.06.12✎ 09:48 | 
        (5)Да.     | |||
| 7
    
        Snork 12.06.12✎ 10:02 | 
        (6) спс     | |||
| 8
    
        Snork 12.06.12✎ 10:04 | 
        Допустим из БД №1 в БД №2 по ссылке (UUID) выгружается какой либо вид документов. Если в БД №2 создать вручную 1 документ этого вида, то его UUID может пересечься с одним из UUIDов документов, которые мы потом будет выгружать из БД №1?     | |||
| 9
    
        pumbaEO 12.06.12✎ 10:10 | 
        (8) в теории не может пересечься, на практике и палка раз в год стреляет... 
  Таким образом практически все типовые обмены сделаны. | |||
| 10
    
        Живой Ископаемый 12.06.12✎ 10:12 | 
        2(8) Если уид двух объектов одного вида будет одинаков, они "сольются" в базе приемнике.
  То есть от объекта заведенного руками, после загрузки сообщения обмена не останется и следа... кроме разве фантома в ЖР в поле "Представление Данных" | |||
| 11
    
        Advan 12.06.12✎ 10:12 | 
        Не совсем - были случаи совпадения в разных базах - но они очень редки - шанс столкнуться с таким очень мал.     | |||
| 12
    
        Snork 12.06.12✎ 10:15 | 
        (11) я как раз про этот шанш или
  (8) палку Сейчас делаю выгрузку для 1 завода из 1 бд в другую. Большого кол-ва видов документов. Причем некоторые виды документов 1 БД сливаются в 1 вид документов другой БД. Пока выгружаю по UUID. Вот думаю правильно ли это стратегически? | |||
| 13
    
        Живой Ископаемый 12.06.12✎ 10:20 | 
        "Причем некоторые виды документов 1 БД сливаются в 1 вид документов другой БД" - надо полагать что НЕСКОЛЬКО видов документов одной БД в ОДИН вид другой... Итого ты опасаешься, нет ли УЖЕ сейчас в БД1 двух документов РАЗНОГО вида с ОДИНАКОВЫМ уидом.
  Дык проверь. | |||
| 14
    
        Gobseck 12.06.12✎ 10:20 | 
        Эта тема неоднократно обсуждалась применительно как к GUID от фирмы 1С, так и к GUID от MS SQL Server. Историю вопроса излагаю по памяти. Первоначально в MS SQL для формирования GUID использовался MAC адрес сетевой платы (заведомо уникальный для каждого компьютера) и случайное число, сгенерированное на основе системной даты и времени в долях секунды. Понятно, что такой подход давал практически 100% гарантию, что GUID никогда не повторится. Потом пошли разборки относительно того, что MAC адрес сетевой платы нельзя выкладывать куда попало из соображений конфидециальности. Фирма Microsoft изменило алгоритм формирования GUID и засекретило его. Вероятность совпадения в разных базах несколько увеличилась и такие случаи на больших базах время от времени возникают.
  Фирма 1С алгоритм формирования GUID скрывала с самого начала. Можно предположить, что ситуация примерно как с GUID от фирмы Microsoft. (12)Насколько знаю, так делают. Но при этом проверяют на наличие совпадений. | |||
| 15
    
        Живой Ископаемый 12.06.12✎ 10:23 | 
        2(14)нет, дело с 1С в другом. в том что первоначальный УИД формируется при первом создании нового объекта в конкретном сеансе, и затем инкрементируется для всех последующих объектов созданных в данном сеансе.
  Ну и да, возможно детальный алгоритм формирования изначального уида в сеансе не известен, известно только что зависит от аптайма среды, выполняющей сеанс | |||
| 16
    
        Snork 12.06.12✎ 10:24 | 
        (13) сейчас точно нет, т.к. 2ая БД пустая. Но они же могут появиться в будущем. Когда во 2ой БД начнут вводить вручную документы
  (14) 1С или Ms sql имею разные алгоритмы формирования uid. На форуме в аналогичных ветках обсуждалось | |||
| 17
    
        sda553 12.06.12✎ 10:25 | 
        (12) Пересечение может быть только в теории, на практике ни одного такого случая до сих пор ни у кого никогда не было.
  Во всех случаях когда эту проблему поднимали на мисте, выяснялось, что виноват обмен данными между базами, а не случайное совпадение. Обычно это происходит когда смешивается и конфликтуют обмен/загрузка по УИД и обмен/загрузка по , допустим, коду справочника. Вначале проходит обмен/загрузка по УИД, в другой базе появляется элемент с таким же УИД, через некоторое время отрабатывает загрузка по коду и все реквизиты элемента переписываются и внешне он превращается в другой элемент справочника, но с таким же УИД. Еще через некотрое время на мисте появляется тема "А могут ли совпасть УИДы?" Так что ищите ошибку в другом месте, она так вероятнее | |||
| 18
    
        fisher 12.06.12✎ 10:26 | 
        (14) "Фирма 1С алгоритм формирования GUID скрывала с самого начала"
  В том-то и дело. И она явно использует не майкрософтовский алгоритм. 1С каким-то макаром присваивает идентификатор сессии пользователя (составляющая гуида) и в её рамках выдача гуидов идет последовательно. Соответственно, смело гарантировать уникальность хотя бы в пределах БД я бы поостерегся. Фиг его знает, как оно на самом деле. | |||
| 19
    
        Живой Ископаемый 12.06.12✎ 10:26 | 
        +(17) аналогично... Ни раз не видел чтобы совпадали уиды     | |||
| 20
    
        Живой Ископаемый 12.06.12✎ 10:27 | 
        понятно, можно впредь такие ветки относить в лайф с пометкой "холивар"     | |||
| 21
    
        ChAlex 12.06.12✎ 10:28 | 
        (16) Да вряд ли они появятся в будущем. 1С тоже вряд ли изобретала велосипед и использует майкрософтовсий гуид. Вероятность 1 на триллионы. Совпасть могут уже после обменов (если таковым пользоваться).     | |||
| 22
    
        zva 12.06.12✎ 10:45 | 
        (17) на практике легко, когда умельцы подключают два независимых сервера 1С к одной базе     | |||
| 23
    
        sda553 12.06.12✎ 11:02 | 
        (22) Сомневаюсь, требую эксперимента и отчета     | |||
| 24
    
        Aleksey 12.06.12✎ 12:18 | 
        (22) Ты с нумератором не путаешь?     | |||
| 25
    
        zva 12.06.12✎ 16:12 | 
        Погорячился, контроль уникальности там не работает, uuid все равно разный создается     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |