2.1. Создадим обработку «ИнформацияОВалюте». Определите у нее два реквизита:
· «Валюта», тип «СправочникСсылка.Валюта»
· «Дата», тип «Дата», состав даты «Дата».
2.2. Создайте основную форму обработки. Разместите на нее два реквизита Валюта и Дата.
2.3. На основную форму дополнительно поместите элемент управления «Табличное поле». В свойство «Имя» запишите значение: «История». Определите тип «РегистрСведенийСписок.КурсыВалют»).
2.4. Разместите в диалоге надпись с заголовком «Курс». Далее поместите еще один элемент управления «Надпись», заголовок очистите, а в свойство «Имя» и «Данные» запишите значение «Курс».
Точно такие же действия выполните для кратности. В результате диалог примет следующий вид:
2.5. В модуле формы для события «При изменении» для элемента управления, связанного с валютой, определите процедуру – обработчик:
Процедура ВалютаПриИзменении(Элемент)
Отбор=Новый Структура("Валюта",Валюта); //1
Запись=РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата,Отбор); //2
|
|
Курс=Запись.Курс; //3
Кратность=Запись.Кратность; //4
История.Отбор.Валюта.Значение=Валюта; //5
История.Отбор.Валюта.Использование=Истина; //6
КонецПроцедуры
Поясним механизм работы данной процедуры:
1. Создается структура. В ней должно быть столько значений (пар «ключ»-значение), сколько измерений определено у регистра сведений. Имя ключа должно совпадать с именем измерения.
2. Использование метода «ПолучитьПоследнее(Дата,Отбор)» приводит к получению ближайшей поздней записи, для указанной даты (ближайшей из «прошлого»). Обратите внимание на то, что сколько бы не было определено измерений в регистре сведений, параметров у метода два.
3,4. Используя полученную запись, считываем значение курса и кратности
5. Для реквизита формы «История» (его тип «РегистрСведенийСписок.КурсыВалют») устанавливаем значение отбора по валюте.
6. «Включаем» отбор по валюте.
2.6. Проверьте созданный механизм на практике и покажите результаты работы преподавателю.