![]() |
|
Структура SQL таблиц | ☑ | ||
---|---|---|---|---|
0
Vbif
06.07.06
✎
11:12
|
Сегодня покопал немного базу однаружил следующее
В таблице Config в поле binarydata записи где filename = 'metadata' находится упакованное описание конфигурации. Сохраненная в файл с помощью консольной команды SQL "textcopy /S имяСервера /D ИмяБазы /U Пользователь /P Пароль /T Config /C BinaryData /W "where FileName = 'metadata'" /F c:\1CV8Config.bin /O /Z" и распакованной утилитой Игоря Павлова undeflat.exe дает нам описание структуры базы. Пример: ".... »¿{1, {13,aa911a53-444b-449a-a3be-4f48047e6017,715a2627-85c0-4bd5-80f5-195c1f0c21a5,10412847-662d-413d-bc32-8d8ed22553e7,abb57a60-4183-4789-92b5-cf74967d7875,45ab55a5-e710-4de9-a895-ef462250bd42,872083c4-9fb6-4c33-8d6f-6d4f4be84b5d,f786131d-ba16-44d2-a39b-0feddd1957b4,95dc43a7-ecbb-4dff-9167-cfc300024cbb, {0, {0, {0,0,29f4356c-7cb5-4bc8-8ee6-c870dab3a9ce},"ДвижениеПоКассе", {1,"ru","Движение по кассе"},""} },00000000-0000-0000-0000-000000000000,1,10,1,1,1,491248b3-ec6e-44ae-b3b9-8a4347806c35,627628b9-b9ae-44e7-aa18-cf6cb5b02515,627628b9-b9ae-44e7-aa18-cf6cb5b02515,0 ...." отсюда можно получить ИД объекта "29f4356c-7cb5-4bc8-8ee6-c870dab3a9ce" !!! из таблицы Params из записи где FileName = 'DBNames' получаем структуру соответсвия вида "{4537, {2571, {00000000-0000-0000-0000-000000000000,"AccntRegOptions",3193}, ... {29f4356c-7cb5-4bc8-8ee6-c870dab3a9ce,"Document",3299}, ..." где по полученному ИДу объекта находим ИМЯ ТАБЛИЦЫ SQL !!!!!!!!!! хотелось бы узнать еще и алгоритм работы undeflat-а и можно написать Компоненту которая по имени объекта вернет имя таблицы может кто знает? |
|||
1
Дяпти
06.07.06
✎
11:18
|
Фантазер мля...
Имя таблицы штатно определяется легко. |
|||
2
Vbif
06.07.06
✎
11:29
|
Да и как? Подскажите фантазеру!!!
|
|||
3
Херрес
06.07.06
✎
11:30
|
А зачем оно нужно, имя таблицы ?
|
|||
4
Vbif
06.07.06
✎
11:32
|
Добраться до данных из другой программы, не из 1С. Через АЛЕ/СОМ - не очень шустро.
|
|||
5
avmlvm
06.07.06
✎
11:42
|
(0) На ИТС есть структура хранения данных в 8-ки на мелкомягком сиквеле...
|
|||
6
Vbif
06.07.06
✎
11:45
|
На каком ИТС? Я что-то не нашел.
А то что есть, получает имена через перехват запросов. Но есть одна особенность - имя может измениться :( |
|||
7
avmlvm
06.07.06
✎
11:50
|
(6) Раздел "Администрирование"
Размещение данных 1С:Предприятия 8.0 Данный документ дает представление о файлах и таблицах баз данных, с которыми работает 1С:Предприятие 8.0, и о распределении между ними информации, используемой 1С:Предприятием 8.0. Рассматриваются как файловый, так и клиент-серверный варианты информационных баз. |
|||
8
MMF
06.07.06
✎
11:58
|
(7) нет там ответа на сабж.
(0) zlib без заголовков. Ты немного рано радуешься :-) тебя ждут неприятные открытия |
|||
9
Vbif
06.07.06
✎
12:02
|
(8) согласен про (7) - все и так ясно было
А что за открытия чудные? |
|||
10
Дяпти
06.07.06
✎
12:06
|
(2) ИмяТаблицыСправочника = "_Reference" + ВыдратьИзСтрокиТоЧтоМеждуВторойЗапятойИДвоеточием(ЗначениеВСтрокуВнутр(Справочники.ИмяСправочникаПустаяСсылка()));
|
|||
11
MMF
06.07.06
✎
12:07
|
(10) из СТОРОННЕГО приложения?
|
|||
12
Дяпти
06.07.06
✎
12:08
|
(11) ему компоненту для 1С хоцца написать.
|
|||
13
Vbif
06.07.06
✎
12:10
|
Где было сказано про 1С? Компоненты есть не только у 1С. Мне, например, надо в Лотус пропихать
|
|||
14
Vbif
06.07.06
✎
12:11
|
Хотя, (10) и вариант. Через ОЛЕ 1С и получение имени таблицы, а потом напрямую к Скулю :)
|
|||
15
Дяпти
06.07.06
✎
12:12
|
(13) Ну давай еще о терминах поспорим. Ты на 1С-ком форуме и "компонентами" тут зовутся внешние компоненты для 1С. А если ты с самого начала имел ввиду что то другое, почему тогда задал вопрос (2)? Что есть для тебя "штатно" без применения к 1С?
|
|||
16
MMF
06.07.06
✎
12:19
|
(14) есть еще вариант: скачать тулзу, которая извлекает метаданные и DBnames, с сайта softpoint-а и они тебе по ним создадут скрипты по созданию вьюшек по всем объектам базы. примерно так:
IF EXISTS (SELECT 1 FROM sysobjects WHERE id = object_id(N'DBO.Справочник_Банки') and OBJECTPROPERTY(id, N'IsView') = 1) DROP VIEW DBO.Справочник_Банки GO CREATE VIEW DBO.Справочник_Банки AS SELECT _IDRRef, _Version, _Marked, _IsMetaData, _Description, _Code, _ParentIDRRef, _Folder, _Fld627 as [КоррСчет], _Fld628 as [Город], _Fld629 as [Адрес], _Fld630 as [Телефоны] FROM _Reference6 GO IF EXISTS (SELECT 1 FROM sysobjects WHERE id = object_id(N'DBO.Справочник_БанковскиеСчета') and OBJECTPROPERTY(id, N'IsView') = 1) DROP VIEW DBO.Справочник_БанковскиеСчета GO CREATE VIEW DBO.Справочник_БанковскиеСчета AS SELECT _IDRRef, _Version, _Marked, _IsMetaData, _Description, _Code, _Fld631 as [НомерСчета], _Fld632RRef as [Банк], _Fld633RRef as [БанкДляРасчетов], _Fld634 as [ТекстКорреспондента], _Fld635 as [ТекстНазначения], _Fld636 as [ВидСчета], _Fld637RRef as [ВалютаДенежныхСредств], _Fld638 as [НомерИДатаРазрешения], _Fld639 as [ДатаОткрытия], _Fld640 as [ДатаЗакрытия], _Fld641 as [МесяцПрописью], _Fld642 as [СуммаБезКопеек], _Fld12345RRef as [КонтрагентДляОграниченияПравДоступа], _Fld12346RRef as [ОрганизацияДляОграниченияПравДоступа] FROM _Reference7 ... Или за готовый парсер договорисся. |
|||
17
Vbif
06.07.06
✎
12:39
|
(15) Не буду спорить. Из всех недопониманий - это самое слабое и им можно пренебречь. За совет (10) скажу просто - спасибо :) ;)
(16) Вот как раз и проблема, что конфа своя, самописанная. И номер таблицы справочника может измениться (из-за этого и весь сыр бор). Да и такой инфы (по строению) не встречал - мож кому пригодиться. Так что всем спасибо за обсуждение. Думаю можно заканчивать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |