|
Обращение к 1С из Delphi | ☑ | ||
---|---|---|---|---|
0
AndreyV62
29.06.16
✎
16:59
|
procedure TForm1.Button2Click(Sender: TObject);
var C1,Connection,OleNomen,OleFizLica: OleVariant; StrData,refEvalExpr : OleVariant; Query, Choose : OleVariant; queryRes : OleVariant; Rslt : OleVariant; Next : Boolean; Str,SQL : string; Count : integer; objsel, TabRez : Variant; df, dt: Double; begin C1 := CreateOleObject('V82.comconnector'); Connection := C1.Connect('Srvr="td-1c";Ref="Programmers";Usr="' + Trim(Edit8.Text) + '";Pwd="' + Trim(Edit9.Text) + '";'); objsel := Connection.NewObject('Запрос'); objsel.Текст := ' ВЫБРАТЬ ПЕРВЫЕ 100'+ ' ЗаказПокупателя.Дата,'+ ' ЗаказПокупателя.Номер,'+ ' ЗаказПокупателя.Ссылка,'+ ' ЗаказПокупателя.ДатаОтгрузки,'+ ' ЗаказПокупателя.Контрагент'+ ' ИЗ'+ ' Документ.ЗаказПокупателя КАК ЗаказПокупателя'+ ' ГДЕ'+ ' ЗаказПокупателя.Эксмо_ДатаОтгрузки >= &ДатаОтгр'+ ' ЗаказПокупателя.СкладГруппа.Код = &Код'; df := cxDateEdit8.Date + cxTimeEdit11.Time; objsel.УстановитьПараметр('ДатаОтгр', '20160601'); objsel.УстановитьПараметр('Код','AST000046'); Query := Connection.NewObject('Запрос'); Query.Text := objsel.Текст; Rslt := Query.Execute(); StrData := Rslt.Выбрать(); Next := True; While Next do begin Next := StrToBool(StrData.Следующий()); if Next then begin Form1.Memo1.Lines.Add(trim(StrData.Номер)+#9+trim(StrData.Дата)); Application.ProcessMessages; end; end; end; // При отработке запрсоса выдаётся сообщение, что не заданы параметры. Может кто сталкивался? Был такой пользователь "paulic" на его осное я и попытался реализовать запрос к 1С. |
|||
1
Зая Бусечка
29.06.16
✎
17:00
|
Параметры ставятся одному объекту, а выполняется другой...
|
|||
2
Nuobu
29.06.16
✎
17:01
|
Query := Connection.NewObject('Запрос');
Query.Text := objsel.Текст; Rslt := Query.Execute(); Вот это выкинь. сделай так: Rslt := objsel.Execute(); |
|||
3
AndreyV62
29.06.16
✎
17:10
|
Спасибо. А это разве принципиально для того, чтобы запрос принял команды на установку параметров?
objsel.УстановитьПараметр('ДатаОтгр', '20160601'); objsel.УстановитьПараметр('Код','AST000046'); |
|||
4
Зая Бусечка
29.06.16
✎
17:11
|
(3) параметры принимает конкректный объект, а не "вообще запрос"
|
|||
5
Nuobu
29.06.16
✎
17:13
|
(3) Запрос = Новый Запрос;
Запрос.Текст = "Выбрать тралялял, тарялял1, траляля2 из Регистр как регистрНичегоПримечательного ГДЕ Парам1 = &Парам1 И Парам2 = &Парам2"; Запрос.УстановитьПараметр("парам1", Парам1); Запрос.УстановитьПараметр("парам2", Парам2); Запрос2 = Новый Запрос; Запрос2.Текст = Запрос.Текст; Запрос2.Выполнить(); // Тут ругается, не пойму чего?? можете помочь? |
|||
6
AndreyV62
29.06.16
✎
17:16
|
ЗаказПокупателя.СкладГруппа.Код = &Код';
Выдаётся ошибка - не указан параметр "Код" |
|||
7
Nuobu
29.06.16
✎
17:18
|
(6) Покажи переделанный текст.
|
|||
8
AndreyV62
30.06.16
✎
13:23
|
О чудо - работает.
Спасибо огромное. |
|||
9
AndreyV62
30.06.16
✎
13:45
|
objsel.Текст := ' ВЫБРАТЬ ПЕРВЫЕ 100'+
' ЗаказПокупателя.Дата,'+ ' ЗаказПокупателя.Номер,'+ ' ЗаказПокупателя.Ссылка,'+ ' ЗаказПокупателя.ДатаОтгрузки,'+ ' ЗаказПокупателя.Контрагент'+ ' ИЗ'+ ' Документ.ЗаказПокупателя КАК ЗаказПокупателя'+ ' ГДЕ'+ ' ЗаказПокупателя.ДатаОтгрузки >= &ДатаОтгр'+ ' И ЗаказПокупателя.СкладГруппа.Код = &Код'; df := cxDateEdit8.Date + cxTimeEdit11.Time; objsel.УстановитьПараметр('ДатаОтгр', df); objsel.УстановитьПараметр('Код','AST000046'); Как параметру дата можно скормить cxDateEdit8.Date + cxTimeEdit11.Time? Подскажите |
|||
10
Зая Бусечка
30.06.16
✎
13:46
|
(9) Отформатируй его в виде '20160630140000'
т.е 30 июня, 14 часов ровно |
|||
11
AndreyV62
30.06.16
✎
13:52
|
Спасибо.
А синтаксис не подскажете применительно к cxDateEdit8.Date + cxTimeEdit11.Time? |
|||
12
Зая Бусечка
30.06.16
✎
13:53
|
(11) Кто из нас дельфист - ты или я?
|
|||
13
Nuobu
30.06.16
✎
14:05
|
||||
14
Garykom
гуру
30.06.16
✎
14:14
|
(12) "После 1С разобраться в какой то Delphi это раз плюнуть"©
|
|||
15
Зая Бусечка
30.06.16
✎
14:42
|
(14) Так сказала Саша (с) ))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |