|   |   | 
| 
 | Запрос не возвращает результат | ☑ | ||
|---|---|---|---|---|
| 0
    
        socradt 23.03.13✎ 19:03 | 
        Хочу получить ссылку на первый документ, почему-то не работает.
  Заемщик = Объект.ДокументСсылка.Заемщик; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |мко_РеестрКредитныхСоглашенийСрезПоследних.КредитноеСоглашение |ИЗ | РегистрСведений.мко_РеестрКредитныхСоглашений.СрезПоследних КАК мко_РеестрКредитныхСоглашенийСрезПоследних |ГДЕ | мко_РеестрКредитныхСоглашенийСрезПоследних.КредитноеСоглашение.Заемщик = &Заемщик"; Запрос.УстановитьПараметр("Заемщик", Заемщик); Возврат Запрос.Выполнить().Выгрузить()[0].КредитноеСоглашение; Помогите разобраться, пжлст, что я делаю не так? | |||
| 1
    
        rphosts 23.03.13✎ 19:08 | 
        ну так выбирай прям в запросе первую запись... а не выбираем много, выгружаем в таблицу их все, берём из них только первую...
  и ещё, скорее всего запрос не отбирает ни 1 записи | |||
| 2
    
        socradt 23.03.13✎ 19:09 | 
        (1) В консоли запросов - отбирает, там и получается одна запись.     | |||
| 3
    
        pumbaEO 23.03.13✎ 19:09 | 
        Результат = Документ.Бла.ПустаяСсылка()
  РезультатЗапроса = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда Результат = Выборка.КредитноеСоглашение; КонецЕсли КонецЕсли; Возврат Результат; | |||
| 4
    
        Pashkaa 23.03.13✎ 19:09 | 
        Сообщить(?(Запрос.Выполнить().Пустой(), "Запрос пустой", "Запрос не пустой"))     | |||
| 5
    
        Pashkaa 23.03.13✎ 19:10 | 
        Проверь что в Заемщике передаешь ссылку     | |||
| 6
    
        rphosts 23.03.13✎ 19:11 | 
        (2) чудес не бывает: знаит или текст азщпроса или параметры отличаются или база над которой запросы выполнял     | |||
| 7
    
        socradt 23.03.13✎ 19:21 | 
        Нда, приведённые примеры попробовал, результат почему-то не выходит. Странно, проверю ещё раз, може действительно, чудес не бывает :)     | |||
| 8
    
        rs_trade 23.03.13✎ 19:24 | 
        (7) и код перепиши. а то не кошерный он. вот так не надо - Запрос.Выполнить().Выгрузить()[0].КредитноеСоглашение;     | |||
| 9
    
        socradt 23.03.13✎ 19:24 | 
        (4) Сообщение должно выйти при любом раскладе? Независимо от тонкоты-толстоты клиента и неважно где(на клиенте или на сервере оно прописано?)     | |||
| 10
    
        socradt 23.03.13✎ 19:27 | 
        (8) А как порекоммендуете? Как в (3) ? Или как-то выбрать первый док в запросе? Не знаю, как это... Башка пухнет)     | |||
| 11
    
        rs_trade 23.03.13✎ 19:30 | 
        (10)  можно как то так: Результат = Справочники.КредитныеСоглашения.ПустаяСсылка(); ... Выборка = Запрос.Выполнить.Выбрать(); Если Выборка.Следующий() Тогда Результат = Выборка.Ссылка(); КонецЕсли; Возврат Результат; | |||
| 12
    
        rs_trade 23.03.13✎ 19:31 | 
        Выгрузить()[0] валиться же будет на пустом результате     | |||
| 13
    
        socradt 23.03.13✎ 19:32 | 
        (11) (12) усёк, спасибо     | |||
| 14
    
        socradt 23.03.13✎ 20:03 | 
        Всё собрал в кучу, работает :)
  Попытка Результат = Документы.мко_КредитноеСоглашение.ПустаяСсылка(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | мко_РеестрКредитныхСоглашенийСрезПоследних.КредитноеСоглашение |ИЗ | РегистрСведений.мко_РеестрКредитныхСоглашений.СрезПоследних КАК мко_РеестрКредитныхСоглашенийСрезПоследних |ГДЕ | мко_РеестрКредитныхСоглашенийСрезПоследних.КредитноеСоглашение.Заемщик = &Клиент"; Запрос.УстановитьПараметр("Клиент", Источник); Сообщить(?(Запрос.Выполнить().Пустой(),"ЗапросПустой","ЗапросНеПустой")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Результат = Выборка.Получить(0); Иначе Сообщить("ВыборкиНиХренаНет!"); КонецЕсли; Возврат Результат; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; | |||
| 15
    
        pumbaEO 23.03.13✎ 20:24 | 
        (14) ужас.     | |||
| 16
    
        EugeniaK 23.03.13✎ 20:42 | 
        (14) 
  М-да... Зачем 2 раза запрос выполнять? И "попытка" явно лишняя | |||
| 17
    
        socradt 23.03.13✎ 22:36 | 
        (15) (16) 
  Ага, ужас. Но это уже от безысходности, разумеется так не пойдёт... | |||
| 18
    
        rs_trade 23.03.13✎ 22:40 | 
        Результат = Документы.мко_КредитноеСоглашение.ПустаяСсылка();
  Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | мко_РеестрКредитныхСоглашенийСрезПоследних.КредитноеСоглашение |ИЗ | РегистрСведений.мко_РеестрКредитныхСоглашений.СрезПоследних КАК мко_РеестрКредитныхСоглашенийСрезПоследних |ГДЕ | мко_РеестрКредитныхСоглашенийСрезПоследних.КредитноеСоглашение.Заемщик = &Клиент"; Запрос.УстановитьПараметр("Клиент", Источник); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Результат = Выборка.Получить(0); Иначе Сообщить("ВыборкиНиХренаНет!"); КонецЕсли; Возврат Результат; | |||
| 19
    
        rs_trade 23.03.13✎ 22:42 | 
        (18) Иначе Сообщить("ВыборкиНиХренаНет!");  это тоже выкинуть. НиХренаНет надо говорить там где функцию вызываешь, а она тебе пустую ссылку возвращает. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |