|   |   | 
| 
 | ПолучитьСтруктураХраненияБазыДанных() | ☑ | ||
|---|---|---|---|---|
| 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 | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |