Имя: Пароль:
1C
1С v8
Создание элементов по своему GUID вредит ли базе?
,
0 Megas
 
30.11.18
10:47
В 1С можно создать GUID "Новый УникальныйИдентификатор()" - и он отличается от тех что 1с создаёт по умолчанию для создания Ссылки у нового элемента.
Злые языки говорят: ГУИДы объектов в 1С на самом деле «псевдо». Нумерация их идет строго последовательная (+1). Это позволяет добиться непрерывности в кластерных индексах в которых ГУИД идет первым полем.

А если создать свой GUID "Новый УникальныйИдентификатор()" - или получить его со стороны, к примеру пришёл из обмена,  да ещё и не 1с ного. То ссылка на основе его будет "выбиваться" из общего строя ссылок.

Единственное я что то вообще не понимаю влияет ли это на скорость запросов?
И на что это вообще влияет кроме сортировки по Ссылке - чего и так никто не делает.
Где об этом почитать?
1 Вафель
 
30.11.18
10:48
в базе идет упорядоченный гуид для более быстрой вставки
2 Вафель
 
30.11.18
10:48
на чтение влиять не будет уже
3 Cyberhawk
 
30.11.18
10:48
"кроме сортировки по Ссылке - чего и так никто не делает" // Явно не делает, неявно много где
4 Cyberhawk
 
30.11.18
10:49
На сортировку влиять не должно
5 1Сергей
 
30.11.18
10:55
>>Нумерация их идет строго последовательная (+1).

Ложь
6 scanduta
 
30.11.18
10:59
Не вредит
7 Serg_1960
 
30.11.18
11:00
(0) Создание "своего" GUIDа, в принципе, вообще ни на что не влияет. И Ваша "непрерывность" тоже ни на что не влияет, никому не нужна. Просто подумайте: есть удаление объектов, есть РИБ (где GUIDы генерятся в различных автономных по сути базах) - "непрерывность" долго не просуществует. Это сферический  конь в вакууме.
8 1Сергей
 
30.11.18
11:03
http://pics.rsh.ru/img/_rfeuq9e1.png

нумерация идёт последовательно в пределах одного сеанса всего лишь
9 1Сергей
 
30.11.18
11:05
ну, и сортировка по такому уиду бессмысленна
10 Serg_1960
 
30.11.18
11:05
PS: вы тут вспомнили про сортировку по ссылки, а мне в первый момент времени мелькнула мысль да, да про него самого - МоментВремени :)
11 Aleksey
 
30.11.18
11:31
Я уже лет 10 в 8-ке свой гуид использую. Удобно для "разделенных" базах
12 ptiz
 
30.11.18
11:35
(11) А как генеришь? И для каких объектов?
13 SUA
 
30.11.18
11:35
(0)главное чтобы уникальный
и больше ни на что не повлияет тогда
14 Aleksey
 
30.11.18
11:43
(12) Для всех.
Сначала было тупо путем своего правила преобразования из модовского IDD (17 символов) в гуид (32 символа). В простом случае это выглядит
IDD = 12233445566778899
GUID = FFFFFFFF-FFFF-FFF1-2233-445566778899
(У меня чуть сложнее но не суть).
Это преобразование работает в обе стороны, я могу и гуид получить и зная гуид получить IDD из которого оно было создано (актуально для сравнения баз)

Сейчас, из -за отказа от mod, добавил везде реквизит GUID и для новых объектов формирую его в 7-ке стандартным способом
НТТРСистИнформ = СоздатьОбъект("AddIn.V7SysInfo");
Возврат СокрЛП(НТТРСистИнформ.СоздатьGUID());

Ну а в 8-ке это стандартная ссылка, ничего дополнительно не генерирую. Прсто при обменах использую гуид из 7-ки как ссылку в 8-ке
15 ptiz
 
30.11.18
11:47
(14) Ах вон оно что. Я думал, что цель, например, определять место или дату создания объекта в РИБ 1С8, и свой алгоритм УИДы генерит с этими данными.
16 Aleksey
 
30.11.18
11:54
(15) ну у меня быфла цель синхронизация справочников из разных баз с наименьшими телодвижениями
17 d4rkmesa
 
30.11.18
11:56
(1) Я как то подобное ляпнул, меня заплевали. Справедливости ради, на новой платформе(или конфе на УФ) почему-то уже совсем не упорядоченные.
18 Cyberhawk
 
30.11.18
11:57
(17) В пределах сеанса - вполне упорядоченные
19 d4rkmesa
 
30.11.18
12:01
(18) Я спецом поэксперементировал, создавал пустую базу на УФ на актуальной платформе (8.3.12) и сделал несколько элементов справочника подряд. К моему удивлению, ид-ники у них были разные совсем. Если не лень, можно попробовать провести эксперимент.
20 Злопчинский
 
30.11.18
12:05
да без проблем. постоянно в базе создаются объекты с чужими гуидами, пришедшими в пакетах обмена. рядовой случай.
21 Вафель
 
30.11.18
12:08
(7) влияет конечно же. не зря же MSSQL есть метод sequential id
Как бы вставка вконец таблицы и в середины разные по скорости
22 1Сергей
 
30.11.18
12:18
(19) попробовал
http://pics.rsh.ru/img/_b7r78e0c.png
23 Сияющий в темноте
 
30.11.18
21:08
У функции создания гуид в windows есть пакетный режим,когда она может создавать много гуид отличающихся только полем счетчика,соответственно,1с просто вызывает эту функцию один раз,получая множество гуидов,которые потом используются по мере необходимости.