Обмен с Oracl

1. Xellsing 33 02.03.17 10:49 Сейчас в теме
Привет всем подскажите пытаюсь сделать обработку для БП 3.0 для обмена с Алгоритм-С через ODBC драйвер/Прописываю подключение
Функция ПодключитьсяКБазе() Экспорт
Перем  Результат;
	
	CN = Неопределено;
	RS = Неопределено;
	
	#Если Клиент Тогда
		Состояние("Подключение к торговой базе Oracle...");
	#КонецЕсли
	
	#Если Сервер Тогда
		Сообщить("Подключение к торговой базе Oracle..."+УровеньЖурналаРегистрации.Информация);
	#КонецЕсли
	
	CN = Новый COMObject("ADODB.Connection");
	//CN.ConnectionTimeOut	= 100;  // таймаут
	CN.CursorLocation		= 3;    // курсор на стороне клиента
	CN.Mode                 = 3;    // режим для чтения и записи
	
	RS = Новый COMObject("ADODB.RecordSet");
	
	СтрокаПодключения = Объект.Сервер+";"+Объект.Логин+";"+Объект.Пароль;
	Попытка
		
		CN.Open(СтрокаПодключения);
		
		Результат = Истина;
		
	Исключение
		
		#Если Клиент Тогда
			Сообщить(ОписаниеОшибки());
			Предупреждение("Не удалось подключиться к торговой базе Oracle.");
		#КонецЕсли
		
		#Если Сервер Тогда
			Сообщить("Ошибка!!! Не удалось подключится к базе Oracle.");
			Сообщить(ОписаниеОшибки());
		#КонецЕсли
		
		CN = Неопределено;
		RS = Неопределено;
		
		Результат = Ложь;
		
	КонецПопытки;
	
	Если Результат ТОгда 
		Сообщить ("Подключение успешно установлено");
	КонецЕсли;
	
	
	
	Возврат Результат;
КонецФункции
Показать


Тут возвращает значение Истина типа подключается
Потом в 1с заполняю таб. часть и формирую выгрузку
в момент когда передаю строку
пQR = BEGIN pk_pay.pr_import_1c(210393, To_Date('01.03.2017','dd.mm.yy'), 321, 1, 6, 0, Null, 'МД00-000695', Null, 19 800, To_Date('01.03.2017','dd.mm.yy'), 'Оплата по счету 90 от 13.02.17г. Авансовый платёж за услуги согл.дог. №700091524 от 11.03.13г.¶Без налога (НДС)', 41, Null, 0, 1, Null, '6166061288', '616501001', '1С', 'INSERT'); END;

пRS = CN.Execute(пQR);

Вылетает ошибка: {ВнешняяОбработка.ВыгрузкаАлгоритм.Форма.Форма.Форма(259)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Oracle][ODBC][Ora]ORA-06550: line 1, column 30:
PLS-00103: Encountered the symbol " " when expecting one of the following:

) , * & = - + < / > at in is mod remainder not rem =>
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec as between from using || multiset member
submultiset
The symbol ", was inserted before " " to continue.
ORA-06550: line 1, column 113:
PLS-00103: Encountered the symbol " " when expecting one of the following:

) , * & = - + < / > at in is mod

Подскажите что не так
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. japopov 68 02.03.17 11:02 Сейчас в теме
пQR = BEGIN pk_pay.pr_import_1c(210393, To_Date('01.03.2017','dd.mm.yy'), 321, 1, 6, 0, Null, 'МД00-000695', Null, 19 800, To_Date('01.03.2017','dd.mm.yy'), 'Оплата по счету 90 от 13.02.17г. Авансовый платёж за услуги согл.дог. №700091524 от 11.03.13г.¶Без налога (НДС)', 41, Null, 0, 1, Null, '6166061288', '616501001', '1С', 'INSERT'); END;

выделил жирным.

Число вставляешь как "+Строка(ЧисловойПараметр)+"? Вот и получаешь то, что должен был.
Используй функцию Формат(ЧисловойПараметр,"....") и давай Oracle число в том формате, который он понимает.
3. alex_sh2008 5 02.03.17 11:06 Сейчас в теме
(2)Формат числа не верный
4. japopov 68 02.03.17 11:10 Сейчас в теме
(3) Это про что?
Если про источник ошибки автора вопроса, то читайте моё сообщение.
Если про моё сообщение, то... а там вообще где формат числа? Я вместо него поставил "....", как бы, автор сам справится дальше! Нагуглить правильный формат числа для Oracle - задача тривиальная.
Вы же не считаете автора дебилом? Я не считаю.
5. alex_sh2008 5 02.03.17 11:14 Сейчас в теме
(4)причем тут все что вы написали, смотрите саму строку, и в каком формате передается число в функцию, ODBC не может такой формат привести к числовому выражению, и ждет что вы вместо пробела что то поставите или уберете его совсем
6. japopov 68 02.03.17 11:21 Сейчас в теме
(5) Кэп сегодня в ударе!!! То же самое, на что я указал.
Нет, разумеется, проблема не в том несчастном числе. Проблема в магнитных полях Венеры, влияющих на аксцедент Меркурия в астрологических таблицах Нострадамуса.
Вы бы хоть читали ответы, кроме Вашего?
7. alex_sh2008 5 02.03.17 11:24 Сейчас в теме
(6)Вы слишком много написали на банальную проблему, такие писульки не читаю
8. japopov 68 02.03.17 11:26 Сейчас в теме
(7) о, простите... не заметил Вашей великости!!! А можно, я рядом подышу?...
jONES1979; +1 Ответить
9. Xellsing 33 02.03.17 11:30 Сейчас в теме
(8)Ребят первый раз имею дело с Oracl сильно ногами не пинайте. Я так понял число нужно приводить к виду 19800, а если дробное 19800,68 -такое распознает?
10. alex_sh2008 5 02.03.17 11:31 Сейчас в теме
(9)Зависит от выбранного формата в ODBC и Oracle, в основном представление через точку идет.
11. japopov 68 02.03.17 11:33 Сейчас в теме
(9)
Формат(ТвоёЧисло,"ЧДЦ=2; ЧРД=.; ЧН=0.00; ЧГ=0; ЧО=1")
Вот это, скорее всего, сработает (зависит от настроек твоего Oracle).
12. alex_sh2008 5 02.03.17 11:35 Сейчас в теме
(8)по меньше флуда и по больше знаний, и разговор становится интересным
13. Xellsing 33 02.03.17 12:41 Сейчас в теме
Народ спасибо всем заработало подскажите еще момент первый параметр это ID документа что в качестве него можно использовать?
14. igel9780 174 02.03.17 12:58 Сейчас в теме
Строка(ДокументОбъект.УникальныйИдентификатор());
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот