Имя: Пароль:
1C
1С v8
"Определяемый тип" vs "составной тип"
0 dave2000
 
23.03.17
17:32
Есть база, в которой есть 10 000 000 (10 миллионов)  документов "Заказ". Сейчас необходимо в этот документ добавить новый реквизит составного типа, что приведет к долгой реструктуризации метаданных. В будущем состав типов этого реквизита будет меняться, и для каждого такого изменения нужна будет повторная длительная реструктуризация метаданных. Что если в качестве типа данного реквизита назначить "определяемый тип", в котором назначать нужные типы. При изменении состава этого "определяемого типа" реструктуризация будет происходить также долго? Кто вкурсе, как оно устроено на физическом уровне?
1 Волшебник
 
модератор
23.03.17
17:35
добавь регистр сведений
2 Fragster
 
гуру
23.03.17
17:36
определяемый тип нужен, чтобы у разных объектов метаданных был одинаковый тип. составной тип - чтобы в реквизиты можно было пихать данные разного типа. это непересекающиеся понятия
3 Fragster
 
гуру
23.03.17
17:37
чтобы не было реструктуризации - надо добавлять "сбоку", например как в (1)
4 DrShad
 
23.03.17
17:37
(1)+1
5 vde69
 
23.03.17
17:37
реструктуризация будет идти относительно быстро.
6 vde69
 
23.03.17
17:38
лучше ПВХ и значение ПВХ
7 Dmitry1c
 
23.03.17
17:43
(0) добавь некоторое количество справочников-пустышек с запасом
8 DexterMorgan
 
23.03.17
17:53
(7) вот это "по-нашему"
9 Oftan_Idy
 
23.03.17
17:54
(0) составной тип - это зло
10 dave2000
 
23.03.17
18:44
Всем спасибо! Решили таки вынести это дело в отдельный справочник со своей иерархией, а там чудить с типами.


(7) :)))))))))))))))))
11 Sammo
 
23.03.17
18:52
1. 10 млн это не сильно много. Возможно реструктуризация сможет пройти в разумное время (выходные), особенно если делать на сервере.
2. Настойчиво рекомендую сделать отдельным хранением.

Если все же невозможно и потребуется добавлять реквизит, то моменты
1. Если сделать простой тип, а потом составной, то будет долгая реструктуризация, т.к. фактически добавляется колонка с типом и этот тип добавляется.
2. Если тип уже составной (ссылка), то добавление к нему новой ссылки уже будет проходить быстро (колонка с типом данных добавлять не будет). Рекомендую читать толстую книгу - как хранятся составные типы данных (отдельные колонки для строка, число, дата, тип ссылки + ссылка)
3. В скуле можно сделать так: перед реструктуризацией средствами вынести все данные из таблицы во временную табличку. Провести реструктуризацию. Вернуть данные средствами скуля.
Будет быстро, но требуются прямые руки, доступ к скулю + нарушение лицензии.

P.S. Кстати, один из вариантов - делать реквизит справочник и все варианты составных типов выносить в этот справочник. Зачастую так получается дешевле, чем делать под каждый элемент реквизит. Т.е. грубо говоря справочник аналитика, в котором реквизиты: а, б, с.
12 Sammo
 
23.03.17
18:55
+11 если делать составной тип, то добавляйте только то, что нужно. Особенно ужас, когда добавляют тип ДокументСсылка.
Если потребуется брать подчиненный реквизит (например, через точку), это приведет к левому соединению со всеми таблицами, которые входят в составной тип
13 dave2000
 
23.03.17
23:33
(11) > ... грубо говоря справочник аналитика, в котором реквизиты: а, б, с.

так и сделали (10)... но почему именно "реквизиты: а, б, с", а не один составной реквизит "а, б, с"???

(12) никогда так не делаю) в первую очередь пока из-за того, что пользователю для выбора вся эта лабудень вылезет...