#0
by jour
Всем доброго времени суток, стоит задача получать данные из внешних таблиц *.tps Единоразово уже умею получать данные путем конвертации таблиц в *.csv и дальше типовая загрузка из экселя, однако нужна постоянная связь с таблицами. Таблицы зашифрованы, у каждой свой пароль, поэтому будем подключаться не к директории а к конкретной таблице сразу, в настройках драйвера пароль уже прописан, поэтому надеюсь его не нужно еще раз повторять в строке соединения. Но где то я ошибаюсь, прошу хелп. &НаСервере Таблица = Соединение.Open("select ::= Cli:nm FROM tablelist where groupby having"); Исключение Сообщить("Не могу подключиться к базе!!!"); КонецПопытки; КонецПроцедуры По выполнению получаю два сообщения - "База подключена!" и сразу же "Не могу подключиться к базе", т.е. Таблицу я не получаю. Вот это полный список команд для *.tps таблиц statement ::= CREATE create | DROP drop | SELECT select orderby | INSERT insert | DELETE delete | UPDATE update | passthroughSQL passthroughSQL ::= any statement supported by the backend create ::= TABLE tablename ( createcols ) | INDEX indexname ON tablename ( indexcolumns ) indexcolumns ::= indexcolumn | indexcolumn , indexcolumns drop ::= TABLE tablename | INDEX indexname select ::= selectcols FROM tablelist where groupby having delete ::= FROM tablename where insert ::= INTO tablename insertvals update ::= tablename SET setlist where setlist ::= set | setlist , set set ::= columnname = NULL | columnname = expression insertvals ::= ( columnlist ) VALUES ( valuelist ) | VALUES ( valuelist ) | ( columnlist ) VALUES ( SELECT select ) | VALUES ( SELECT select ) columnlist ::= columnname , columnlist | columnname valuelist ::= NULL , valuelist | expression , valuelist | expression | NULL selectcols ::= selectallcols * | selectallcols selectlist selectallcols ::= | ALL | DISTINCT where ::= | WHERE boolean having ::= | HAVING boolean boolean ::= and | and OR boolean and ::= not | not AND and not ::= comparison | NOT comparison comparison ::= ( boolean ) | colref IS NULL | colref IS NOT NULL | expression LIKE pattern | expression NOT LIKE pattern | expression IN ( valuelist ) | expression NOT IN ( valuelist ) | expression op expression | EXISTS ( SELECT select ) | expression op selectop ( SELECT select ) | expression IN ( SELECT select ) | expression NOT IN ( SELECT select ) | expression BETWEEN expression AND expression) | expression NOT BETWEEN expression AND expression) TopSpeed ODBC Interface — syntaxpattern ::= string | ? | USER expression ::= expression + times | expression - times | times times ::= times * neg | times / neg | neg neg ::= term | + term | - term term ::= ( expression ) | colref | simpleterm | aggterm | scalar scalar ::= scalarescape | scalarshorthand fn ::= functionname ( valuelist ) | functionname aggterm ::= COUNT ( * ) | AVG ( expression ) | MAX ( expression ) | MIN ( expression ) | SUM ( expression ) | COUNT ( expression ) simpleterm ::= string | realnumber | ? | USER | date | time | timestamp groupby ::= | GROUP BY groupbyterms groupbyterms ::= colref | colref , groupbyterms orderby ::= | ORDER BY orderbyterms orderbyterms ::= orderbyterm | orderbyterm , orderbyterms orderbyterm ::= colref asc | integer asc asc ::= | ASC | DESC colref ::= aliasname . columnname | columnname tablelist ::= tablelistitem , tablelist | tablelistitem tablelistitem ::= tableref | outerjoin outerjoin ::= ojescape | ojshorthand oj ::= tableref LEFT OUTER JOIN tableref ON boolean | tableref LEFT OUTER JOIN oj ON boolean
#3
by jour
возможно и бред, как получить колонку "Cli:nm" ? хотя конечно лучше получить всю таблицу, думаю это selectallcols ::= | ALL | DISTINCT но я не знаю как передавать эти строчки
#4
by МихаилМ
как обычно. по стандарту sql92. select * from имятаблицы без tps объединения таблиц работают только внутренние через where. мне не удалось заставить работать "LEFT OUTER JOIN"
#7
by Mikeware
забавно. но если надстройка над мелкомягким - почему tps остался? Эх, лет 20 его не видел.... даже 22
#10
by jour
Такс.. программа запустилась, таблицу открыл, записи вижу, хорошо, осталось научиться писать запросы :)
#15
by МихаилМ
зачем же Вы в попытку поместили две разные ситуации подключение к бд и извлечение данных. сделайте культурно разные методы подсключения получения данных создания типизированной тз на основе типов oledb (ado) заполнения тз отображения тз в тп.
#16
by МихаилМ
еще даты в кларе хранятся в виде целых чисел формула приведения 1800.12.28+число дней клары
#18
by jour
Культурно я разделял, сначала сделал две функции, по логике вроде должно работать, но не работает. Стал искать проблему, в отладке заметил что в строке подключения к БД не сохраняется значение "Соединение.ConnectionString", устанавливается "Provider=MSDASQL.1;" после открытия. Вторую функцию вообще по строчкам разделил Таблица.Open; Но не пашет...
#20
by МихаилМ
у меня тоже както не подслючалась и тогда я тоже заметил пропажу. помогла тупо перезагрузка. но так было только раз после перезагрузки , когда все заработало не стал разбираться есть проража или нет.
#21
by МихаилМ
попробуйте такую строку подключения "DRIVER={SoftVelocity Topspeed driver (*.tps)};DBQ=\AVTOPROKATDatClien; Extension = tps;"; вместо DataBase DBQ
#26
by jour
А драйвер можете свой прислать ? Мой не настраивается никак, при попытки редактирования настроек пишет - "Архитектура драйвера и архитектура приложения не соответствуют друг другу"
#28
by МихаилМ
"Архитектура драйвера и архитектура приложения не соответствуют друг другу" если у Вас 64-битная ОС, то правильно пишет. Вы не тот dsn менеджер запускаете. в поиск.
#30
by jour
ОС 64-битная, однако одбс драйвера 32х стоят и работают ваш драйвер как на вин 7 поставить ?
#31
by МихаилМ
шаманским способом: в 32 битной ВМ с win XP запустил Process Monitor (PM), запустил setup в PM настроил фильтр. исполнил setup. проанализировал трассы PM и выяснил в какие папки и какие ветки реестра записываются. воспроизвел, применительно к 64 версии odbc ветке реестра и скопировал файлы.
#33
by Злопчинский
все таки я правильно проинтуичил, что не КлаТион, а Кларион.. ;-) . а сколько в свое время было шуму по Btrieve (вроде так пишется)
#34
by jour
Уже из платформы сделал подключение к внешнему источнику, соединение есть, в конфигураторе таблицы видит, но при выводе выдает Номер ошибки: 10015 Описание: [SoftVelocity Inc.][TopSpeed ODBC Driver]Expected lexical element not found: FROM
#35
by МихаилМ
исходите из того, что если Вы смогли подключиться и получить данные в программе то сможете и в 1с из ADO.
#36
by МихаилМ
нет времени и возможности проверять Ваш драйвер. но мой довольно глючный. И если у них "общие корни" то таблицы в 1с отбражаться (открваться) не будут, но запросы к данным выполняться будут.
#38
by МихаилМ
если файл , не содержащий большой коммерческой тайны могу проверить, будет ли он читаться.
#39
by ОдинСерый
шаманить ничего не надо берите МС акцесс и делайте коннект оттуда к кларионовским бд. потом и своего 1С запросто зацепитесь в акцессовским база... или если у вас мс скуль тогда еще проще из акцесса кидает в скуль и там прямо отрабатываете своим 1С. акцесс можете просто сделать экзешник который будет кидать данные на скуль по нажатию. и вообще тут масса способов для творчества.
#41
by ОдинСерый
ну ты молодец :))) мс акцесс подключается напрямую ко всем видам дбф-шек никакиз одбс не надо. ну может если не будет в списке конверторов в самом акцесс то ищите библиотечки , хотя в стандартном все должно быть хотя конечно хз я последние акцессы не знаю может и уже нет... ищи старые пакеты
#42
by ОдинСерый
Совместимость Access со сторонними источниками данных[править | править исходный текст] СУБД (Источник данных) Версия Access Драйвер Обновляемые запросы Файлы Excel все встроенный Нет SQLite Да MySQL 2000-2003 MyODBC v.3.51.X, 5.1.X Да PostgreSQL Да Firebird Да 1C v.7.7 (dbf) 2003 Visual FoxPro ODBC driver v.6.01.8629.01 Нет Paradox Oracle Текстовые файлы все встроенный Нет Таблицы html все встроенный Нет клариона нет... но он вообще стандартные файлы дбф
#43
by МихаилМ
не припомню, что бы я с Вами на "ты" переходил. вопрос про подключение - не праздный. тк поключится к кларион и прочитать данные проблема. втом числе из аксес. Не болтайте о том, с чем дело не имели. "клариона нет... но он вообще стандартные файлы дбф" - глупость . кларион не хранил данные в дбф.
#45
by ОдинСерый
читать надо на форуме иногда. да я перепутал видимо кларион с чем-то из тех кто напрямую поддерживает форматы файлов xBase
#47
by ОдинСерый
направление движения для тс дает. кларион наверно давно умер думаю все равно где-то в сети есть приблуды для цепляния его данных в другие выжившие СУБД. почему я акцесс привел в пример?! да потому что он был есть и будет, в отличие от остальные живших, умерших и трансформировашихся старых СУБД.
#48
by МихаилМ
читате внимательно "Единоразово уже умею получать данные путем конвертации таблиц в *.csv" нет задачи "епляния его данных в другие выжившие СУБД".
#53
by jour
Заснуть сегодня не смог, закрываю глаза и вижу таблицы :) для истории: таким образом вытаскиваются все записи. Дальше план такой, делаю регламентное задание для вытаскивания новых записей, все вытащенное запихиваю в промежуточную таблицу MSSQL и ее уже подключаю как внешний источник данных в 1С. Может советы дельные может дать ? сложностей умозрительно пока не вижу.
#54
by МихаилМ
опять бред. создайте dsn для подключения к базе, а не к файлу. и работайте с ним из ado. впрочем если соединять таблицы не собираетесь - сойдет и подключение к таблице. RecordSet.Fields(RecordSet.Fields.Item.Name) тоже быдло код. могу еще более бредовый идею подать из мс скл сделать подключения к кларе затем подключится к мс скл.
#55
by jour
у меня одна из управленческих программ работает в этих таблицах, и сотрудники несколько раз пишут одно и тоже - сначала в эту старую, потом в 3 разные 1С (данные связаны но не одинаковые). Данных довольно много, одну и туже работу по четыре раза делать глупо, но необходимо, чтобы данные, имеющиеся в tps таблицах были доступны в нескольких 1С. Я согласен, что можно просто из dsn подключения брать данные, но мне где то нужно хранить историю, что я взял а что не взял, влазить в типовые 1С не хочется. На счет быдло кода.. покажите пример хорошего :)
#57
by МихаилМ
правильно RecordSet.Fields по поводу синхронизации: все равно равно нужно учитывать не только новые данные, но и измененные. так что придется сравнивать таблицы текущую и с копией для выявления новых и измененных вечером (в ~22 00) покажу. сейчас нет времени разбираться.
#58
by МихаилМ
реализуется через OPENDATASOURCE только на сервере должно быть разрешение его использования
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Как ускорить программное выполнение СКД с набором данных - объект?
- Регулярные выражения в 1С под Linux
- Как обновить некоторые формы на клиенте при проведении документа?
- Точки на диаграмме СКД ...
- CRM 2.0 Подскажите.. как создать штрихкод для номенклатуры?
- акт сверки по холдингу
- Корректировка записи регистров
- Внешняя печатная форма спецификации
- Двоится изображение на экране ноутбука
- Как сделать отбор по колонке которая заполняется через оформление строк
- Работа с файлами БСП
- 1с:Документооборот автоматическая отправка уведомлений при старте процесса
- 8.3 Такси. Можно ли програмно изменить состав интерфейса клиентской прикл-й п-мы
- 1С в Эксель, выедает память
- Хранилище значений в ТЗ обработки
- 1с8.2 Упр.формы: ЗначенияВДанныеФормы(ТЗ,Отчет) - недопустимое значение параметр
- 1с 8.2 вылетает при входе пользователя с полными правами
- v7: 1с 7, ошибка Запрос.Группировка("День")
- Как по "полю ввода" определить имя колонки табличного поля
- v8: Как правильно передавать ОС между филиалами?