1С Документооборот. Конвертация валюты
Иногда требуется настроить поступление задачи только при определённой сумме. И здесь важно перевести эту сумму в нужную валюту, т.к. 1млн тенге и 1 млн евро совсем не одно и то же
Создаём условие с таким кодом:
1 2 |
СуммаРуб = РаботаСКурсамиВалют.ПересчитатьВВалюту(Предмет.Сумма,Предмет.Валюта,Справочники.Валюты.НайтиПоКоду("643"),ТекущаяДата()); Результат = СуммаРуб >= 5000000; |
Сама функция выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
// Пересчитывает сумму из одной валюты в другую. // // Параметры: // Сумма - Число - сумма, которую необходимо пересчитать; // ИсходнаяВалюта - СправочникСсылка.Валюты - пересчитываемая валюта; // НоваяВалюта - СправочникСсылка.Валюты - валюта, в которую необходимо пересчитать; // Дата - Дата - дата курсов валют. // // Возвращаемое значение: // Число - пересчитанная сумма. // Функция ПересчитатьВВалюту(Сумма, ИсходнаяВалюта, НоваяВалюта, Дата) Экспорт Возврат РаботаСКурсамиВалютКлиентСервер.ПересчитатьПоКурсу(Сумма, ПолучитьКурсВалюты(ИсходнаяВалюта, Дата), ПолучитьКурсВалюты(НоваяВалюта, Дата)); КонецФункции // Пересчитывает сумму из текущей валюты в новую валюту по параметрам их курсов. // Параметры курсов валют можно получить функцией РаботаСКурсамиВалют.ПолучитьКурсВалюты. // // Параметры: // Сумма - Число - сумма, которую следует пересчитать. // // ПараметрыТекущегоКурса - Структура - параметры курса валюты, из которой надо пересчитать: // * Валюта - СправочникСсылка.Валюты - ссылка пересчитываемой валюты. // * Курс - Число - курс пересчитываемой валюты. // * Кратность - Число - кратность пересчитываемой валюты. // // ПараметрыНовогоКурса - Структура - параметры курса валюты, в которую надо пересчитать: // * Валюта - СправочникСсылка.Валюты - ссылка валюты, в которую идет пересчет. // * Курс - Число - курс валюты, в которую идет пересчет. // * Кратность - Число - кратность валюты, в которую идет пересчет. // // Возвращаемое значение: // Число - сумма, пересчитанная по новому курсу. // Функция ПересчитатьПоКурсу(Сумма, ПараметрыТекущегоКурса, ПараметрыНовогоКурса) Экспорт Если ПараметрыТекущегоКурса.Валюта = ПараметрыНовогоКурса.Валюта Или (ПараметрыТекущегоКурса.Курс = ПараметрыНовогоКурса.Курс И ПараметрыТекущегоКурса.Кратность = ПараметрыНовогоКурса.Кратность) Тогда Возврат Сумма; КонецЕсли; Если ПараметрыТекущегоКурса.Курс = 0 Или ПараметрыТекущегоКурса.Кратность = 0 Или ПараметрыНовогоКурса.Курс = 0 Или ПараметрыНовогоКурса.Кратность = 0 Тогда Возврат 0; КонецЕсли; Возврат Окр((Сумма * ПараметрыТекущегоКурса.Курс * ПараметрыНовогоКурса.Кратность) / (ПараметрыНовогоКурса.Курс * ПараметрыТекущегоКурса.Кратность), 2); КонецФункции // Возвращает курс валюты на дату. // // Параметры: // Валюта - СправочникСсылка.Валюты - валюта, для которой получается курс. // ДатаКурса - Дата - дата, на которую получается курс. // // Возвращаемое значение: // Структура: // * Курс - Число - курс валюты на указанную дату. // * Кратность - Число - кратность валюты на указанную дату. // * Валюта - СправочникСсылка.Валюты - ссылка валюты. // * ДатаКурса - Дата - дата получения курса. // Функция ПолучитьКурсВалюты(Валюта, ДатаКурса) Экспорт Результат = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта)); Результат.Вставить("Валюта", Валюта); Результат.Вставить("ДатаКурса", ДатаКурса); Возврат Результат; КонецФункции |
Комментарии закрыты