|
Как правильно сделать реквизит составного типа? Пообъектно или Все документы? | ☑ | ||
---|---|---|---|---|
0
Vladal
07.07.16
✎
18:42
|
Привет. Абстрактная задача.
На форме есть реквизит составного типа, содержащий несколько видов документов. Как бы правильно сделать: - каждый раз при добавлении нового вида документа в алгоритм обработки добавлять этот вид в состав реквизита; - указать "Документ ссылка", не заморачиваясь по видам? Минус первого способа - помнить "а не имеются ли где у нас реквизиты, в состав которых надо добавить этот новый объект", и ловить ошибку выполнения "Поле агрегатного объекта не обнаружено". Минусы второго хотелось бы узнать, как он физически хранится в базе и на что это может повлиять. |
|||
1
Fragster
гуру
07.07.16
✎
18:59
|
при обращении к реквизиту реквизита через точку в запросе будут прилепляться все возможные таблицы.
при удалении объекта метаданных будет проводиться реструктуризация таблицы с реквизитом, в составе которого есть тип удаляемого объекта и т.п. чем более строгое ограничение типа - тем лучше. |
|||
2
Garykom
гуру
07.07.16
✎
19:03
|
Для задачи если нужно хранить ссылку на документ лучше храни просто УИД строковый и "тип метаданных" в 2 реквизитах.
|
|||
3
Garykom
гуру
07.07.16
✎
19:05
|
(2)+ Или потом со ссылками можно огрести невозможность полного удаления по перекрестным.
Вот если требуется как раз "невозможность удаления" для "контроля целостности" данных то ссылки и уже смотря сколько видов типов доков будет. 1-2 можешь и перечислить, а если предполагается увеличение то просто ДокументСсылка и код для "ограничения выбора". |
|||
4
Vladal
07.07.16
✎
19:35
|
(1) точно. запамятовал, теперь вспомнил.
(2) по-моему так в скуле это и организовано. Но мне не хранить эту ссылку, а на форму передавать параметр, что-то типа ОткрываемаяФорма.ДокОбъект = ЭтотОбъект; ОткрываемаяФорма.Открыть(); И на форме ЭтотОбъект и есть реквизит составного типа. |
|||
5
Vladal
07.07.16
✎
19:39
|
И если я забуду в состав этого реквизита включить новый вид документа, то ДокОБъект = Неопределено со всеми вытекающими.
Всё. Теперь всё стало понятно. Спасибо. |
|||
6
Garykom
гуру
07.07.16
✎
19:41
|
(4) Если УФ то в консерваториях что то не то ))
|
|||
7
Vladal
07.07.16
✎
19:45
|
(6) в УПП на обычных формах
|
|||
8
Vladal
07.07.16
✎
19:45
|
причем типовой механизм, в примере я упростил его.
|
|||
9
Cyberhawk
07.07.16
✎
21:49
|
Определяемый тип тебе в помощь
|
|||
10
Vladal
21.07.16
✎
12:47
|
(9) Определяемый тип программно?
Речь об элементе на форме обработки. |
|||
11
Vladal
21.07.16
✎
12:51
|
(9) Т.е. программно создать массив типов и потом его назначить как список доступных типов поля ввода? Хороший вариант.
Но я о том, что при смене алгоритмов, или какой еще логики, надо будет прописать и тип этого реквизита. Например, раньше эта обработка вызывалась для документов "Ввод в эксплуатацию ОС", "Инвентаризация ОС", "Модернизация ОС" и в модуле вызова заполнялись реквизиты вызываемой формы: Форма.ДокументОбъект = ЭтотОбъект; Форма.ДокументСсылка = Ссылка; А теперь эту форму надо вызвать и в новых видах документов: по НМА. Вот и вопрос - вручную проставлять флажки в свойствах составного реквизита или просто проставить групповой флажок "ДокументОбъект". |
|||
12
Cyberhawk
21.07.16
✎
13:23
|
(10) Я про объект конфигурации "Определяемый тип"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |