Имя: Пароль:
1C
 
тип "уникальный идентификатор" как измерение регистра
,
0 vde69
 
01.10.18
10:00
есть у меня необходимость сделать регистр с измерением "уникальный идентификатор", штатно это сделать 1с не дает (нет такого типа в списке выбора).

можно сделать определяемый тип с типом "уникальный идентификатор" и уже в измерение закинуть этот определяемый тип.

или можно сделать по аналогии с типовым регистром "соответствиеОбъектовИнформационныхБаз" где вместо УИ лежит строка[36]

теперь вопросы -
1. чем обусловлено что 1с не дает в измерениях выбирать такой тип (кроме контроля ссылочной целостно)?
2. какой вариант лучше и чем они плохи про то, что индексирование строковых параметров отжирает больше индекса чем индексирование ссылки я знаю, еще какие заморочки есть?
1 Cool_Profi
 
01.10.18
10:02
Сделай строку и пихай туда XMLСтрока(ТвойУИД)
2 d4rkmesa
 
01.10.18
10:14
(0) УникальныйИдентификатор в реквизите будете средствами 1С делать?
3 vde69
 
01.10.18
10:17
(2) уникальный идентификатор буду копировать из документа, он есть в реквизите ТЧ документа
4 d4rkmesa
 
01.10.18
10:29
(0)
1. Я думаю, 1С старается не поощрять подобное, т.к. если совсем уж произвольные guid-ы пихать, то это вступит в непростые отношения с кластерным индексом итогов. Хотя, строковые измерения тоже не рекомендуется делать в РН.
2. Для РН - думаю, без разницы, оба варианта так себе, но я бы сделал строковый реквизит, дабы не нарваться не неизвестные мне грабли.

Не эксперт, не обессудьте. )
5 vde69
 
01.10.18
10:34
решил попробовать вариант 2 - 1с не дает сохранить изменения, пишет тип не верный, по этому только вариант 1 (строка)

практическую часть вопроса можно считать снятым, остается теоретическая:

почему 1с это запрещает?
6 yzimin
 
01.10.18
10:38
В типовых регистрах предназначенных для обмена используется тип строка
7 SleepyHead
 
гуру
01.10.18
10:39
(5) Потому что грохнут ссылку, из которой вы получили ваш УИД, и этот УИД превратится в тыкву.
8 RomanYS
 
01.10.18
10:40
(5) Есть вариант: создать простой справочник и использовать его.
(7) бред
9 Ёпрст
 
01.10.18
10:41
(7) так сейчас аналогично происходит с любым измерением ссылочного типа, если сам элемент удалят..Просто будет битая ссылка.
Аналогично, был бы битый гуид.
10 Ёпрст
 
01.10.18
10:42
Просто товарищам с селезнёвки нужно было лет 10 назад добавить в запросе получения гуида для реквизитов ссылочного типа, только и всего лишь. Это намного бы упростило делать обмены со сторонними ресурсами.
11 RomanYS
 
01.10.18
10:47
(9) "битый гуид" - это как?
12 bolobol
 
01.10.18
10:48
Всё даёт. У меня Регистр сведений такой сделан - оч.удобно.
13 bolobol
 
01.10.18
10:49
Тпи пятый сверху - Уникальный идентификатор. 8,3,10
14 d4rkmesa
 
01.10.18
10:50
(12) У ТС скорее всего РН, там нельзя.
15 youalex
 
01.10.18
10:51
РС - дает, РН - не дает.
16 vde69
 
01.10.18
10:52
(13) РС - дает
РН (подчиненный регистратору) - нет
17 Сияющий в темноте
 
01.10.18
11:09
Регистр накопления предполагает итоги и упорядочивание.
Вопрос упорядочивая по гуид можно долго обсуждать,и,видимо,на селезневке все еще обсуждают.
И получается 72 байта вместо 16.
18 bolobol
 
01.10.18
11:10
(17) Что за 72 байта? Вместо каких 16-ти?
19 vde69
 
01.10.18
11:26
(17) чем ссылка отличается от гуида?

(18) он имеет в виду размер в сборном индексе
20 d4rkmesa
 
01.10.18
11:27
(18) GUID в виде строки UTF-16.
21 bolobol
 
01.10.18
11:32
(20) Гуид в виде строки недавно был 36 знаков:
00000000(8)-0000(12)-0000(16)-0000(20)-000000000000(32+4(-))
Откуда 72 ?
22 Сияющий в темноте
 
01.10.18
11:32
Ссылка,это еще и тип обьекта,кроме гуида,то,что он в регист не пишется,если обьект один,еще не значит,что его нет.
72 байта,это 36 символов по 2 байта в индекс по строке,если пишем представление гуида.

а разумнее было бы тип Binary до ума довести,но 1с не скоро созреет.
23 DrZombi
 
гуру
01.10.18
11:35
(0) Только строка, фиксированная 36 символов.
24 Cool_Profi
 
01.10.18
11:36
(21) 36*2 (UTF) = 72
25 bolobol
 
01.10.18
11:58
(24) 36*3 (ХЗЧ) = 108

Речь-то о чём? Что за UTF, почему именно про него? Что у него не так со строками?
26 bolobol
 
01.10.18
11:59
(22) 36 символов по 2 байти в индекс? Индекс в два раза больше данных? Ээээ...
27 Cool_Profi
 
01.10.18
12:05
(25) UTF-8 - двухбайтная строка...
@в самом распространённом UTF-8 символ может кодироваться последовательностью от 1 до 4 байт.@

Но это уже на совести (17)
28 bolobol
 
01.10.18
12:09
(27) 1С данные хранит в УТФ-8 ?
29 Cool_Profi
 
01.10.18
12:13
(28) Удивишься...
30 1Сергей
 
01.10.18
12:26
(0) Зачем?
31 H A D G E H O G s
 
01.10.18
12:32
Я один не понимаю проблему автора?
32 H A D G E H O G s
 
01.10.18
12:36
33 H A D G E H O G s
 
01.10.18
12:37
А, все понял, РН.
34 rs_trade
 
01.10.18
12:40
(0) индексирование строковых параметров отжирает больше индекса чем индексирование ссылки я знаю

с чего бы это. гуид такая-же строка, с определенной длиной. ну если только с ограниченным набором символов.
35 H A D G E H O G s
 
01.10.18
12:41
(34) Это магия.
36 rs_trade
 
01.10.18
12:42
(35) я в магию не верю
37 H A D G E H O G s
 
01.10.18
12:43
(0) Преобразуй GUID в число.
17 байт данных на numeric хватит всем.
38 Cyberhawk
 
01.10.18
12:45
(37) Ради экономии 2-3% от максимальной длины составного индекса?
39 H A D G E H O G s
 
01.10.18
13:00
(38) Нет. Там экономия гораздо больше.
40 nicxxx
 
01.10.18
13:22
(4)"1. Я думаю, 1С старается не поощрять подобное, т.к. если совсем уж произвольные guid-ы пихать, то это вступит в непростые отношения с кластерным индексом итогов. Хотя, строковые измерения тоже не рекомендуется делать в РН."
Не пиши ерудны.
1С сама так делает или про гуиды, конвертированные в binary(16) и помещенные во все кластерные индексы мы вдруг забыли?
Строка - зло, но если только переменной длины, т.к. может привести к превышению длины строки индекса. Если же она фиксирована, то нет препятствий.
41 H A D G E H O G s
 
01.10.18
13:30
(40) Еще одна дичь.
42 Oftan_Idy
 
01.10.18
13:32
(0) Какая проблема использовать строку 36 символов?
43 H A D G E H O G s
 
01.10.18
13:38
(42)
- Хранить эту строку в виде лишний 64 байт (если вырезать дефисы).

- Сортировать эту строку по правилам языка, а не по физическому значению, что на порядки дольше.
44 nicxxx
 
01.10.18
13:42
(41) У автора поста (4) - да, дичь.
45 Oftan_Idy
 
01.10.18
13:45
(43) - не надо ничего вырезать, храни как есть в строке и все. что тебе места жалко что-ли, в каком веке живешь?

- не надо сортировать идентификатор
46 Oftan_Idy
 
01.10.18
13:46
(43) SQL справится с твоей 36-символьной строкой, не переживай
47 H A D G E H O G s
 
01.10.18
13:47
(45) Идентификатор будет сортироваться при построении индекса.
48 H A D G E H O G s
 
01.10.18
13:48
(46) Я не переживаю. Я просто рассчитываю, что не пересекусь с вашими разработками.
49 H A D G E H O G s
 
01.10.18
14:00
(45) "что тебе места жалко что-ли, в каком веке живешь? "

А потом появляются конфигурации, к примеру, хранящие акцизные марки в виде строки в 150 символов в измерении РС, по позиции регистратора, которых может быть несколько типов.
Посмотрим, как это взлетит на отгрузке, когда всё завертеться.
50 Oftan_Idy
 
01.10.18
14:11
(47) да пускай сортируется

(48) ой ой ой, какие мы крутые.

Мушку спили
51 Oftan_Idy
 
01.10.18
14:14
(47) Я не думаю что у тебя идет учет столкновения элементарных частиц в коллайдере.
MS SQL нормально пережует твои несчастные 72 байта в ключе.

Если уж сильно хочется сделать по феншую, что бы потом хвастаться, то перегони свою 36-строку в 4 байтовое число (как это делает платформа) и будет тебе счастье.
52 H A D G E H O G s
 
01.10.18
14:14
А потом эти ленивые жопки спрашивают "че у нас евро такой дорогой". А сами же делают свой работу наотъебись.
53 Oftan_Idy
 
01.10.18
14:15
(49) Сколько гигабайт занимает твоя sql-таблица к который ты хочешь прикрутить guid?
Меньше 100 Гб?
54 Oftan_Idy
 
01.10.18
14:17
(52) хосподя, да черт с тобой, можешь любоваться на себя в зеркале, не забудь нимб протереть, академический наш
55 H A D G E H O G s
 
01.10.18
14:17
(53) Речь не идет о размерах хранения, на это всем похрен.
Речь идет об обновлении итогов регистра накопления, в которых и скрыто 80% времени проведения документа.
56 Oftan_Idy
 
01.10.18
14:54
(55) В сабже не было речи о том что guid над прикрутить в рег.нак который двигается проведением.
Это совсем другой вопрос.
Тогда это хреновая идея вообще.

Речь шла,как я понял, про синхронизацию объектов, для этого нужный такие ключи.
57 Eiffil123
 
01.10.18
14:57
Сделай определяемый тип. это же проще, чем потом конвертировать ГУИД туда-обратно.
58 Eiffil123
 
01.10.18
14:57
(56) надеюсь, эти ключи будут в реквизитах, а не в измерениях.
59 Eiffil123
 
01.10.18
14:59
Ну или так: если нужно запросом получать гуиды элементов справочника из измерений - добавить в справочник реквизит GUID, заполнять при первой записи справочника из ссылки. А в запросе получать гуиды через точку. Тогда не нужно ломать регистры.
60 RomanYS
 
01.10.18
15:14
(56) А существуют РН, которые двигаются не проведением документов?
61 Oftan_Idy
 
01.10.18
15:24
(60) Не было речи об РН
62 Eiffil123
 
02.10.18
15:12
(60) конечно. корректировка записей регистров, например. Записывает в регистр без проведения.
63 youalex
 
02.10.18
15:33
(60) это практически вопрос из профа)
64 bolobol
 
02.10.18
15:55
(62) И что же, интересно, пишется в регистратор?
65 rozer76
 
02.10.18
21:25
(64) корректировка записей...