|
Туплю, спать хочу, почему не работает? |
☑ |
0
Klesk666
26.08.14
✎
04:44
|
Объект.КартаЛояльности = ПолучитьКартуЛояльности(Объект.Партнер);
КонецПроцедуры
&НаСервере
Функция ПолучитьКартуЛояльности(Партнер)
Запрос= Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| КартыЛояльности.Ссылка
|ИЗ
| Справочник.КартыЛояльности КАК КартыЛояльности
|ГДЕ
| КартыЛояльности.Партнер = &Партнер
| И КартыЛояльности.Статус = &Статус";
Запрос.УстановитьПараметр( "Партнер",Партнер);
Запрос.УстановитьПараметр( "Статус",Перечисления.СтатусыВидовКартЛояльности.Действует);
Результат=Запрос.Выполнить().Выгрузить();
Если Результат.Количество()>0 Тогда
Возврат Результат[0].Ссылка;
Иначе
Возврат Справочники.КартыЛояльности.ПустаяСсылка();
КонецЕсли;
КонецФункции
в консоле по определенному партнеру возвращает одно значение, в модуле не хочет. Заранее спасибо.
|
|
1
Wobland
26.08.14
✎
04:52
|
параметры
|
|
2
Klesk666
26.08.14
✎
05:05
|
(1) спасибо
|
|
3
DrZombi
гуру
26.08.14
✎
06:33
|
(0) Перечисление можно не засовывать в параметры.
Можно так:
И КартыЛояльности.Статус = Значение(Перечисление.СтатусыВидовКартЛояльности.Действует)
|
|
4
DrZombi
гуру
26.08.14
✎
06:34
|
+(3) Зачем тебе получать все данные по запросу, когда ты всегда берешь только первую строчку. Так и пиши запрос, где получаешь только одну запись :)
|
|
5
DrZombi
гуру
26.08.14
✎
06:37
|
+(4) А так же, зачем Выгружать в ТЗ?
Когда делать проще
Результат=Запрос.Выполнить();
Выборка = Результат.Выбрать()
Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка;;
Иначе
Возврат Справочники.КартыЛояльности.ПустаяСсылка();
КонецЕсли;
|
|
6
Cube
26.08.14
✎
06:37
|
А ещё вместо
Результат=Запрос.Выполнить().Выгрузить();
Если Результат.Количество()>0 Тогда
Возврат Результат[0].Ссылка;
Иначе
Возврат Справочники.КартыЛояльности.ПустаяСсылка();
КонецЕсли;
пиши
Выборка = Запрос.Выполнить().Выбрать();
Возврат ?(Выборка.Следующий(), Выборка.Ссылка, Справочники.КартыЛояльности.ПустаяСсылка());
|
|
7
DrZombi
гуру
26.08.14
✎
06:38
|
(6) Точно, так красивее
:)
|
|
8
Любопытная
26.08.14
✎
06:38
|
(6) Минималист, елки)
|
|
9
Cube
26.08.14
✎
06:40
|
(8) Дык, зачем плодить сущности, которые далее в коде не используются...
|
|
10
Cube
26.08.14
✎
06:41
|
(9) Это я про
Результат=Запрос.Выполнить();
Выборка = Результат.Выбрать();
|
|
11
Любопытная
26.08.14
✎
06:42
|
(9) Не все сразу. Человек же учится, когда-нибудь и до этого голова дойдет
|
|
12
Godofsin
26.08.14
✎
07:09
|
(9) По шаблону просто пишется. Кто-то привык и на автомате обозначает результат запроса, потому что, к примеру, привык проверять его на пустоту.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший