Как установить драйвер адо 1с
← →
Iova © ( 2005-05-30 19:49 ) [0]
Какие драйверы можно использовать для подключения 1С через АДО?
← →Anatoly Podgoretsky © ( 2005-05-30 19:56 ) [1]
А причем тут АДО?
← →Iova © ( 2005-05-30 20:03 ) [2]
Я делаю прогу для работы с различными базами данных. У меня уже сделано для Accessа и InterBasа и чтобы ничего сильно не менять хотелось бы работу с 1С сделать через ADO. Мне нужно подключиться к справочникам 1С но я не знаю какие дрова использовать.
Мне говорили что можно обращаться с помощью SQL запросов.
Anatoly Podgoretsky © ( 2005-05-30 20:08 ) [3]
1C это приложение, а не база. Вот ее базами можешь общаться как хочешь. Но вроде бы 1С является сервером автоматизации.
← →Fay © ( 2005-05-30 21:14 ) [4]
Iova © (30.05.05 19:49)
Документация фирменная есть?
Danilka © ( 2005-05-31 08:09 ) [5]
[2] Iova © (30.05.05 20:03)
> Мне нужно подключиться к справочникам 1С но я не знаю какие
> дрова использовать.
Для начала, какая 1с-ка? Если самая распостраненная на сегодняшний день, версия 7.7, то у нее база лежит либо в MS-SQL либо в DBF.
Если база 1с-ки лежит в МС-Сиквеле, то можно подключится к нему через АДО.
Если база лежит в ДБФ-ках, то, скорее всего, никак - если он ошибаюсь, они там нахимичили с заголовками ДБФ, в результате кодировка любыми движками определяется неправильно.
В любом случае, если у каких-то справочников есть периодические реквизиты, то геморой будет еще тот - они все для всех справочников лежат в одной таблице, вместе с константами и разобрацца где что и почем будет очень тяжело.
Самый простой вариант - подключаться к самой 1с-ке через ОЛЕ и работать с ней на ее языке.
Iova © ( 2005-06-01 10:04 ) [6]
>Danilka
Версия у меня 7.7 и справочники храняться в DBF формате.
Значит их нельзя рассматривать как файлы DBase с драйвером
Microsoft OLE DB provider for ODBC Drivers .
Через OLE работать будет сложно т.к. язык 1С я сам толком незнаю(например как получить список справочников БД 1С и передать их в ListBox).
Кстати я читал хелп по 1С и там вроде как утверждали что 1С поддерживает язык SQL, но если поддерживает, то как его использовать.
PS: Что за вариант баз данных в МС-Сиквел. Я пока про такой еще ничего не слышал.
Тучудище ( 2005-06-01 10:10 ) [7]
Очень даже просто можно работать со справочниками в 1С Базе данных через OLE сам неоднократно делал, файлы там Dbase IV и проблем с кодировкой у меня не было никогда, единственное но значения т.н. перечислений получить не удасться ибо зашиты в MD и с реквезитами неопределенного типа тоже гимора полнейшая
← →sniknik © ( 2005-06-01 10:30 ) [8]
> Если база лежит в ДБФ-ках, то, скорее всего, никак - если он ошибаюсь, они там нахимичили с заголовками ДБФ, в результате кодировка
> любыми движками определяется неправильно.
ошибаешся, ничего не нахимичили, стандартный foxpro. подключится можно через ODBC Visual Foxpro Driver (или OLEBD VFP, но его чаще доставлять нужно)
Danilka © ( 2005-06-01 10:34 ) [9]
[6] Iova © (01.06.05 10:04)
> Через OLE работать будет сложно т.к. язык 1С я сам толком
> незнаю
Придецца разбирацца, иначе - никак.
>(например как получить список справочников БД 1С и
> передать их в ListBox).
Очень просто, я тебе еще в прошлой ветке привел пример на 2 строчки :)
> Кстати я читал хелп по 1С и там вроде как утверждали что
> 1С поддерживает язык SQL, но если поддерживает, то как его
> использовать.
У них не SQL, а собственный язык запросов.
> PS: Что за вариант баз данных в МС-Сиквел. Я пока про такой
> еще ничего не слышал.
МС-Сиквел - MS SQL. Слово SQL буржуи произносят как "сиквел". :))
[7] Тучудище (01.06.05 10:10)
> файлы там Dbase IV и проблем с кодировкой у меня не было
Ну, значит я ошибался. :) Однако, на счет гемороя - присоединяюсь.
sniknik © ( 2005-06-01 10:37 ) [10]
> файлы там Dbase IV и проблем с кодировкой у меня не было
возможно (возможно вообще все) и есть разные модификации 1С(вернее баз), какието и с Dbase IV, но я пока встречал только две - Foxpro и MSSQL.
Danilka © ( 2005-06-01 10:38 ) [11]
[8] sniknik © (01.06.05 10:30)
Если честно, последний раз когда пробовал напрямую к дбф-кам 1С цепляться - это было года 2-2.5 назад, ихний КЛАДР (тогда налоговая раздавала его в кодировке 866, а в 1С-ке использовали свой - сконвертированый в 1251), вероятно из-за этого и были проблемы. Но где-то и еще читал про такую проблему.
Да я, вобщем-то, честно написал: "если не ошибаюсь". :))
Тучудище ( 2005-06-01 11:39 ) [12]
>sniknik
ядро не ниже 18 файлы 100% dbase4 это для DBF
>Danilka
языковые установки бд выбираются в момент конфигурирования системы
Danilka © ( 2005-06-01 11:42 ) [13]
[12] Тучудище (01.06.05 11:39)
> языковые установки бд выбираются в момент конфигурирования
> системы
ты о чем? :)
sniknik © ( 2005-06-01 11:48 ) [14]
> ядро не ниже 18 файлы 100% dbase4 это для DBF
т.е. и индексные файлы у тебя в 1С имеют расширение .mdx (на крайний случай .mdx)? ;)
sniknik © ( 2005-06-01 11:51 ) [15]
> (на крайний случай .mdx)
$о))
читать - (на крайний случай .ndx)
jiny ( 2005-06-02 13:15 ) [16]
Все верно, работать c 1C нужно через OLE Automation Server на ее родном языке, и уже не важно какая она SQL или DBF версия, и к тому и к этому есть способы подключения .
если хочешь могу скинуть на мыло статьи по подключению к 1С и работе со справочниками и выражениями.Скинь адрес мне на мыло
zhas-trz@tarazinfo.kz
VadimX ( 2005-06-29 10:55 ) [17]
И все-таки.
Как быть, если нужен прямой доступ к DBF(без использования OLE Automation Server)
При стандартном подключении через ADO ADBC Driver
Таблицы видятся, но кодировка другая.
Причем таблицы Win-1251 а DELPHI их зачем-то перекодирует.
Есть ли стандартное решение?
← →size=20 ( 2005-06-29 11:03 ) [18]
мдя. а почему не к текстовым файлам например?
я делал интеграцию наоборот с 1С к своей СУБД. Все получилось через ADO
VadimX ( 2005-06-29 11:17 ) [19]
Ну тогда, плиз, по шагам как ты это делал.
Может я где-то что-то упустил.
Anatoly Podgoretsky © ( 2005-06-29 11:26 ) [20]
Iova © (01.06.05 10:04) [6]
Никаких дополнительных средств для подключения а таблицам не надо (хотя и можно), тот же самый провайдер, что и для Акцесс.
Но как многократно сказано так делать не надо, смерть наступит весьма быстро, хорошо если только базы.
Для работы с 1С надо использовать ОЛЕ автоматизацию.
← →sniknik © ( 2005-06-29 11:28 ) [21]
> При стандартном подключении через ADO ADBC Driver
в ADO вообще не стандартов. какого провайдера подключиш тот и стандарт (на данный момент).
> Ну тогда, плиз, по шагам как ты это делал.
> Может я где-то что-то упустил.
что тебе непонятно в шаге №1
> . подключится можно через ODBC Visual Foxpro Driver (или OLEBD VFP, но его чаще доставлять нужно)
.
sniknik © ( 2005-06-29 11:37 ) [22]
> . тот же самый провайдер, что и для Акцесс.
настройку xBase.DataCodePage тогда надо сменить на ANSI с OEM которая по умолчанию. (в реестре у jet-овского isam-а).
VadimX ( 2005-06-29 11:40 ) [23]
>> . тот же самый провайдер, что и для Акцесс.
>настройку xBase.DataCodePage тогда надо сменить на ANSI с OEM >которая по умолчанию. (в реестре у jet-овского isam-а).
Какая ветвь реестра?
← →sniknik © ( 2005-06-29 11:55 ) [24]
> Какая ветвь реестра?
поиск не работает?
а вот не скажу. тем более, что это не нужно, для фоксовых таблиц всетаки более подходит фоксовый же драйвер.
поддержка jet-ом фокса прекратилась с версии 3.5 по какимто видимо политическим мотивам, и если оно еще работает то только изза небрежности тамошних программистов. забыли вынуть, или это трудно сделать изза завязки с dbase, или изза поддержки совместимости уже написанного. т.д.
VadimX ( 2005-06-29 12:37 ) [25]
>> Какая ветвь реестра?
>поиск не работает?
работает. у меня такой нет.
Так все-таки.
Какой драйвер использовать?
Пожалуйста укажите название полностью, а то у меня
от Фокса 2-3 штуки и не понятно с каким именно разбираться.
Anatoly Podgoretsky © ( 2005-06-29 12:40 ) [26]
sniknik © (29.06.05 11:37) [22]
А точнее в соответствии с исходной таблице. Тут некоторые утверждают, что там мол dBase IV, но я этому не верю, по моим сведеньяс вроде бы все таки ФоксПро, а для него естественно лучше использовать другого провайдера, чем Jet.OleDb
VadimX ( 2005-06-29 12:45 ) [27]
А какой LANGDRIVER
выставлять?
sniknik © ( 2005-06-29 13:40 ) [28]
Anatoly Podgoretsky © (29.06.05 12:40) [26]
> по моим сведеньяс вроде бы все таки ФоксПро
естественно. если только за последнее время в dBase не переняли индексы *.cdx. ;о))
VadimX (29.06.05 12:37) [25]
> от Фокса 2-3 штуки и не понятно с каким именно разбираться.
а у меня он один. и то только тот что я сам поставил. (винда XP SP2/MADK 2.7 по умолчанию, с 2.6 fox в него не включается.)
вот DSN-ов фокса 2, не вижу чем их описание тебе поможет, у тебя их нет, оба мной были руками прописаны.
VadimX (29.06.05 12:45) [27]
> А какой LANGDRIVER
> выставлять?
где? вроде про ADO разговор (см. [0]), а LANGDRIVER принадлежность BDE.
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
После обновления на платформу 8.3.19.1467 перестала работать обработка загрузки в бухгалтерию (АА 5).
Виснет на этапе инициализации ADO.
На форме "идет загрузка".
Что можно сделать?
Путем тестов установлено: если у вас 64 разрядный сервер, любой клиент(32 или 64) и вам нужно использовать ADO (например синхронизация БП и Альфа-Авто 5) - 19 и 20 платформы не для вас. Оставайтесь на 18 платформе.
На 18 платформе все работает, на 19 и 20 (под теми же пользователями и разрешениями - просто меняем запуск в реестре) - не работает. Явно что-то сломали в новых платформах. Как новая обработка это решит - не знаю.
Спрошу в этой теме так проблема аналогичная -для работы БП30 обновили платформу 1с до 8.3.20 (Альфа Авто осталась на старой платформе)..При выгрузке из Альфа Авто механизм работает нормально, а при загрузке -либо вообще не может получить доступ к файлу , либо виснет намертво еще на этапе настройки соответствии.(сейчас уже часов 5 висит на одном компе). Проблема проявилась сразу на разных компьютерах у нескольких бухгалтеров, при этом ничего кроме платформы на них не менялось.
Какие рекомендации есть по устранению проблемы?
Здравствуйте. У меня была похожая проблема. Зависало на этапе входа в таблицу соответствия. Решилось новой версией обработки от отдела Альфа-Авто и переходом таблицы соответствия на Регистр. Есть там такая галочка, в обработке загрузки в бп.
После получения актуальной обработки загрузки в БП 3.0 ситуация не изменилась-все также на платформе 8.3,20.1674 загрузка виснет намертво. В копии при откате на платформу 8.3.18.-загрузка прошла , но очень медленноооооо- два документа грузились минут 20.Делал все на копии.
Так как типовые конфигурации 1с Бухгалтерии все настойчивее требуют использование последних версий платформы (а именно 8.3.20 на текущий момент), хотел получить рекомендации, пояснения , указания-а что делать то в сложившейся ситуации?
Откатываться назад на 18 платформу всю нашу "экосистему 1с" в реальной ситуации -когда несколько баз бухгалтерии и пара серверов уже работают на 20 платформе -это как то не нормально.
Причина хоть определена сбоев загрузки?
Сообщите, пожалуйста, есть какие то подвижки в решении вопроса проблемы загрузки в бухгалтерию? Нужно январь месяц закрывать -информацию не можем перенести в БП 3.0
Добрый день! Обработка для Облака Вам отправлена на почту. Проверьте при помощи неё и отпишитесь, пожалуйста, помогла или нет. И, уточните, пожалуйста, в обработке какой режим загрузки выбирали На клиенте или На сервере?
Сейчас свежую копию готовлю бухгалтерии-буду тестить в ней. А до этого пробовали и на Клиенте и на Сервере, пробовали менять битность драйверов и платформы (на 64 битном варианте -вообще не запустилась обработка, вывалилась с ошибкой на драйвера ADO).Пробовали выгружать в файловый варинат. Ошибка однотипгная -зависает намертво либо пр выборе файла соответствия либо сама загрузка
При попытки на копи выбрать файл соответствия выдало:
Ошибка открытия ТС:: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Был очищен путь к таблице соотвестствий так как файла на диске нет.
Прочтите справку обработки по галочке "Использовать АДО" для получения информации как устанавливать драйвер АДО.
Ошибка открытия ТС:: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Прочтите справку обработки по галочке "Использовать АДО" для получения информации как устанавливать драйвер АДО.
Это первая ошибка
Ошибка открытия ТС:: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Был очищен путь к таблице соотвестствий так как файла на диске нет.
Прочтите справку обработки по галочке "Использовать АДО" для получения информации как устанавливать драйвер АДО.
Ошибка открытия ТС:: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Прочтите справку обработки по галочке "Использовать АДО" для получения информации как устанавливать драйвер АДО.
Победил ошибку, указанную выше, переустановкой драйверов на сервере.
В итоге :
Есть обработка : Загрузка_в_БП_3.0(8.3)_2022.02.01_17;51;44
она не работает- происходят зависания при считывании файла DBF или при загрузке самого файла обмена.
При использовании обработки: oblako_Загрузка_в_БП_3.0(8.3)_вариант от 20.01
Все прошло нормально.
Т.е. более ранняя версия работает корректно. При сравнении кода модуля видно что закомментированы методы работы с индексами таблицы DBF. (Конкретно, как я понял, влияет метод Seek из ADO). Ну еще местами вообще закомментирован вызов механизма ADO.
Скорее всего произошло наложение обновлений 19,20 платформ и обновление самой обработки загрузки-так как на 18 платформе новые версии обработки работают нормально.
На будущее -нужно тщательнее проверять режимы совместимости платформ и обработок (хотя кто это за ранее может знать?)
а кто-нибудь сравнивал скорость работы обработки на больших таблицах соответствий
при файловом расположении ТС и в регистре .
пару лет назад при работе с регистром работало намного медленнее,
т.к. сначала всю ТС из регистра читало в промежуточную рабочую ТС..
Цитата |
---|
написал: а кто-нибудь сравнивал скорость работы обработки на больших таблицах соответствий при файловом расположении ТС и в регистре . пару лет назад при работе с регистром работало намного медленнее, т.к. сначала всю ТС из регистра читало в промежуточную рабочую ТС.. |
Я несколько лет назад перевел одну организацию на хранение идентификаторов в доп. реквизитах объектов (это не Рарусовский механизм). Причина -пользователи постоянно теряли файл ДБФ или он "портился" при каких-нибудь коллизиях в работе системы или сети. Меня это тогда за. ло сильно, механизма ADO толи не было, толи он только начинал внедряться-сейчас не помню. Пришлось своё хранилище изобретать. База работает где то с 2013 года.
В итоге выводы такие: сначала было очень шустро. Где то года через 2 начались заметные замедления при загрузки. Сейчас, сравнивая обмен по этой организации и другой , у которой обмен по ADO настроен (но объем примерно такой же)могу сказать скорость примерно одинаковая, может быть временами мой механизм медленнее работает. Но это все субъективно- специально не проверками не заморачивался
Далее пытаюсь загрузить на SQL сервере. Исходные данные: Сервер 64 бит , 1с 64 бит , клиент -и 64 и 32 бита. Платформа 8.3.20. Файла ads.ini с содержимым:
[SETTINGS]
MTIER_LOCAL_CONNECTIONS=1
Скопирован в каталоги платформы 8.3.20 на клиенте и на сервере
Скопирован в каталоги
C:\Program Files (x86)\Advantage 11.10\OLEDB
C:\Program Files\Advantage 11.10\OLEDB
на клиенте и на сервере.
Драйвера ADO установлены из самой обработки –на клиенте и на сервере.(оба файла adsoledb_x86_64 и oledb устанавливал, которые идут в комплекте)
Файл DBFимеет размер 243 Мб, количество записей где-то 720000. Файл редактором dbf открывается, ошибок не выдает.
Ошибка совместного доступа к файлу 'C:\Users\USR1CV82\AppData\Local\Temp\TS_BP.DBF'. 32(0x00000020): Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
В итоге как я понял у нас происходит блокировка темповского файла на сервере…..AppData\Local\Temp\TS_BP.DBF' –но я не понимаю по какой причине.
При этом на рабочем сервере (в ДРУГОЕ время) запускались загрузки в другие базы с Бухгалтерии –там медленно , но загрузка проходит.
Я моделировал ситуацию на отдельном сервере –на нем нет других пользователей ,кроме меня. Проблема такая же остается
Вопрос –как и что и где нужно настроить ,что бы не происходила блокировка файла dbf?
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Альфа-Авто:Автосервис+Автозапчасти, ред. 5, релиз 5.1.04.04, производится выгрузка данных в 1С:Бухгалтерию 8, ред. 3.0.
Внезапно (возможно, после обновления релиза платформы и/или релиза конфигурации 1С:УКФ) перестала корректно работать загрузка данных в 1С:Бухгалтерию. Почему-то обработка загрузки ругается на невозможность в dbf-файле (файл соответствий) найти менеджер объекта, а дальше кракозябры. Такое впечатление, что ищется менеджер объекта русскими буквами в западноевропейской кодовой странице. Базы и та и другая клиент-серверные, СУБД IBM DB2. Выгрузка работает с 2013 года, и проблем такого рода никогда не было. Обновления на операционные системы в период, когда "сломалась" загрузка, не ставились ни на сервера, ни на рабочие станции.
Скачал программу dbf-редактора. Обратил внимание на особенность: если открыть файл ts.dbf в терминальном сеансе сервера, на котором крутится процесс rphost, то в файле именно такие кракозябры. А вот если открыть ТОТ ЖЕ файл ТЕМ ЖЕ dbf-редактором на рабочей станции, с которой запускается обмен, то в файле всё по-русски.
Что делать? Как восстановить обмен?
Добрый день, Алексей, уточните, пожалуйста, скрин ошибки, которая у Вас возникает при загрузке данных в БП3,0.
Скрин ошибки выложу чуть позже.
Проблема в том, что почему-то клиентская часть и серверная часть НА ОДНОМ И ТОМ ЖЕ СЕРВЕРЕ по-разному читают один и тот же dbf-файл (ts.dbf).
Я написал простенькую обработку, которая читает указанный файл. Вот её текст:
&НаСервере
Процедура ПрочитатьНаСервере()
Файл = Новый XBase;
Файл.ОткрытьФайл(Объект.ИмяФайла, СтрЗаменить(Объект.ИмяФайла, "DBF", "CDX"), Истина);
Файл.Первая();
Менеджер = Файл.MANAGER;
Сообщить("На сервере - " + Менеджер);
Файл.ЗакрытьФайл();
КонецПроцедуры
&НаКлиенте
Процедура Прочитать(Команда)
Файл = Новый XBase;
Файл.ОткрытьФайл(Объект.ИмяФайла, СтрЗаменить(Объект.ИмяФайла, "DBF", "CDX"), Истина);
Файл.Первая();
Менеджер = Файл.MANAGER;
Сообщить("На клиенте - " + Менеджер);
Файл.ЗакрытьФайл();
ПрочитатьНаСервере();
КонецПроцедуры
А вот результат работы:
На клиенте - НомераГТД
На сервере - ÍîìåðàÃÒÄ
Агент сервера 1С запускается ОТ ИМЕНИ ТОГО ЖЕ ПОЛЬЗОВАТЕЛЯ, что и я сижу в терминале на этом же сервере.
Релиз платформы 8.3.7.2027, сервер 1С:Предприятие 8 32-разрядный.
Сервер - Windows Server 2008R2 Standard, Service Pack 1 (Eng + MUI Russian)
Развернул копию базы в файловом режиме - ошибка НЕ проявляется:
На клиенте - НомераГТД
На сервере - НомераГТД
Если запускать загрузку в БП 3.0 в режиме "На сервере", то обработка "спотыкается" с такой ошибкой:
А если запускать в режиме "На клиенте", то ошибка такая же, только еще и имя файла загрузки заменяется на имя временного файла.
Цитата |
---|
Алексей Николаевич Кутний написал: Если запускать загрузку в БП 3.0 в режиме "На сервере", то обработка "спотыкается" с такой ошибкой: |
Обязательно использование АДО (для клиент серверных баз). Ссылка на скачивание драйвера и инструкция в справке обработки.
Спасибо, коллеги! Всё получилось.
Поделюсь методикой решения.
1. Что привело к проблеме? Изменился ПОЛЬЗОВАТЕЛЬ, от имени которого проходила загрузка в БП 3.0. Этот пользователь скопировал ВСЕ настройки загрузки, КРОМЕ ГАЛОЧКИ "Использовать ADO". Как только новый пользователь первый раз запустил загрузку, в файл ts.dbf дописались несколько строк, с указанием в поле MANAGER символов . вместо символов русского алфавита.
2. Поскольку копия таблицы ts.dbf хранится также в Архивной копии, не получалось "прочистить" ts.dbf DBF-редакторами - всё восстанавливалось из архивной таблицы при запуске загрузки. Поэтому долго не получалось загрузить файл.
3. То, что описано в этой ветке - это уже ПОСЛЕ того, как в настройках соответствий в обработке нажали на кнопку "Удалить архивную ТС".
4. Установка галочки "Использовать ADO", как выяснилось, в одиночку не приводит к установке признака "Модифицированность" формы настроек, как следствие, ее новое состояние НЕ СОХРАНЯЕТСЯ. Установили эту галочку и изменили туда-обратно еще одну галочку - тогда установленная галочка "Использовать ADO" сохранилась в настройках пользователя.
5. На всякий случай переустановили драйвер Advantage OLE DB Provider, с установкой настроек языков в RUSSIAN.
6. Всё взлетело!
База файловая, работа по rdp
при загрузке выгруженного из Альфы-Авто xml-файлы выдает ошибки:
Ошибка открытия ТС:: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанного поставщика. Вероятно, он установлен неправильно.
Прочтите справку обработки по галочке "Использовать АДО" для получения информации как устанавливать драйвер АДО.
Посмотрел в 846 строке, след код (Соединение.Open("Provider=Advantage OLE DB Provider;):
Функция Подключиться(ФайлТС) Экспорт
Если ИспользоватьADO Тогда
Если ТипЗнч(БД_ТС) = Тип("COMОбъект") И БД_ТС.ActiveConnection<>Неопределено И БД_ТС.ActiveConnection.State = 1 Тогда
БД_ТС.Open();
Возврат Истина;//Подключение уже есть
КонецЕсли;
ФайлБД_ТС = Новый Файл(ФайлТС);
Попытка
//Будет одинаковый ал
Если СтрДлина(ФайлБД_ТС.ИмяБезРасширения)>8 Тогда
ВызватьИсключение("Длинна имени файла не должна превышать 8 символов.");
КонецЕсли;
//Предполагаем что это 32 битный сервер
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionTimeOut=15;
Соединение.CursorLocation=2; // server side
Соединение.Mode=12; //adModeShareExclusive (не разрешает открывать соединение другим пользователям)
Соединение.Open("Provider=Advantage OLE DB Provider;
| Data Source="+ФайлБД_ТС.Путь+";
| TableType=ADS_CDX;
| ShowDeleted=FALSE;
| TrimTrailingSpaces=TRUE;
| Advantage Server Type=ADS_LOCAL_SERVER;");
// ShowDeleted=FALSE; - помеченные на удаление записи НЕ будут отображаться при переборе и поиске
// TrimTrailingSpaces=TRUE; - автоматическое удаление хвостовых пробелов значений полей
КонецЕсли;
Исключение
Сообщить("Ошибка открытия ТС:"+ОписаниеОшибки());
Сообщить("Прочтите справку обработки по галочке ""Использовать АДО"" для получения информации как устанавливать драйвер АДО.");
Возврат Ложь;
КонецПопытки;
я так понимаю это ведь для клиент-серверного варианта? Но у меня файловая база. И раньше (в прошлом месяце) эта обработка работала без ошибок
-Ошибка открытия ТС:: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Advantage OLE DB Provider): Error 5185: Local server connections are restricted in this environment. See the 5185 error code documentation for details. axServerConnect AdsConnect
-Прочтите справку обработки по галочке "Использовать АДО" для получения информации как устанавливать драйвер АДО.
Iova © ( 2005-05-30 19:49 ) [0]
Какие драйверы можно использовать для подключения 1С через АДО?
← →Anatoly Podgoretsky © ( 2005-05-30 19:56 ) [1]
А причем тут АДО?
← →Iova © ( 2005-05-30 20:03 ) [2]
Я делаю прогу для работы с различными базами данных. У меня уже сделано для Accessа и InterBasа и чтобы ничего сильно не менять хотелось бы работу с 1С сделать через ADO. Мне нужно подключиться к справочникам 1С но я не знаю какие дрова использовать.
Мне говорили что можно обращаться с помощью SQL запросов.
Anatoly Podgoretsky © ( 2005-05-30 20:08 ) [3]
1C это приложение, а не база. Вот ее базами можешь общаться как хочешь. Но вроде бы 1С является сервером автоматизации.
← →Fay © ( 2005-05-30 21:14 ) [4]
Iova © (30.05.05 19:49)
Документация фирменная есть?
Danilka © ( 2005-05-31 08:09 ) [5]
[2] Iova © (30.05.05 20:03)
> Мне нужно подключиться к справочникам 1С но я не знаю какие
> дрова использовать.
Для начала, какая 1с-ка? Если самая распостраненная на сегодняшний день, версия 7.7, то у нее база лежит либо в MS-SQL либо в DBF.
Если база 1с-ки лежит в МС-Сиквеле, то можно подключится к нему через АДО.
Если база лежит в ДБФ-ках, то, скорее всего, никак - если он ошибаюсь, они там нахимичили с заголовками ДБФ, в результате кодировка любыми движками определяется неправильно.
В любом случае, если у каких-то справочников есть периодические реквизиты, то геморой будет еще тот - они все для всех справочников лежат в одной таблице, вместе с константами и разобрацца где что и почем будет очень тяжело.
Самый простой вариант - подключаться к самой 1с-ке через ОЛЕ и работать с ней на ее языке.
Iova © ( 2005-06-01 10:04 ) [6]
>Danilka
Версия у меня 7.7 и справочники храняться в DBF формате.
Значит их нельзя рассматривать как файлы DBase с драйвером
Microsoft OLE DB provider for ODBC Drivers .
Через OLE работать будет сложно т.к. язык 1С я сам толком незнаю(например как получить список справочников БД 1С и передать их в ListBox).
Кстати я читал хелп по 1С и там вроде как утверждали что 1С поддерживает язык SQL, но если поддерживает, то как его использовать.
PS: Что за вариант баз данных в МС-Сиквел. Я пока про такой еще ничего не слышал.
Тучудище ( 2005-06-01 10:10 ) [7]
Очень даже просто можно работать со справочниками в 1С Базе данных через OLE сам неоднократно делал, файлы там Dbase IV и проблем с кодировкой у меня не было никогда, единственное но значения т.н. перечислений получить не удасться ибо зашиты в MD и с реквезитами неопределенного типа тоже гимора полнейшая
← →sniknik © ( 2005-06-01 10:30 ) [8]
> Если база лежит в ДБФ-ках, то, скорее всего, никак - если он ошибаюсь, они там нахимичили с заголовками ДБФ, в результате кодировка
> любыми движками определяется неправильно.
ошибаешся, ничего не нахимичили, стандартный foxpro. подключится можно через ODBC Visual Foxpro Driver (или OLEBD VFP, но его чаще доставлять нужно)
Danilka © ( 2005-06-01 10:34 ) [9]
[6] Iova © (01.06.05 10:04)
> Через OLE работать будет сложно т.к. язык 1С я сам толком
> незнаю
Придецца разбирацца, иначе - никак.
>(например как получить список справочников БД 1С и
> передать их в ListBox).
Очень просто, я тебе еще в прошлой ветке привел пример на 2 строчки :)
> Кстати я читал хелп по 1С и там вроде как утверждали что
> 1С поддерживает язык SQL, но если поддерживает, то как его
> использовать.
У них не SQL, а собственный язык запросов.
> PS: Что за вариант баз данных в МС-Сиквел. Я пока про такой
> еще ничего не слышал.
МС-Сиквел - MS SQL. Слово SQL буржуи произносят как "сиквел". :))
[7] Тучудище (01.06.05 10:10)
> файлы там Dbase IV и проблем с кодировкой у меня не было
Ну, значит я ошибался. :) Однако, на счет гемороя - присоединяюсь.
sniknik © ( 2005-06-01 10:37 ) [10]
> файлы там Dbase IV и проблем с кодировкой у меня не было
возможно (возможно вообще все) и есть разные модификации 1С(вернее баз), какието и с Dbase IV, но я пока встречал только две - Foxpro и MSSQL.
Danilka © ( 2005-06-01 10:38 ) [11]
[8] sniknik © (01.06.05 10:30)
Если честно, последний раз когда пробовал напрямую к дбф-кам 1С цепляться - это было года 2-2.5 назад, ихний КЛАДР (тогда налоговая раздавала его в кодировке 866, а в 1С-ке использовали свой - сконвертированый в 1251), вероятно из-за этого и были проблемы. Но где-то и еще читал про такую проблему.
Да я, вобщем-то, честно написал: "если не ошибаюсь". :))
Тучудище ( 2005-06-01 11:39 ) [12]
>sniknik
ядро не ниже 18 файлы 100% dbase4 это для DBF
>Danilka
языковые установки бд выбираются в момент конфигурирования системы
Danilka © ( 2005-06-01 11:42 ) [13]
[12] Тучудище (01.06.05 11:39)
> языковые установки бд выбираются в момент конфигурирования
> системы
ты о чем? :)
sniknik © ( 2005-06-01 11:48 ) [14]
> ядро не ниже 18 файлы 100% dbase4 это для DBF
т.е. и индексные файлы у тебя в 1С имеют расширение .mdx (на крайний случай .mdx)? ;)
sniknik © ( 2005-06-01 11:51 ) [15]
> (на крайний случай .mdx)
$о))
читать - (на крайний случай .ndx)
jiny ( 2005-06-02 13:15 ) [16]
Все верно, работать c 1C нужно через OLE Automation Server на ее родном языке, и уже не важно какая она SQL или DBF версия, и к тому и к этому есть способы подключения .
если хочешь могу скинуть на мыло статьи по подключению к 1С и работе со справочниками и выражениями.Скинь адрес мне на мыло
zhas-trz@tarazinfo.kz
VadimX ( 2005-06-29 10:55 ) [17]
И все-таки.
Как быть, если нужен прямой доступ к DBF(без использования OLE Automation Server)
При стандартном подключении через ADO ADBC Driver
Таблицы видятся, но кодировка другая.
Причем таблицы Win-1251 а DELPHI их зачем-то перекодирует.
Есть ли стандартное решение?
← →size=20 ( 2005-06-29 11:03 ) [18]
мдя. а почему не к текстовым файлам например?
я делал интеграцию наоборот с 1С к своей СУБД. Все получилось через ADO
VadimX ( 2005-06-29 11:17 ) [19]
Ну тогда, плиз, по шагам как ты это делал.
Может я где-то что-то упустил.
Anatoly Podgoretsky © ( 2005-06-29 11:26 ) [20]
Iova © (01.06.05 10:04) [6]
Никаких дополнительных средств для подключения а таблицам не надо (хотя и можно), тот же самый провайдер, что и для Акцесс.
Но как многократно сказано так делать не надо, смерть наступит весьма быстро, хорошо если только базы.
Для работы с 1С надо использовать ОЛЕ автоматизацию.
← →sniknik © ( 2005-06-29 11:28 ) [21]
> При стандартном подключении через ADO ADBC Driver
в ADO вообще не стандартов. какого провайдера подключиш тот и стандарт (на данный момент).
> Ну тогда, плиз, по шагам как ты это делал.
> Может я где-то что-то упустил.
что тебе непонятно в шаге №1
> . подключится можно через ODBC Visual Foxpro Driver (или OLEBD VFP, но его чаще доставлять нужно)
.
sniknik © ( 2005-06-29 11:37 ) [22]
> . тот же самый провайдер, что и для Акцесс.
настройку xBase.DataCodePage тогда надо сменить на ANSI с OEM которая по умолчанию. (в реестре у jet-овского isam-а).
VadimX ( 2005-06-29 11:40 ) [23]
>> . тот же самый провайдер, что и для Акцесс.
>настройку xBase.DataCodePage тогда надо сменить на ANSI с OEM >которая по умолчанию. (в реестре у jet-овского isam-а).
Какая ветвь реестра?
← →sniknik © ( 2005-06-29 11:55 ) [24]
> Какая ветвь реестра?
поиск не работает?
а вот не скажу. тем более, что это не нужно, для фоксовых таблиц всетаки более подходит фоксовый же драйвер.
поддержка jet-ом фокса прекратилась с версии 3.5 по какимто видимо политическим мотивам, и если оно еще работает то только изза небрежности тамошних программистов. забыли вынуть, или это трудно сделать изза завязки с dbase, или изза поддержки совместимости уже написанного. т.д.
VadimX ( 2005-06-29 12:37 ) [25]
>> Какая ветвь реестра?
>поиск не работает?
работает. у меня такой нет.
Так все-таки.
Какой драйвер использовать?
Пожалуйста укажите название полностью, а то у меня
от Фокса 2-3 штуки и не понятно с каким именно разбираться.
Anatoly Podgoretsky © ( 2005-06-29 12:40 ) [26]
sniknik © (29.06.05 11:37) [22]
А точнее в соответствии с исходной таблице. Тут некоторые утверждают, что там мол dBase IV, но я этому не верю, по моим сведеньяс вроде бы все таки ФоксПро, а для него естественно лучше использовать другого провайдера, чем Jet.OleDb
VadimX ( 2005-06-29 12:45 ) [27]
А какой LANGDRIVER
выставлять?
sniknik © ( 2005-06-29 13:40 ) [28]
Anatoly Podgoretsky © (29.06.05 12:40) [26]
> по моим сведеньяс вроде бы все таки ФоксПро
естественно. если только за последнее время в dBase не переняли индексы *.cdx. ;о))
VadimX (29.06.05 12:37) [25]
> от Фокса 2-3 штуки и не понятно с каким именно разбираться.
а у меня он один. и то только тот что я сам поставил. (винда XP SP2/MADK 2.7 по умолчанию, с 2.6 fox в него не включается.)
вот DSN-ов фокса 2, не вижу чем их описание тебе поможет, у тебя их нет, оба мной были руками прописаны.
VadimX (29.06.05 12:45) [27]
> А какой LANGDRIVER
> выставлять?
где? вроде про ADO разговор (см. [0]), а LANGDRIVER принадлежность BDE.
Читайте также: