Доброго времени суток! У меня возникла проблема загрузки данных из БД (FireBird) в 1С 7. А точнее, если в 1С писать прямой запрос к БД, то данные получаю, а вот если нужно получить данные из хранимой процедуры - траблы. С 1С работаю мало, опыта нет. Может кто подскажет...
Хранимка SERT_SELL_FOR_1C имеет 2 входных параметра типа TIMESTAMP и 2 выходных параметра типа Integer.
Соединение = СоздатьОбъект("ADODB.Connection");
ADOConnectionString = "Provider=LCPI.IBProvider.1;Persist Security Info=False;User ID=UserId;Password=password;";
ADOConnectionString = ADOConnectionString+"Data Source="+ПутьКБД;
Соединение.ConnectionTimeOut =600;
Соединение.CursorLocation = 3;
try
Соединение.Open(ADOConnectionString);
except
Предупреждение("Невозможно установить соединение с бд "+ПутьКБД);
Возврат;
endtry;
Command = СоздатьОбъект("ADODB.Command");
RecordSet = СоздатьОбъект("ADODB.RecordSet");
Command.ActiveConnection = Соединение;
Command.CommandText = "SERT_SELL_FOR_1C"; // хранимая процедура
Command.CommandType = 8;
// НачДата и КонДата - входные параметры, задаются пользователем в диалоговом окне
Param1 = Command.CreateParameter("ABD", 7, 1, 4, НачДата);
Command.Parameters.Append(Param1);
Param2 = Command.CreateParameter("AED", 7, 1, 4, КонДАта);
Command.Parameters.Append(Param2);
RecordSet = Command.Execute();
Пока RecordSet.EOF() = 0 Цикл
// ИдСклада и Сумма - выходные параметры процедуры
ИдСклада = СуммаПродаж.Fields("DEPID").Value;
Сумма = СуммаПродаж.Fields("COST").Value;
..............
RecordSet.MoveNext();
КонецЦикла;
Соединение.CommitTrans();
Соединение.Close();
В итоге выдает ошибку:
Bind parameter errors:
- :[code:0x80040E55]Bad IN-parameter ordinal:1 - range [1..0]
[1]:
[code:0x80040E55]Bad IN-parameter ordinal:2 - range [1..0]
Я так понимаю, проблема в неверном определении входных параметров. Но как задать их ума не приложу