#0
by kopilogus
Всем доброго дня, вопрос заключается в следующем. Есть необходимость вытащить из sql таблиц 1С8.1 информацию по одному регистру сведений. select top 2 * from _inforeg18126 дает следующее: _Fld18127_TYPE _Fld18127_RTRef _Fld18127_RRRef _Fld18128 0x08 0x000000A3 0xA50200142A9F9EC911DCCD55B9A168D1 c14f48d5-fa7d-4f5b-9c0c-77dae6ba5bc4 0x08 0x000000C7 0x8098001E0BBF911E11DDF1DEB181F8DE cd82b3e5-49a8-446a-b373-d7c0bce24366 Знаю что данный регистр сведений содержит в себе ссылки на различные элементы справочников, докумнто и прочее. Как понять на какой тип объекта метаданных ссылаются элементы? Например, в приведенном выше запросе что означает ссылка 0x000000A3? Есть ли таблица в которой хранится соответсвие шестнадцатиричного значения и наименования таблицы?
#1
by Defender aka LINN
Найди эту запись в 1С и посмотри. А вообще, это противоречит лицензионному соглашению.
#2
by kopilogus
Знаю, но нужно восстановить некоторые данные из битой базы. Увы, других вариантов нет. :(
#3
by kopilogus
Записей в регистре около 30 000 не вариант каждую запись искать в 1С. Нужно понять принцип ссылок в этом регистре, остально дело за t-sql. Вот только не получается понять. Есть у кого-либо еще идеи??
#5
by smitru
вначале разбираешься со структурой БД (какая таблица к каким методанным 1С относится. Тогда поймёшь какой именно тип данных находится в том или ином столбце и соответственно уже поймёшь с какой таблицей сиквела он связан (опять же по структуре хранения БД в сиквеле)
#6
by kopilogus
Во время перепроведения документов был сбой по питанию, в итоге база вывалилась в Suspect, удалось ее поднять, но в результате получили частичную потерю информации. Есть еще одна sql база, в которой вертится мобильная торговля (Оптимум, мож кто слышал). Так вот, связь объектов между этими двумя базами - это мой регистр сведений. После падения базы 1С, выгрузил ее из центральной заново, но пришлось пересоздать базу Оптимум так как регистр сведений неходит в плане обмена и оказался пустым. Вот теперь нужно восстановить потерянные ссылки на объекты из этого регистра.
#7
by kopilogus
Со структурй проблем нет, знаю что где лежит, но не могу сделать так как не знаю что означает 0x000000A3, 0x000000C7 и так далее
#9
by el-gamberro
это двоичные данные ежли че... в них храняться ид-шники. Сами ид-ники это строка но они преобразованы в бинари. В 8ке для хранения составных типов используется структура хранения данных в 3х полях. Видимо твой случай. Где-то была статья но точно сейчас не скажу где.
#10
by el-gamberro
select top 2 *, CAST(_Fld18127_TYPE as nvarchar(max)) from _inforeg18126 интересно что покажет?
#11
by kopilogus
Если вы имеете ввиду обработку, которая показывает структуру базы данных, то это не то что нужно. Эта обработка может показать только соответствие объектов метаданных 1с таблицам в sql, с указанием полей sql таблиц, но вот описание ссылок элементов на другие элементы таблиц sql я к сожалению не нашел.
#12
by kopilogus
Запрос select top 2 *, CAST(_Fld18127_TYPE as nvarchar(max)) from _inforeg18126 Дал следующее: _Fld18127_TYPE _Fld18127_RTRef _Fld18127_RRRef _Fld18128 (No column name) 0x08 0x000000A3 0xA50200142A9F9EC911DCCD55B9A168D1 c14f48d5-fa7d-4f5b-9c0c-77dae6ba5bc4 0x08 0x000000C7 0x8098001E0BBF911E11DDF1DEB181F8DE cd82b3e5-49a8-446a-b373-d7c0bce24366
#13
by el-gamberro
Если упрощенно то схема такая: Тип Вид Сссылка Документ Реализация 0008 Это судя по всему у тебя и защито в твоей таблице.
#16
by kopilogus
Запрос select top 2 * from _InfoReg18126 Дает _Fld18127_RTRef 0x000000A3 0x000044D1 0x000044DD 0x00004530 0x00000195 0x000000F1 0x000044C2 0x000001AF 0x000000C7 0x00000000 0x00000075 0x00000076 0x000048D8 0x0000007D 0x000000F7 0x00000162 0x00000066 Откуда делаю вывод, что у меня 17 различных типов объектов метаданных в таблице находятся
#17
by kopilogus
Собственно, как понять каким таблицам соответствует каждое значение в этом запросе?
#19
by kopilogus
Не пробовал, потому что в новой базе уже есть новые регистры, сформированные при первой синхронизации с базой Оптимум. Поэтому нельзя их тупо загонять. Неужели нет информации о том, как формируются ссылки на объекты данных в sql. Я так понимаю: поскольку есть значение ссылки, значит sql точно знает, что объекту с сылкой 0x000000A3 соответствует, напрмер, таблица _Reference108 и так далее. Такое соответсвие должно быть описано где-то. Вопрос, где найти его??
#20
by pmb
в поле _Fld18127_RTRef зашита ссылка на таблицу. Попробуй поискать ее по значению этого поля. по идее значению 0x000000A3 должна соответствовать таблица _Reference163. Правда не знаю как определить где справочники а где документы.
#21
by kopilogus
Все равно, что это, главное чтобы по значению поля можно было определить конечную таблицу. pmb, как Вы определили, что это именно _Reference163?
#23
by sash-ml
если ты знаешь какой это регистр, то можно посмотреть какие у него поля составного типа
#25
by kopilogus
Только заметил, что допустил опечатку ранее 6-ю постами. Прошу прощения. Запрос select distinct _Fld18127_RTRef from _InfoReg18126 Дает _Fld18127_RTRef 0x000000A3 0x000044D1 0x000044DD 0x00004530 0x00000195 0x000000F1 0x000044C2 0x000001AF 0x000000C7 0x00000000 0x00000075 0x00000076 0x000048D8 0x0000007D 0x000000F7 0x00000162 0x00000066
#29
by pmb
вот как определить что это будет справочник а документ - х.з. Но по идее номера таблиц не пересекаются, т.е. не должно быть таблицы _Reference163 и _Document163 0x000000A3 - всегда означало 16-ную систему счисления.
#31
by kopilogus
запрос select distinct _Fld18127_TYPE from _InfoReg18126 Дает _Fld18127_TYPE 0x01 0x08
#33
by 1C-Nick
0х08 по идее означает что там только справочники. и все ссылки из это 16-ричные номера таблиц _Reference но странно что 0x000000A3 это _Reference107
#34
by 1C-Nick
можно пойти еще опытным путем залить пустую конфигурацию, и добавить туда записи с разными типами - тогда точно можно определить какой тип какое значение дает. но все должно по идее соответствовать
#35
by kopilogus
Перепроверил еще раз, прошу прощения, действительно таблица _Reference163, это справочник складов.
#36
by kopilogus
Может, во вьюхах что-то полезное будет? Запрос select top 5 * from INFORMATION_SCHEMA.TABLES Дает TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE UPP_Almaty dbo _InfoRegChangeRec14546 BASE TABLE UPP_Almaty dbo _ReferenceChangeRec18621 BASE TABLE UPP_Almaty dbo _ReferenceChangeRec1818 BASE TABLE UPP_Almaty dbo _AccumReg17234 BASE TABLE UPP_Almaty dbo _Document398 BASE TABLE Вот только 16ти ричных описаний не хватает :(
#38
by 1C-Nick
select distinct 'dbo._Reference' + CAST(CAST(_Fld18127_RTRef AS INT) AS VARCHAR) from _InfoReg18126
#39
by 1C-Nick
а дальше если сильно постараться, то можно создать табличку соответствия имен таблиц именам метаданных, заполнить ее из 1С, а потом в соединять в запросе для определения имени метаданных
#40
by sash-ml
да, я когда-то такое делал. Более сложным путем. а тут оказывается можно ПолучитьСтруктуруХраненияБазыДанных взять числовую составляющую, хексануть и будет табличка с описание типов ссылочных объектов :)
#41
by 1C-Nick
ну тогда еще проще ПолучитьСтруктуруХраненияБазыДанных, хексануть и засунуть имя метаданного, и хекс имя таблицы...
#42
by 1C-Nick
хотя я так и не понял конечную цель - получить конкретные имена таблиц или еще что-либо...
#43
by kopilogus
Конечная цель - выяснить как и где хранится соответствие таблиц их 16-тиричным ссылкам.
#47
by kopilogus
А по-моему, просто никто не знает где решение. По крайней мере, в этом топике оно не было озвучено.
#48
by sash-ml
храниться эта беда в таблицах Config, и Params, DBSchema, аднако в зашифрованном виде, так что забудь про прямое получение имен средствами SQL
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Запрет ввода на основании в УТ
- Может ли 1с слушать порт TCP-IP
- ЗУП 26.3 Ограничение прав доступа на уровне записей
- Тип не может использоваться в данных формы
- GUID Запрос в СКД
- Проблема вывода этикеток на печать на Зебру 2844
- Уще раз про "v8: Не создается файл MyServ.1cws при публикации Web-сервиса "
- ГТД в связке УТ и БП
- УТ, возврат товаров поставщику при списании себестоимости "по средней"
- Перенос данных (CDExport.ert -- CDImport.ert). Конвертация данных.
- Чем лучше делать реиндексацию БД, через Конфигуратор или средствами mssql?
- Получить типы субконто в запросе
- Как оптимальнее расселить сервер терминалов, сервер СУБД и сервер 1С на 2 сервера
- запретить распроведение документов
- Ошибка считывания вторичной информации
- Как удалить неуникальные записи SQL-таблицы?
- Сложный отчет на основе ОтчетСписокКроссТаблица или СКД
- Программирование под ТСД на WM
- Как распечатать счет-фактуру полученный
- Административная установка 8.2 - nethasp.ini