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

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

    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    РезультатЗапроса.Следующий();
    КурсВалюты = РезультатЗапроса.Курс;
    КратностьКурса = РезультатЗапроса.Кратность;
```
---
А зачем оборотный регистр? Для курсов валют используется периодический регистр сведений, чтобы была возможность получать нужный курс на определенную дату, в том числе и последнюю.
---
м числе и после Потому что это сложно показалось мне через регистр сведений
---
Лучше переделайте - проблем с ним нет и в нем нет ничего сложного.
Заодно и научитесь с ним работать немного
---
ет и в нем нет ничего Так я бы хотел бы. Но без помощи мне сложно ))) Если уж подскажите где что написать. а то я тупо реально не знаю.. Кстати регистр сведений должно быть независимым или подчиненным? Наверно втарой вариант да?
---
Независимый регистр, с периодичностью в течении дня, с основным отбором по периоду

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

Ресурсы:
- Курс, Число 10,2
- Кратность, Число 10,0
---
Окей а код ? В общим модуле написать . ?
---
Например, такой:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ВЫБОР
    | КОГДА Курсы.Курс = 0
    | ТОГДА 1
    | ИНАЧЕ Курсы.Курс
    | КОНЕЦ КАК Курс,
    | ВЫБОР
    | КОГДА Курсы.Кратность = 0
    | ТОГДА 1
    | ИНАЧЕ Курсы.Кратность
    | КОНЕЦ КАК Кратность
    |ИЗ
    | РегистрСведений.КурсыВалют.СрезПоследних(&Период, Валюта = &Валюта) КАК Курсы";
    Запрос.УстановитьПараметр("Период", Дата);
    Запрос.УстановитьПараметр("Валюта", Валюта);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат ВалютнаяСумма * Выборка.Курс / Выборка.Кратность;
    КонецЕсли;
    Возврат ВалютнаяСумма;
```
---
Надо в форме, где табличная часть создать процедуру "При изменении" для валюты. В процедуре запрос к регистру и ТекущиеДанные.Курс = Выборка.Курс;
---
где надо знаю. но код такой простой? Там же нужно дату написать. что бы программа поняла что нужно брать курс из последной даты и .тд
---
Обращайся к таблице срез последних, получишь просто последнюю дату .
Если надо по на определённую дату документа, тогда после записи пересчитывай цены на дату документа.
---
У него регистр накопления, а не сведений
---
Накапливает курсы)
---
Наоборот, через регистр сведений проще все, как выше и написали
---
```1c
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
    | КурсыВалютСрезПоследних.Курс КАК Курс,
    | КурсыВалютСрезПоследних.Кратность КАК Кратность
    |ИЗ
    | РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";

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

    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    РезультатЗапроса.Следующий();
    КурсВалюты = РезультатЗапроса.Курс;
    КратностьКурса = РезультатЗапроса.Кратность;
```