|
ПолучитьСтруктураХраненияБазыДанных() | ☑ | ||
---|---|---|---|---|
0
lEvGl
гуру
14.08.24
✎
13:38
|
Доброго, откуда эта функция берет информацию?
Эксперимент: 2 базы, одна - копия другой. Добавляем в копию (база2) новый объект, смотрим ПолучитьСтруктураХраненияБазыДанных(), получаем верную структуру. Копируем средствами скл строку DBNames из Params базы1 в базу2, значения равны, но ПолучитьСтруктураХраненияБазыДанных() в базе2 все равно показывает верную структуру с новым именем добавленной таблицы. То есть в Params в строке с FileName = DBNames это не хранится Вопрос: откуда ПолучитьСтруктураХраненияБазыДанных() берет структуру соответствия имен метаданных именам данных? |
|||
1
H A D G E H O G s
14.08.24
✎
14:12
|
Странные вещи вы говорите.
Ну скорее всего в таблице Config |
|||
2
Garykom
гуру
14.08.24
✎
14:13
|
(0) Это ты о чем?
Покажи на картинках, ничё не понял |
|||
3
H A D G E H O G s
14.08.24
✎
14:13
|
И даже скорее всего не в Config, а размазано по таблицам
|
|||
4
Garykom
гуру
14.08.24
✎
14:16
|
||||
5
lEvGl
гуру
14.08.24
✎
14:27
|
(2) да на картинках еще не понятнее, тут же все двоичное в шестнадцатиричном виде
есть вот эта функция ПолучитьСтруктуру(), она возвращает соответствие имен метаданных (спр, док, регистры) именам таблиц в скл в виде ТаблицыЗначений. Вопрос где эта информация хранится первично? Вероятнее всего в скл, но где именно, в отдельной какой то таблице или еще какие то варианты (3) как так размазано, в каждой таблице скл есть имя объекта метаданных? где то кто то когда то сказал, что это лежит в таблице Params базы, вот эксперимент показал, что нет |
|||
6
Garykom
гуру
14.08.24
✎
14:28
|
(5) читай (4) с п.7 и далее
|
|||
7
Garykom
гуру
14.08.24
✎
14:30
|
Или ты DBNames копировал но ПолучитьСтруктураХраненияБазыДанных() возвращает старое?
Ну дык пресловутый серверный кэш |
|||
8
lEvGl
гуру
14.08.24
✎
14:35
|
(6) написано по теме, спасибо, но странно что после замены строки целиком в этой таблице, как написал в (0), эта функция не стала отображать старый вариант хранения
(7) гммм ну кэш вряд ли, изменения до этой замены были видны сразу |
|||
9
Garykom
гуру
14.08.24
✎
14:37
|
(8) Так рестарт сервера 1С сделай
Логично же что оно кэширует СтруктураХраненияБазыДанных а не дергает каждый раз из таблицы Params базы |
|||
10
lEvGl
гуру
14.08.24
✎
14:39
|
база1 = база2, один в один
в база2 добавляем новый объект, ПолучитьСтруктуру() все правильно показывает, что теперь в базе2 есть новый и имя его скл таблицы, все ок. Идем на скл и делаем апдейт этой строки в таблице Params для базы2 на основе данных этой же таблицы базы1, то есть подменяем на изначальный вариант, который был до добавления нового объекта, типа как его теперь в ПолучитьСтруктуру() быть не должно, но он есть |
|||
11
lEvGl
гуру
14.08.24
✎
14:43
|
(11) думаешь?... попробовать можно, но ведь добавление нового объекта он сразу увидел..
ну да, добавление штатное, а такая подмена нет, может быть и так, да, попробую |
|||
13
Волшебник
15.08.24
✎
07:51
|
(10) Это нарушает лицензионное соглашение 1С
|
|||
14
Garykom
гуру
15.08.24
✎
12:43
|
(13) Средствами 1С тоже?
Например извратом через ВИД |
|||
15
Волшебник
15.08.24
✎
13:12
|
(14) Тоже
|
|||
17
lEvGl
гуру
15.08.24
✎
13:26
|
(16) не хватает правов, разворачивать свой скл надо
в общем да, в params лежат ид объектов и названия таблиц скл, но связки имя метаданных и ид объекта там нет, думается в schemadb это лежит, если это заменить, то ПолучитьСтруктуру() отрабатывает соответствующим образом + 11 не сработало для получитьструктуру() |
|||
18
vis
15.08.24
✎
13:50
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |