Функция Возврат

1. user1879509 01.02.23 12:09 Сейчас в теме
Коллеги подскажите начинающему программисту почему Возврат Курса не происходит?

Функция ПолучитьКурсВалюты(Валюта,Дата)Экспорт
	  
	  Если Валюта = Справочники.Валюты.Рубль Тогда
		  Возврат 1;
		  
		  Запрос = Новый Запрос;
		  Запрос.Текст = 
		  "ВЫБРАТЬ
		  |	КурсыВалютСрезПоследних.Валюта КАК Валюта,
		  |	КурсыВалютСрезПоследних.Курс КАК Курс
		  |ИЗ
		  |	РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";
		  
		  Запрос.УстановитьПараметр("Дата", Дата);
		  Запрос.УстановитьПараметр("Валюта", Валюта);
		  
		  РезультатЗапроса = Запрос.Выполнить();
		  
		  ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		  
		  Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			  Курс = ВыборкаДетальныеЗаписи.Курс;
		  КонецЦикла;
		      Возврат Курс ;
	 КонецЕсли; 
  КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
14. DBV 01.02.23 15:04 Сейчас в теме
(1) Можно ещё использовать функцию БСП РаботаСКурсамиВалют.ПолучитьКурсВалюты(Валюта, ДатаКурса)
19. idjumatov 17 02.02.23 09:11 Сейчас в теме
(1) Потому-что

Если Валюта = Справочники.Валюты.Рубль Тогда
          Возврат 1;


Предполагаю, что там должно стоять
Иначе
2. user1863362 01.02.23 12:11 Сейчас в теме
Потому ты что КонецЕсли не там написал.
И не предусмотрел случай, когда в регистре нет записей по твоей валюте.
3. user1879509 01.02.23 12:38 Сейчас в теме
(2) Функция ПолучитьКурсВалюты(Валюта,Дата)Экспорт

Если Валюта = Справочники.Валюты.Рубль Тогда
Возврат 1;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КурсыВалютСрезПоследних.Валюта КАК Валюта,
| ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) КАК Курс
|ИЗ
| РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";

Запрос.УстановитьПараметр("Дата", Дата);
Запрос.УстановитьПараметр("Валюта", Валюта);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Курс = 0 Тогда
Сообщить("Не задан курс для " * ВыборкаДетальныеЗаписи.Валюта);
Отказ = Истина;
КонецЕсли;
Если НЕ отказ = Истина Тогда
Курс = ВыборкаДетальныеЗаписи.Курс;
КонецЕсли;
КонецЦикла;

Возврат Курс;
4. пользователь 01.02.23 13:05
Сообщение было скрыто модератором.
...
5. user1879509 01.02.23 13:08 Сейчас в теме
6. пользователь 01.02.23 13:10
Сообщение было скрыто модератором.
...
7. user1879509 01.02.23 13:15 Сейчас в теме
8. пользователь 01.02.23 13:16
Сообщение было скрыто модератором.
...
9. пользователь 01.02.23 13:28
Сообщение было скрыто модератором.
...
10. пользователь 01.02.23 13:42
Сообщение было скрыто модератором.
...
12. user1879509 01.02.23 14:03 Сейчас в теме
(8)
(10) Подскажите, а зачем мы присваиваем переменной Результат значение 0 в самом начале?
13. пользователь 01.02.23 14:05
Сообщение было скрыто модератором.
...
15. user1863362 01.02.23 15:06 Сейчас в теме
(13)
то система упадет с ошибкой "Переменная Курс не обнаружена..."
Да вот если бы она падала, таких тем было бы куда меньше...
16. пользователь 01.02.23 15:15
Сообщение было скрыто модератором.
...
17. user1879509 01.02.23 15:19 Сейчас в теме
(16)Одни неприятности вокруг))))
Прикрепленные файлы:
18. user1863362 01.02.23 15:19 Сейчас в теме
(16) Не трынди:
Если Ложь Тогда
	Тест = 123;
КонецЕсли;

Сообщить(Строка(Тест) + " " + ТипЗнч(Тест));
11. user5300 1020 01.02.23 13:46 Сейчас в теме
Функция ПолучитьКурсВалюты(Валюта, ДатаКурса) Экспорт
    
    Если Валюта = Справочники.Валюты.Рубль Тогда
    	Возврат 1;
	КонецЕсли;
          
      Запрос = Новый Запрос;
      Запрос.Текст = 
      "ВЫБРАТЬ
      |    КурсыВалютСрезПоследних.Валюта КАК Валюта,
      |    КурсыВалютСрезПоследних.Курс КАК Курс
      |ИЗ
      |    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";
      
      Запрос.УстановитьПараметр("Дата", Дата);
      Запрос.УстановитьПараметр("Валюта", Валюта);
      
      РезультатЗапроса = Запрос.Выполнить().Выбрать();
      
      Если РезультатЗапроса.Следующий() Тогда
          Возврат РезультатЗапроса.Курс;
	  Иначе
		  Возврат 0;
	  КонецЦикла;
    
КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот