Кто нибудь знает, как с помошью Access подключиться к файлу 1С базы с расширением .dbf В настоящий момент научился используя "Файл->Внешние Данные -> Импорт " импортировать данные, но получается хрень какая то с кракозябрами, как их победить знает кто нибудь.
Очень не рекомендую делать такие вещи при работающей 1С. Т.к. если Access заблокирует dbf на какое-то время, и если в этот момент 1с захочет из него чего-нибудь прочитать или в него чего-нибудь записать, то она сделать этого не сможет, и огорчиться, а заодно (при записи) могут возникнуть коллизии с данными. Да и вообще, зачем нужно это подключение - непонятно. Если хочется наладить обмен данными с внешним источником - обычно по-другому это делается: из 1С можно через ADO закинуть всю инфу напрямую в базу Access.
заблокировать dbf ну никак не получится, т.к. dbf уже открыт 1с-ом, заблокировать можно до запуска 1с, но тогда она просто не запустится. добавлено через 23 минуты DimasShishkin, попробуй импортировать через фокспрошный ODBC драйвер У тебя кракозябры из-за перекодировки WIN->DOS или Кириллица->Западноевропейская?
Ребят, ничего что в таблицах 1С много данных хранятся как ссылки на другие записи других таблиц, да еще в 36ричной системе исчисления Ну прочитаете вы простые типы - число, строка, дата. Ну и все, собственно. А дальше? посмотрите файл *.DD или .DDS на досуге
MenBS, Про SELECT FROM смотрел? Им можно из разных таблиц одновременно данные получать. И даже по ссылкам в 36ричной системе счисления. И думаю даже по 40ричной, хоть она в 1с и не используется. Вот если где объект неопределенного вида встречается, то да, тогда заморочки. Но это редкость.
вам понятие "метаданные" знакомо? вы как определите из каких _конкретно_ разных таблиц данные взять? с учетом того что тип данных хранится в метаданных, ссылка хранится в самой таблице без указания типа, а тип хранится в названии поля вы хорошо в структуре хранения данных разбираетесь в 1с? вы в курсе что есть два вида идентификаторов - 13 символьный (с типом) и 9 символьный (без типа). или вы просто теоритически заявляете возможность использования select from? вы хоть файлы которые я назвал смотрели-то? Флаг вам в руки... сделать можно, конечно, я не спорю... трахайтесь.
а собственно в чем проблема-то? ну смотрели и смотрим. что собственно страшного мы там должны увидеть? обыкновенное описание структуры помогающее правильно написать запрос. при чем здесь вообще идентификаторы? а что это за такой тип данных "без типа"(родила царица в ночь не то сына не то дочь??? так что=ли) ? он в базе как хранится? сами-то поняли что написали?
я сам не просто понял... я сам писал такие вещи. имхо реально легче писать их из 1с, а не через внешние вещи, вручную отслеживая структуру хранения и взаимосвязи таблиц. но ради бога дерзайте. про тип без типа. в таблицах 1с ссылки хранятся ввиде 9 символьных ключей. но в какой таблице искать этот ключ определить невозможно без анализа стуктуры таблиц ну или тех самых файлов. ссылку надо искать в нужной таблице,а не просто так. ну и с учетом того что наименования таблиц могут при определенных условиях менятся... то и запрос с жестким указанием номеров таблиц придется переписывать. или писать уневерсальный парсер структуры. тоже можно. но вообще говорят можно гланды через **** лечить... или вот апендецит через влагалище удалили недавно... тож революция в медецине добавлено через 13 минут а ващето в 1с есть такая хрень как пустой объект неопределенного вида... "родила царица в ночь не то сына не то дочь" это как раз про это...
IMHO, это неправильный подход. Так как из 1ц к базам Access можно легко и просто подключаться через ADO, и передавать туда данные одинэсных баз.