Имя: Пароль:
1C
 
Индексы SQL достать из 1с
,
0 LeoKeyn
 
26.10.17
12:30
Здравствуйте. Подскажите, пожалуйта, есть ли способ достать из 1с индексы присвоенные полям(реквизитам) в SQL. К примеру такого вида:
_Fld4347 as ОстатокКомиссия.
Очень нужно бы достать их :)
1 Fragster
 
гуру
26.10.17
12:34
Глобальный контекст.ПолучитьСтруктуруХраненияБазыДанных (Global context.GetDBStorageStructureInfo)
Глобальный контекст (Global context)
ПолучитьСтруктуруХраненияБазыДанных (GetDBStorageStructureInfo)
Синтаксис:

ПолучитьСтруктуруХраненияБазыДанных(<ОбъектыМетаданных>, <ИменаБазыДанных>)
Параметры:

<ОбъектыМетаданных> (необязательный)

Тип: Массив.
Массив имен объектов метаданных или массив объектов метаданных, для которых требуется получить структуру таблиц базы данных.
<ИменаБазыДанных> (необязательный)

Тип: Булево.
Определяет, в каких терминах выдается информация о структуре хранения.
Истина - в терминах СУБД.
Ложь - в терминах модели базы данных 1С:Предприятия.
Значение по умолчанию: Ложь.
Возвращаемое значение:

Тип: ТаблицаЗначений.
Возвращает таблицу значений с описаниями структуры таблиц, индексов и полей базы данных в терминах модели базы данных 1С:Предприятия или используемой СУБД, в зависимости от значения параметра <ИменаБазыДанных>.
Если параметр не используется, то возвращаемая таблица значений содержит информацию о структуре таблиц базы данных всех объектов метаданных.
Таблица значений включает следующие колонки:
ИмяТаблицыХранения(StorageTableName) – имя таблицы модели базы данных 1С:Предприятия или базы данных;
ИмяТаблицы(TableName) – имя таблицы в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных;
Назначение(Purpose) – назначение таблицы:
Основная(Main) – основная;
Константы(Constants) – константы;
Итоги(Totals) – итоги;
Обороты(Turnovers) – обороты;
ИтогиПоСчетам(TotalsByAccounts) – итоги по счетам;
ИтогиПоСчетамССубконто(TotalsByAccountsWithExtDim) – итоги по счетам с субконто;
ИтогиМеждуСчетами(TotalsBetweenAccounts) – обороты между счетами;
ИтогиСрезПервых(TotalsSliceFirst) – итоги срез первых регистра сведений;
ИтогиСрезПоследних(TotalsSliceLast) – итоги срез последних регистра сведений;
ВидыСубконто(ExtDimensionTypes) – виды субконто;
ЗначенияСубконто(ExtDimensionsValues) – значения субконто;
ВытесняющиеВидыРасчета(DisplacingCalculationTypes) – вытесняющие виды расчета;
ПорядокВытеснения(DisplacementOrder) – порядок вытеснения;
ВедущиеВидыРасчета(LeadingCalculationTypes) – ведущие виды расчета;
БазовыеВидыРасчета(BaseCalculationTypes) – базовые виды расчета;
ПериодыДействия(ActionPeriods) – периоды действия;
ГраницыПоследовательности(SequenceBoundaries) – границы последовательности;
ТочкиМаршрута(RoutePoints) – точки маршрута бизнес–процесса;
ТабличнаяЧасть(TabularSection) – табличная часть;
РегистрацияИзменений(ChangeRecord) – регистрация изменений;
РегистрацияИзмененийКонстант(ConstantsChangeRecord) – регистрация изменений констант;
РегистрацияИзмененийКонфигурации(ConfigChangeRecord) – регистрация изменений конфигурации;
РегистрацияИзмененийВнешнихСвойствКонфигурации(ConfigExtPropertiesChangeRecord) – регистрация изменений внешних свойств конфигурации;
CтатистикаЗапросов(AccumRgSt) – таблица статистики запросов;
НовыеОбороты(AccumRgDl) – таблица новых оборотов по регистру;
БуферОборотов (AccumRgBf) – таблица буфера оборотов по регистру;
НастройкиРежимаАгрегатовРегистровНакопления(AccumRgAggOpt) – таблица настроек режима агрегатов регистра накопления;
КодыИзмеренийАгрегатовРегистровНакопления(AccumRgAggDims) – таблица кодов измерений регистра накопления в агрегатах;
СписокАгрегатовРегистровНакопления (AccumRgAggGrid) – таблица списка агрегатов регистра накопления;
ХранилищеСистемныхНастроек(SystemSettings) – хранилище системных настроек;
ХранилищеОбщихНастроек(CommonSettings) – хранилище общих настроек;
ХранилищеПользовательскихНастроекОтчетов (ReportsSettings) – хранилище пользовательских настроек отчетов;
ХранилищеВариантовОтчетов(ReportVariants) – хранилище вариантов отчета;
ХранилищеНастроекДанныхФорм(FrmDtSettings) – хранилище настроек данных форм;
АгрегатРегистраНакопления(AccumRegAgg) – таблица агрегата регистра накопления;
ИсторияРаботыПользователей (UsersHistoryStorage) – история работы пользователей;
Задача(Task) – таблица задач бизнесс процесса;
НастройкиХраненияИтоговРегистровБухгалтерии(AccountRegistersOptionsTable) – таблица настроек хранения итогов регистров бухгалтерии;
НастройкиХраненияИтоговРегистровНакопления(AccumulationRegistersOptionsTable) – таблица настроек хранения итогов регистров накопления;
НастройкиХраненияИтоговРегистраБухгалтерии(AccountRegisterTotalsOptions) – таблица настроек хранения итогов регистра бухгалтерии;
НастройкиХраненияИтоговРегистраНакопления(AccumulationRegisterOptionsTable) – таблица настроек хранения итогов регистра накопления;
НастройкиХраненияИтоговРегистраСведений(InformationRegisterTotalsOptions) – таблица настроек использования итогов среза первых и среза последних регистра сведений;
НастройкиСтандартногоИнтерфейсаOData (StandardODataInterfaceOptions) – таблица настроек стандартного интерфейса OData;
ИнформацияОРасширенияхКонфигурации(ConfigurationExtensionsInformation) - информация о расширениях конфигурации, записанных в базу данных;
НастройкиПлановСчетов(ChartsOfAccountsOptions) – настройки планов счетов;
НастройкиПлановВидовХарактеристик(ChartsOfCharacteristicTypesOptions) – настройки планов видов характеристик;
НастройкиПлановВидовРасчетов(ChartsOfCalculationTypesOptions) – настройки планов видов расчета;
НастройкиСпискаАгрегатов(AccumRgAggOptions) – настройки списка агрегатов;
НастройкиСправочников(ReferenceOptions) – настройки справочников;
ИнициализированныеПредопределенныеДанныеПланаВидовХарактеристик(InitializedPredefinedDataInChartOfCharacteristicTypes) – таблица проинициализированных предопределенных данных плана видов характеристик;
ИнициализированныеПредопределенныеДанныеПланаСчетов(InitializedPredefinedDataInChartOfAccounts) – таблица инициализированных предопределенных данных плана счетов;
ИнициализированныеПредопределенныеДанныеПланаВидовРасчета(InitializedPredefinedDataInChartOfCalculationTypes) – таблица проинициализированных элементов плана расчетов;
ИнициализированныеПредопределенныеДанныеСправочника(InitializedPredefinedDataInCatalog) – таблица проинициализированных предопределенных данных справочника;
ИнформацияОРасширенияхКонфигурации/ConfigurationExtensionsInformation - информация о расширениях конфигурации, записанных в базу данных
Поля(Fields) – таблица значений с полями таблицы базы данных:
ИмяПоляХранения(StorageFieldName) – имя поля модели базы данных 1С:Предприятия или базы данных;
ИмяПоля(FieldName) – имя поля в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных;
Индексы(Indexes) – таблица значений с индексами таблицы базы данных;
ИмяИндексаХранения(StorageIndexName) – имя индекса модели базы данных 1С:Предприятия или базы данных;
Поля(Fields) – таблица значений с полями индекса:
ИмяПоляХранения(StorageFieldName) – имя поля модели базы данных 1С:Предприятия или базы данных;
ИмяПоля(FieldName) – имя поля в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных.

Примечание. Количество и состав таблиц, полей и индексов могут отличаться в зависимости от значения параметра ИменаБазыДанных.
Описание:

Получает информацию о структуре таблиц базы данных для переданных в качестве параметра массива имен объектов метаданных или массива объектов метаданных для административных действий с ней.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Следует использовать метод только для административных задач обслуживания базы данных и анализа записей технологического журнала. Не следует применять метод для реализации какой-либо части прикладной функциональности.
При изменениях в версиях часть изменений выполняется не сразу, а во время реструктуризации объектов или полной рекструктуризации. Такие изменения отмечаются в списке изменений. Метод возвращает структуру, которая будет получена после реструктуризации.
Пример:

МассивИменМетаданных = Новый Массив();
МассивИменМетаданных.Добавить("Справочник.Номенклатура");
МассивИменМетаданных.Добавить("Документ.РасходнаяНакладная");
СтруктБД=ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);


--------------------------------------------------------------------------------

     Методическая информация
2 LeoKeyn
 
26.10.17
12:37
(1) Спасибо большое, сейчас попробую
3 LeoKeyn
 
26.10.17
12:45
Не совсем могу понять, если честно, как вытащить то строку подобного типа:
_Fld4347 as ОстатокКомиссия
Похоже туплю, сможете подсказать?
4 LeoKeyn
 
26.10.17
12:49
(3) Все, я разобрался спасибо большое   Fragster, что направил :)
5 LeoKeyn
 
26.10.17
12:56
(1) Еще вопросик, так я достаю структуру хранения таблиц, а как достать структуру хранения реквизитов этой таблицы? :)
6 catena
 
26.10.17
13:08
Возвращает таблицу значений с описаниями структуры таблиц, индексов и полей базы данных в терминах модели базы данных 1С:Предприятия или используемой СУБД, в зависимости от значения параметра <ИменаБазыДанных>.
.......
Поля(Fields) – таблица значений с полями таблицы базы данных:
ИмяПоляХранения(StorageFieldName) – имя поля модели базы данных 1С:Предприятия или базы данных;
ИмяПоля(FieldName) – имя поля в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных;
Индексы(Indexes) – таблица значений с индексами таблицы базы данных;
ИмяИндексаХранения(StorageIndexName) – имя индекса модели базы данных 1С:Предприятия или базы данных;
Поля(Fields) – таблица значений с полями индекса:
ИмяПоляХранения(StorageFieldName) – имя поля модели базы данных 1С:Предприятия или базы данных;
ИмяПоля(FieldName) – имя поля в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных.
7 LeoKeyn
 
26.10.17
13:14
(6) Document200        Документ.СудебноеРешениеПоИску    Документ.СудебноеРешениеПоИску    Основная        
Document200.VT5019        Документ.СудебноеРешениеПоИску.ДополнительныеРеквизиты    Документ.СудебноеРешениеПоИску.ТабличнаяЧасть.ДополнительныеРеквизиты    ТабличнаяЧасть        
Document200.VT5024        Документ.СудебноеРешениеПоИску.ВводОстатков    Документ.СудебноеРешениеПоИску.ТабличнаяЧасть.ВводОстатков    ТабличнаяЧасть        
не хочет он поля возвращать так же
8 LeoKeyn
 
26.10.17
13:15
(7) Индексы таблиц есть, а вот полей
9 Fragster
 
гуру
26.10.17
13:16
всё есть
10 catena
 
26.10.17
13:21
(7)Удивительно.

МассивИменМетаданных = Новый Массив();
МассивИменМетаданных.Добавить("Справочник.ФизическиеЛица");
т = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);
Для каждого стр из т цикл
    ОбработкаПрерыванияПользователя();
    сообщить(стр.Метаданные+" - "+стр.ИмяТаблицыХранения);
    Для каждого стр1 из стр.Поля цикл
        Сообщить("        "+стр1.ИмяПоля+" - "+стр1.ИмяПоляХранения);
    КонецЦикла;    
конецЦикла;

Справочник.ФизическиеЛица.ТабличнаяЧасть.Стажи - Reference122.VT2152
        НомерСтроки - LineNo2153
        ВидСтажа - Fld2154
        ДатаОтсчета - Fld2155
        РазмерМесяцев - Fld2156
        РазмерДней - Fld2157
        ДатаОкончания - Fld18542
11 LeoKeyn
 
26.10.17
13:37
(10) Спасибо тебе огроменное за помощь :) так и вылезу скоро из новичков :)
12 LeoKeyn
 
26.10.17
13:38
(10) Все круто, все получилось просто шикарно, спасибо большое еще раз :)
13 Alligator219
 
26.10.17
13:45
(12) Как могло получиться, если 1с через ПолучитьСтруктуруХраненияБазыДанных  отдает не все индексы?
14 LeoKeyn
 
26.10.17
13:46
(13) мне все нужные поотдавал :)
15 Dmitrii
 
гуру
26.10.17
14:18
Остался один вопрос - нафейхуя оно автору надо?
Или он со своими глубоки познаниями сейчас в базу данных на скуле полезет индексы расставлять по-новому?....
16 LeoKeyn
 
26.10.17
14:53
(15) Грубовато...
а нужно это для загрузки в 1с базы из SQl. Мне сказали я делаю
17 Жан Пердежон
 
26.10.17
15:14
(16) зато правда. Индексы-то тебе зачем?
18 Dmitrii
 
гуру
26.10.17
15:19
(16) >> Мне сказали я делаю

Удачи!

Для справки: загрузка средствами SQL не даст тебе консистентных данных. Во всяком случае не с твоим уровнем знаний.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой