X
X
Xvir432018-04-04 11:29:40
1C
Xvir43, 2018-04-04 11:29:40

Delphi request in 1s what's wrong?

Please help me complete the request, I do this:

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;

everything is executed without errors, but the loop does not work delphi skips it.
like an empty result.
what's wrong?
Процедура Отчет(ТабДок, КонецПериода, НачалоПериода, ПометкаУдаления) Экспорт
    //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Отчет)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет");
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   ЗаказПокупателяВозвраты.Номенклатура КАК Номенклатура,
    |   ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяВозвраты.Номенклатура),
    |   ЗаказПокупателяВозвраты.Количество КАК Количество
    |ИЗ
    |   Документ.ЗаказПокупателя.Возвраты КАК ЗаказПокупателяВозвраты
    |ГДЕ
    |   ЗаказПокупателяВозвраты.Ссылка.ПометкаУдаления = &ПометкаУдаления
    |   И ЗаказПокупателяВозвраты.Ссылка.ВозвратНаличными = &ВозвратНаличными
    |   И ЗаказПокупателяВозвраты.Ссылка.ДатаОтгрузки >= &НачалоПериода
    |   И ЗаказПокупателяВозвраты.Ссылка.ДатаОтгрузки <= &КонецПериода";
 
    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
    Запрос.УстановитьПараметр("ПометкаУдаления", ложь);
    Запрос.УстановитьПараметр("ВозвратНаличными", ложь);
 
    ИтоговаяТаблица = Запрос.Выполнить().Выгрузить();
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
    |   ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Номенклатура),
    |   ЗаказПокупателяТовары.Количество КАК Количество
    |ИЗ
    |   Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
    |ГДЕ
    |    ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &НачалоПериода
    |   И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки <= &КонецПериода
    |   И ЗаказПокупателяТовары.Ссылка.ПометкаУдаления = &ПометкаУдаления";
 
    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
    Запрос.УстановитьПараметр("ПометкаУдаления", ложь);
 
 
    Результат=Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() Цикл
        НоваяСтрока=ИтоговаяТаблица.Добавить();
        НоваяСтрока.Номенклатура=Результат.Номенклатура;
        НоваяСтрока.Количество=Результат.Количество;
         
    КонецЦикла;

here is the working procedure with 1s

Answer the question

In order to leave comments, you need to log in

1 answer(s)
K
Konstantin Nagibovich, 2018-04-04
@Xvir43

Are you passing the value of the DeletionMark parameter as a string?
In this case, you can immediately write in the request

Delete Flag = False

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question