25.03.2005, 13:56 | #1 |
Участник
|
Добрый день!
Пытаюсь через ADO из-под 1С подключиться к Навижновской базе. Создал udl-файл. Подключился, структуру таблиц базы увидел. А все запросы выдают ошибку... Например: SELECT * FROM Currency; Результат: Microsoft OLE DB Provider for ODBC Drivers: [Navision Software a/s][Navision Financials ODBC Driver]Table does not exists Не подскажете, в чем может быть проблема? |
|
25.03.2005, 17:06 | #2 |
Участник
|
Причем подключаясь к навижну через аксесс все запросы работают...
|
|
25.07.2005, 15:23 | #3 |
Участник
|
Цитата:
Сообщение от DimCorso
Добрый день!
Пытаюсь через ADO из-под 1С подключиться к Навижновской базе. Создал udl-файл. Подключился, структуру таблиц базы увидел. А все запросы выдают ошибку... Например: SELECT * FROM Currency; Результат: Microsoft OLE DB Provider for ODBC Drivers: [Navision Software a/s][Navision Financials ODBC Driver]Table does not exists Не подскажете, в чем может быть проблема? зачем udl файл? <div class='v7top'>1Cv7</div><div class='v7'> Соединение=СоздатьОбъект("ADODB.Connection"); СтрокаКоннекта="driver={SQL Server};server=sql;uid=sa;pwd=пароль;Database=navision"; Соединение.ConnectionTimeOut=200; Соединение.CursorLocation=3; Попытка Соединение.Open(СтрокаКоннекта); Исключение Предупреждение("Невозможно установить соединение с базой данных!"); Возврат 0; КонецПопытки;</div> Да и Navision дает имена таблицам по шаблону ИмяФирмы$ИмяТаблицыИзДизайнера. Кусок из 1С ки: <div class='v7top'>1Cv7</div><div class='v7'> Функция ТипПараметра(SQLStrType ) Экспорт Тип = НРег(SQLStrType); Если Тип = "empty" тогда Возврат 0; иначеесли Тип = "boolean" тогда Возврат 11; иначеесли Тип = "integer" тогда Возврат 3; иначеесли Тип = "int" тогда Возврат 3; иначеесли Тип = "tinyint" тогда Возврат 16; иначеесли Тип = "smallint" тогда Возврат 2; иначеесли Тип = "bigint" тогда Возврат 20; иначеесли Тип = "numeric" тогда Возврат 131; иначеесли Тип = "double" тогда Возврат 5; иначеесли Тип = "date" тогда Возврат 7; иначеесли Тип = "char" тогда Возврат 129; иначеесли Тип = "varchar" тогда Возврат 200; иначеесли Тип = "unsignedtinyint" тогда Возврат 17; иначеесли Тип = "unsignedsmallint" тогда Возврат 18; иначеесли Тип = "unsignedint" тогда Возврат 19; иначеесли Тип = "unsignedbigint" тогда Возврат 21; иначеесли Тип = "single" тогда Возврат 4; иначеесли Тип = "currency" тогда Возврат 6; иначеесли Тип = "decimal" тогда Возврат 14; иначеесли Тип = "error" тогда Возврат 10; иначеесли Тип = "userdefined" тогда Возврат 132; иначеесли Тип = "variant" тогда Возврат 12; иначеесли Тип = "idispatch" тогда Возврат 9; иначеесли Тип = "iunknown" тогда Возврат 13; иначеесли Тип = "guid" тогда Возврат 72; иначеесли Тип = "dbdate" тогда Возврат 133; иначеесли Тип = "dbtime" тогда Возврат 134; иначеесли Тип = "dbtimestamp" тогда Возврат 135; иначеесли Тип = "bstr" тогда Возврат 8; иначеесли Тип = "longvarchar" тогда Возврат 201; иначеесли Тип = "wchar" тогда Возврат 130; иначеесли Тип = "varwchar" тогда Возврат 202; иначеесли Тип = "longvarwchar" тогда Возврат 203; иначеесли Тип = "binary" тогда Возврат 128; иначеесли Тип = "varbinary" тогда Возврат 204; иначеесли Тип = "longvarbinary" тогда Возврат 205; иначе возврат 0; конецесли; КонецФункции Процедура ДалаемСклоненияВЕбижене() ИмяТаблицы="KadrTabSklon"; ТекстЗапроса="SELECT Tip,Name,Flzap FROM ["+ИмяБазы+ИмяТаблицы+"] "; Запрос=СкомпилироватьЗапрос(Соединение,ТекстЗапроса); ТекстОбновления="UPDATE ["+ИмяБазы+ИмяТаблицы+"] SET NameD=?, NameV=?, NameT=?, Flzap=0 WHERE Tip=? AND Name=?"; ЗапросОбновления=СкомпилироватьЗапрос(Соединение,ТекстОбновления); NameD=ЗапросОбновления.CreateParameter("P1", ТипПараметра("Char"), input,240); NameV=ЗапросОбновления.CreateParameter("P2", ТипПараметра("Char"), input,240); NameT=ЗапросОбновления.CreateParameter("P3", ТипПараметра("Char"), input,240); Tip=ЗапросОбновления.CreateParameter("P4", ТипПараметра("Integer"), input,); Name=ЗапросОбновления.CreateParameter("P5", ТипПараметра("Char"), input,240); ЗапросОбновления.Parameters.Append(NameD); ЗапросОбновления.Parameters.Append(NameV); ЗапросОбновления.Parameters.Append(NameT); ЗапросОбновления.Parameters.Append(Tip); ЗапросОбновления.Parameters.Append(Name); НаборЗаписей=Запрос.Execute(); Если НаборЗаписей.EOF() = 0 Тогда НаборЗаписей.MoveFirst(); Пока НаборЗаписей.EOF() = 0 Цикл Тип=Число(НаборЗаписей.Fields(0).Value); Стр=СокрЛП(НаборЗаписей.Fields(1).Value); ФлагЗаполнения=НаборЗаписей.Fields(2).Value; ... и т.д. Если .. ЗапросОбновления.Execute(); КонецЕсли; НаборЗаписей.MoveNext(); КонецЦикла; </div> и т.п. |
|
25.07.2005, 15:36 | #4 |
Участник
|
Glazz
что за "Ебижен" ? наезд или повод для драки? |
|
25.07.2005, 16:07 | #5 |
NavAx
|
Па-любому наезд пацаны!
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
25.07.2005, 16:09 | #6 |
Участник
|
Спокойствие, только спокойствие.
Не надо религиозных войн... |
|
05.08.2005, 11:21 | #7 |
Участник
|
Есть AddOn к Navision - XML-DEM, с помощью его можно организовывать выгрузку и загрузку в XML формате. Для него созданы шаблоны обмена с разными программами, в том числе есть и для 1С. В отличии от работы напрямую с базой в XML-DEM при импорте можно выполнять триггеры OnInsert, Validate тем самым поддерживая целостность данных без особых затрат. Настраивается все легко.
Пдробнее http://www.pbiz.ru/DEM/navision_1s/navision_1s.htm |
|
25.08.2005, 18:09 | #8 |
Участник
|
У нас есть задача по ежедневному обмену торговыми документами между Navision и 1С Бухгалтерия. С помощью ADO реализовать это очень сложно. Какие еще есть варианты интеграции? Кто-нибудь уже работал с XML-DEM, насколько сложно самостоятельно его настроить?
|
|
26.08.2005, 12:05 | #9 |
Moderator
|
Обмен XML-файлами сделать очень просто, но трудоемко (разные варианты обработки документов). Производительность хорошая.
|
|
26.08.2005, 13:30 | #10 |
Участник
|
Я делал на одном из проектов (розница)
передачу данных из Navision в 1С Передавали документы закупки и реализации. Выгрузка - тектовый файл загрузка в 1С - обработчик текстового файла, вроде нормально работает, да в принципе и разработка то не сложная совсем |
|
29.08.2005, 15:36 | #11 |
Участник
|
Нам надо в процессе обмена, при создании нового документа в 1с, автоматически создавать как новых контрагентов, так и новые товары, если их еще нет в системе, соответственно данные по ним надо выгружать из Navision. Причем всех контрагентов и товары не надо, а только тех, которые есть в передаваемых документах. Если настраивать это через текстовые файлы, мне кажется, очень сложно будет. Для каждого элемента в файлах обмена надо будет писать свой код сохранения, поиска и выборки данных. XML в этом случае выглядит более удобным форматом.
To Dzemon: Что значит «сделать очень просто, но трудоемко»? Можно поподробнее? Поделитесь опытом, пожалуйста. |
|
29.08.2005, 16:51 | #12 |
Moderator
|
Это значит, что логика процесса довольно простая, но нужно обработать критические ситуации, проверку/поиск документов и справочников. Много кода получается.
|
|
30.08.2005, 10:57 | #13 |
Участник
|
**** Удалено на основании пункта 4.7 правил ****
|
|
30.08.2005, 11:01 | #14 |
Участник
|
SergH, реклама допустима ТОЛЬКО в разделе Коммерческие предложения!
Если есть желание расскажите здесь о вашем решении. Расскажите какие принципы заложены, какие функции есть. Но коммерческая реклама только в соответствующем разделе. |
|
02.09.2005, 18:24 | #15 |
Участник
|
To Mazzy:
В разделе коммерческие предложения размещено описание универсального решения по обмену данными. Коммерческие предложения To Che: Задача о которой Вы пишете, может быть решена достаточно легко с помощью инструмента XML-DEM для Navision и Менеджера Обмена Данными (МОД) для программы 1С. Оба этих инструмента поддерживают выгрузку и загрузку связанных данных, т.е., например, заказа продажи в виде шапки и табличной части и всех необходимых данных из таблиц, на которые есть ссылки: Клиент, Адреса Доставки, Товары, Единицы измерения и пр. При этом предусматривается синхронизация уже имеющихся данных по уникальным реквизитам, т.е. запись добавляется только в том случае, если она отсутствует в системе, если запись уже есть, то обновляются данные в этой записи. Все это настраивается легко, не прибегая к программированию. В XML-DEM уже есть готовый шаблон для выгрузки из Navision Заказа Продажи и загрузки его в 1С в виде Расходной Накладной. Его можно использовать для дальнейшей настройки применительно к Вашим условиям. |
|