Имя: Пароль:
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с просто вызывает эту функцию один раз,получая множество гуидов,которые потом используются по мере необходимости.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший