Получить на ТЧ курс на последнию дату

1. G_100243392280997043603 26.01.22 11:07 Сейчас в теме
Здравствуйте ребята. Значит есть ТЧ Где имеется колонка курс. Создал регистр накопления с видом "Обороты". Измирения "Валюта", Ресурс "Курс". Написал движение документа теперь при сохранение документа, курс записывает в регистр. Теперь нужно что бы при выборе валюты он мне возвратил курс из регистра на последнию дату.. Никак нимогу прошу помощь в студию..
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
15. DenisVol 3 26.01.22 15:31 Сейчас в теме
Запрос = Новый Запрос();
	Запрос.Текст = "ВЫБРАТЬ
	               |	КурсыВалютСрезПоследних.Курс КАК Курс,
	               |	КурсыВалютСрезПоследних.Кратность КАК Кратность
	               |ИЗ
	               |	РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";

	Запрос.УстановитьПараметр("Дата", НачалоДня(Дата));
	Запрос.УстановитьПараметр("Валюта", Валюта);
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	РезультатЗапроса.Следующий();
	КурсВалюты		=  РезультатЗапроса.Курс;
	КратностьКурса	=  РезультатЗапроса.Кратность;

Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. qazaas 26.01.22 13:20 Сейчас в теме
(1) А зачем оборотный регистр? Для курсов валют используется периодический регистр сведений, чтобы была возможность получать нужный курс на определенную дату, в том числе и последнюю.
interstep; +1 Ответить
7. G_100243392280997043603 26.01.22 13:25 Сейчас в теме
(6)
м числе и после
Потому что это сложно показалось мне через регистр сведений
10. qazaas 26.01.22 13:33 Сейчас в теме
(7) Лучше переделайте - проблем с ним нет и в нем нет ничего сложного.
Заодно и научитесь с ним работать немного
11. G_100243392280997043603 26.01.22 13:39 Сейчас в теме
(10)
ет и в нем нет ничего
Так я бы хотел бы. Но без помощи мне сложно ))) Если уж подскажите где что написать. а то я тупо реально не знаю.. Кстати регистр сведений должно быть независимым или подчиненным? Наверно втарой вариант да?
12. qazaas 26.01.22 13:49 Сейчас в теме
(11)
Независимый регистр, с периодичностью в течении дня, с основным отбором по периоду

Измерения:
- Валюта, Справочник.Валюты, Ведущее, Основной отбор, Запрет незаполненных значений

Ресурсы:
- Курс, Число 10,2
- Кратность, Число 10,0
13. G_100243392280997043603 26.01.22 14:04 Сейчас в теме
(12) Окей а код ? В общим модуле написать . ?
14. qazaas 26.01.22 14:10 Сейчас в теме
(13)
Например, такой:

Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	|	ВЫБОР
	|		КОГДА Курсы.Курс = 0
	|			ТОГДА 1
	|		ИНАЧЕ Курсы.Курс
	|	КОНЕЦ КАК Курс,
	|	ВЫБОР
	|		КОГДА Курсы.Кратность = 0
	|			ТОГДА 1
	|		ИНАЧЕ Курсы.Кратность
	|	КОНЕЦ КАК Кратность
	|ИЗ
	|	РегистрСведений.КурсыВалют.СрезПоследних(&Период, Валюта = &Валюта) КАК Курсы";
	Запрос.УстановитьПараметр("Период", Дата);
	Запрос.УстановитьПараметр("Валюта", Валюта);
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		Возврат ВалютнаяСумма * Выборка.Курс / Выборка.Кратность;				   
	КонецЕсли;
	Возврат ВалютнаяСумма;
Показать
2. TokarevV 30 26.01.22 11:35 Сейчас в теме
Надо в форме, где табличная часть создать процедуру "При изменении" для валюты. В процедуре запрос к регистру и ТекущиеДанные.Курс = Выборка.Курс;
3. G_100243392280997043603 26.01.22 11:47 Сейчас в теме
(2) где надо знаю. но код такой простой? Там же нужно дату написать. что бы программа поняла что нужно брать курс из последной даты и .тд
4. TokarevV 30 26.01.22 11:56 Сейчас в теме
(3) Обращайся к таблице срез последних, получишь просто последнюю дату .
Если надо по на определённую дату документа, тогда после записи пересчитывай цены на дату документа.
5. wladimirpav 26.01.22 12:00 Сейчас в теме
(4) У него регистр накопления, а не сведений
9. TokarevV 30 26.01.22 13:31 Сейчас в теме
(5) Накапливает курсы)
interstep; +1 Ответить
8. wladimirpav 26.01.22 13:29 Сейчас в теме
(7) Наоборот, через регистр сведений проще все, как выше и написали
15. DenisVol 3 26.01.22 15:31 Сейчас в теме
Запрос = Новый Запрос();
	Запрос.Текст = "ВЫБРАТЬ
	               |	КурсыВалютСрезПоследних.Курс КАК Курс,
	               |	КурсыВалютСрезПоследних.Кратность КАК Кратность
	               |ИЗ
	               |	РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";

	Запрос.УстановитьПараметр("Дата", НачалоДня(Дата));
	Запрос.УстановитьПараметр("Валюта", Валюта);
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	РезультатЗапроса.Следующий();
	КурсВалюты		=  РезультатЗапроса.Курс;
	КратностьКурса	=  РезультатЗапроса.Кратность;

Показать
Оставьте свое сообщение

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