Задача № 2.1 Отчет по ценам в произвольной валюте

1. Добавляем в схему компоновки новый параметр "ВалютаОтчёта".
2. В итоговый запрос добавляем новое поле:
ВЫБОР
КОГДА &ВалютаОтчёта = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
ТОГДА ВидыЦен.ВалютаЦены
ИНАЧЕ &ВалютаОтчёта
КОНЕЦ КАК ВалютаДляОтчёта
3. Поместим все это во временную таблицу.
4. Создадим новый пакет запросов, добавим в него нашпакет итоговый и два среза последних по курсам валют: Курс валюты отчета и курс валюты цены.
5. Установим для новых таблиц фильтр по периоду.
6. Соединим левым соединением обе курсовые таблицы с нашей итоговой таблицей по валюте отчета и валюите цены.
7. Добавим в требуемые поля такие конструкции: * КурсыЦены.Курс * КурсыЦены.Кратность / (КурсыОтчёта.Кратность * КурсыОтчёта.Курс).
8. Добавим наши параметры в отображаемые пользователю.
9. Заменяем в группировках и выбранных полях поле “Валюта” на “ВалютаДляОтчёта”:
10. Создаем форму отчета по умолчанию.
11. Добавляем на форму элемент "Отчет.КомпоновщикНастроек.ПользовательскиеНастройки"
12. Добавляем обработчик "ПриИзменении" к этому контролу
13. Прописывваем код:

&НаКлиенте
Процедура КомпоновщикНастроекПользовательскиеНастройки1ПриИзменении(Элемент)

// Определяем текущую настройку
Настройка = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ПолучитьОбъектПоИдентификатору(Элемент.ТекущаяСтрока);
// Если настройку получили и она Видцены
Если Настройка <> Неопределено
И Настройка.Параметр = Новый ПараметрКомпоновкиДанных("ВидЦены") тогда
// Получаем настройку валюты отчета
НастройкаВалюты = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(Отчет.КомпоновщикНастроек.ПользовательскиеНастройки, "ВалютаОтчета");
// Если нашли настройку, то записываем в нее нашу валюту из типа цены
Если НастройкаВалюты <> Неопределено Тогда
НастройкаВалюты.Значение = Настройка.Значение.ВалютаЦены;
Конецесли;
КонецЕсли;

КонецПроцедуры

Комментариев нет:

Отправить комментарий