|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
1с выполнение запроса
Пожалуйста помогите, мне нужно выполнить запрос и получить результат, делаю так :
Код:
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; вот полный код из конфигуратора где все нормально работает: Код:
Процедура Отчет(ТабДок, КонецПериода, НачалоПериода, ПометкаУдаления) Экспорт //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Отчет) // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателяВозвраты.Номенклатура КАК Номенклатура, | ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяВозвраты.Номенклатура), | ЗаказПокупателяВозвраты.Количество КАК Количество |ИЗ | Документ.ЗаказПокупателя.Возвраты КАК ЗаказПокупателяВозвраты |ГДЕ | ЗаказПокупателяВозвраты.Ссылка.ПометкаУдаления = &ПометкаУдаления | И ЗаказПокупателяВозвраты.Ссылка.ВозвратНаличными = &ВозвратНаличными | И ЗаказПокупателяВозвраты.Ссылка.ДатаОтгрузки >= &НачалоПериода | И ЗаказПокупателяВозвраты.Ссылка.ДатаОтгрузки <= &КонецПериода"; Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("ПометкаУдаления", ложь); Запрос.УстановитьПараметр("ВозвратНаличными", ложь); ИтоговаяТаблица = Запрос.Выполнить().Выгрузить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателяТовары.Номенклатура КАК Номенклатура, | ПРЕДСТАВЛЕНИЕ(ЗаказПокупателяТовары.Номенклатура), | ЗаказПокупателяТовары.Количество КАК Количество |ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары |ГДЕ | ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки >= &НачалоПериода | И ЗаказПокупателяТовары.Ссылка.ДатаОтгрузки <= &КонецПериода | И ЗаказПокупателяТовары.Ссылка.ПометкаУдаления = &ПометкаУдаления"; Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("ПометкаУдаления", ложь); Результат=Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл НоваяСтрока=ИтоговаяТаблица.Добавить(); НоваяСтрока.Номенклатура=Результат.Номенклатура; НоваяСтрока.Количество=Результат.Количество; КонецЦикла; |