Помогите пожалуйста выполнить запрос, делаю так:
Var
doc:olevariant;
QResult:olevariant;
sel_res,res: variant;
begin
//Проверяем, существует ли соединение с 1Cv8
if YesLinkToVariant(s1C8_ole) then
begin
doc:=s1C8_ole.NewObject('Запрос');
doc.text:='ВЫБРАТЬ ЗаказПокупателяТовары.Номенклатура КАК Номенклатура, ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Номенклатура), ЗаказПокупателяТовары.Количество КАК Количество ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары'+
' ГДЕ ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &НачалоПериода И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки <= &КонецПериода И ЗаказПокупателяТовары.Ссылка.ПометкаУдаления = &ПометкаУдаления; ';
doc.УстановитьПараметр('НачалоПериода',StrToDate('28.03.2018'));
doc.УстановитьПараметр('КонецПериода',StrToDate('30.03.2018'));
doc.УстановитьПараметр('ПометкаУдаления','ложь');
sel_res :=doc.Выполнить();
res:=sel_res.Выбрать();
try
while res.Следующий() do
begin
Memo1.Lines.Add( String(res.Номенклатура));
// (sel_res.Количество);
end;
except
on E: Exception do ShowMessage('Ошибка: while Choose.Next() do:'+E.ClassName+':'+E.Message);
end;
end
else begin
ShowMessage('Сначала нужно установить соединение с 1Cv8 !');
end;
end;
все выполняется без ошибок ,но цикл не работает дельфи его пропускает.
как будто пустой результат.
что не так?
Процедура Отчет(ТабДок, КонецПериода, НачалоПериода, ПометкаУдаления) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Отчет)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателяВозвраты.Номенклатура КАК Номенклатура,
| ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяВозвраты.Номенклатура),
| ЗаказПокупателяВозвраты.Количество КАК Количество
|ИЗ
| Документ.ЗаказПокупателя.Возвраты КАК ЗаказПокупателяВозвраты
|ГДЕ
| ЗаказПокупателяВозвраты.Ссылка.ПометкаУдаления = &ПометкаУдаления
| И ЗаказПокупателяВозвраты.Ссылка.ВозвратНаличными = &ВозвратНаличными
| И ЗаказПокупателяВозвраты.Ссылка.ДатаОтгрузки >= &НачалоПериода
| И ЗаказПокупателяВозвраты.Ссылка.ДатаОтгрузки <= &КонецПериода";
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("ПометкаУдаления", ложь);
Запрос.УстановитьПараметр("ВозвратНаличными", ложь);
ИтоговаяТаблица = Запрос.Выполнить().Выгрузить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
| ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Номенклатура),
| ЗаказПокупателяТовары.Количество КАК Количество
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
|ГДЕ
| ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &НачалоПериода
| И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки <= &КонецПериода
| И ЗаказПокупателяТовары.Ссылка.ПометкаУдаления = &ПометкаУдаления";
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("ПометкаУдаления", ложь);
Результат=Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
НоваяСтрока=ИтоговаяТаблица.Добавить();
НоваяСтрока.Номенклатура=Результат.Номенклатура;
НоваяСтрока.Количество=Результат.Количество;
КонецЦикла;
вот рабочая процедура с 1с