Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Прямой запрос к Oracle из 1С (число прочтений - 3083 )
BorisHighLander
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 10. Декабря 2007
Пол: Мужской
Прямой запрос к Oracle из 1С
27. Июня 2009 :: 09:41
Печать  
Используя 1С++ делаю прямой запрос к Oracle.  В Toad for Oracle - запрос работает. В 1с выдает ошибку: Meta name parser error: неизвестное метаимя или алиас "$_WRITE_OFF_INVOICE". Я так понимаю что ошибку выдает 1С++. Как это можно обойти или переделать?

Текст запроса:
Код
Выбрать все
declare
code_woi integer;
num_woi integer;
qty integer;

begin

--создание шапки накладной

code_woi:=mz.GetCodeWriteOffInvoice;
num_woi:=mz.GetNUmberWriteOffInvoice;
insert into MZ.WRITE_OFF_INVOICE
(CODE_WRITE_OFF_INVOICE, CODE_SHOP, CODE_SUBGROUP, NUMBER_WRITE_OFF_INVOICE,
DATE_WRITE_OFF_INVOICE, CODE_ADDITION_SIGN, CODE_PATTERN,
CODE_FIRM, CODE_WAREHOUSE, VARIETY_WRITE_OFF_INVOICE, TYPE_WRITE_OFF_INVOICE, CHANGE_STATE, TYPE_PRICE,
TYPE_ADDRESSEE, CODE_ADDRESSEE, CODE_WAREHOUSE_ADDRESSEE, CODE_SHOP_ADDRESSEE,DESCRIPTION,CODE_DEALER)

values 80,'Накладная',223);

--вставка товаров в накладную

qty:=MZ.SPR$_WRITE_OFF_INVOICE,0,'',0,0,0,1,'C',0);

--экспорт накладной в систему

MZ.GS_EXPORT.EXPORTWRITEOFFINVOICE(code_woi);

end;
commit; 

  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Прямой запрос к Oracle из 1С
Ответ #1 - 27. Июня 2009 :: 10:55
Печать  
Покажи, как присоединяешься к базе.
  
Наверх
ICQ  
IP записан
 
BorisHighLander
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 10. Декабря 2007
Пол: Мужской
Re: Прямой запрос к Oracle из 1С
Ответ #2 - 27. Июня 2009 :: 11:24
Печать  
     
Код
Выбрать все
       DB=СоздатьОбъект("ODBCDatabase");

	DB.Соединение("DRIVER={Oracle in OraClient10g_home1};Server=**********;dbq=***;Uid=*******;Pwd=************;";);

	Если DB.ЕстьСоединение() = 1 Тогда
		//Сообщить("Работает!!!");
	Иначе
		Сообщить("Не работает!", "!!!");
		Сообщить(DB.ПолучитьОписаниеОшибки());
		Возврат;
	КонецЕсли;

	рс = СоздатьОбъект("ODBCRecordSet");
	рс.SetDatabase(DB);

	ТекстЗапроса = (смотри выше);


	ТЗ = рс.ВыполнитьИнструкцию(ТекстЗапроса);
	тзТест.Загрузить(ТЗ);

	рс.Закрыть();
	DB.Закрыть(); 

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Прямой запрос к Oracle из 1С
Ответ #3 - 29. Июня 2009 :: 04:37
Печать  
перед ВыполнитьИнструкцию поставь

рс.Отладка(1) и получившийся в сообщении запрос
отлаживай в oracl
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Прямой запрос к Oracle из 1С
Ответ #4 - 29. Июня 2009 :: 11:53
Печать  
Не знаю, похожая ситуация была или нет, но у меня если в запросе встречалось ":" (двоеточие), то запрос упорно считал остальное параметром и сильно ругался, например такой вот выдавал ошибку "SELECT * FROM Table Where Date_Time>'20090621 10:34'".
Пришлось писать функцию, вырезающую все строковые константы и оформляющие их в виде параметров, т.е. получалось что-то типа "SELECT * FROM Table Where Date_Time>:Парам1" и УстановитьТекствыйПараметр("Парам1","20090621 10:34");
Может в данном случае похожая ошибка фича происходит с символом "$"?
  
Наверх
ICQ  
IP записан
 
BorisHighLander
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 10. Декабря 2007
Пол: Мужской
Re: Прямой запрос к Oracle из 1С
Ответ #5 - 01. Июля 2009 :: 09:45
Печать  
Спасибо, попробую
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Прямой запрос к Oracle из 1С
Ответ #6 - 05. Июля 2009 :: 07:56
Печать  
Цитата:
Может в данном случае похожая ошибка фича происходит с символом "$"?

Именно так.
Та же басня и в Firebird.
Хорошо бы что-то типа параметра НеИспользоватьПарсер.
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямой запрос к Oracle из 1С
Ответ #7 - 05. Июля 2009 :: 14:57
Печать  
Ещё и в Ехеле те же грабли.
За такой параметр уже давно говорили.
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Прямой запрос к Oracle из 1С
Ответ #8 - 06. Июля 2009 :: 05:39
Печать  
JohnyDeath писал(а) 05. Июля 2009 :: 14:57:
Ещё и в Ехеле те же грабли.
За такой параметр уже давно говорили.

В багзилле есть?
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямой запрос к Oracle из 1С
Ответ #9 - 06. Июля 2009 :: 06:03
Печать  
ХЗ
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать