Для получения курса валюты в таких конфигурациях как: УТ, УТП, УПП и Бухгалтерия существует типовая функция ПолучитьКурсВалюты(Валюта, ДатаКурса), которая располагается в общем модуле МодульВалютногоУчета. Текст функции в данных конфигурациях практически одинаков, отличается, разве что в УПП выводом доп. сообщений и проверкой входных параметров.
Текст функции из УПП:
// Возвращает курс валюты на дату
//
// Параметры:
// Валюта - Валюта (элемент справочника "Валюты")
// ДатаКурса - Дата, на которую следует получить курс
// ПроверятьКурс - Если Истина и курс или кратность для валюты не установлены (=0),
// то им будет присвоено значение 1 (для избежания дальнейших ошибок деления на 0)
//
// Возвращаемое значение:
// Структура, содержащая:
// Курс - курс валюты
// Кратность - кратность валюты
//
Функция ПолучитьКурсВалюты(Валюта, ДатаКурса, ПроверятьКурс = Истина) Экспорт
Если НЕ ЗначениеЗаполнено(Валюта) Тогда
ОбщегоНазначения.СообщитьСлужебнуюИнформацию("ПолучитьКурсВалюты() - не заполнена валюта");
Возврат Новый Структура("Курс, Кратность", 1, 1);
КонецЕсли;
СтруктураКурсов = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта));
Если СтруктураКурсов.Курс = 0 и ПроверятьКурс Тогда
СтруктураКурсов.Вставить("Курс", 1);
ОбщегоНазначения.СообщитьОбОшибке("По валюте """ + Валюта + """ на дату """ + ДатаКурса + """ обнаружен нулевой курс."
+ Символы.ПС + Символы.Таб + "Временно, для расчетов, присвоено значение 1.");
КонецЕсли;
Если СтруктураКурсов.Кратность = 0 и ПроверятьКурс Тогда
СтруктураКурсов.Вставить("Кратность", 1);
ОбщегоНазначения.СообщитьОбОшибке("По валюте """ + Валюта + """ на дату """ + ДатаКурса + """ обнаружена нулевая кратность."
+ Символы.ПС + Символы.Таб + "Временно, для расчетов, присвоено значение 1.");
КонецЕсли;
Возврат СтруктураКурсов;
КонецФункции // ПолучитьКурсВалюты()
А это текст этой же функции только из УТ:
Пример вызова функции из модуля документа Реализация товаров и услуг:
Текст функции из УПП:
// Возвращает курс валюты на дату
//
// Параметры:
// Валюта - Валюта (элемент справочника "Валюты")
// ДатаКурса - Дата, на которую следует получить курс
// ПроверятьКурс - Если Истина и курс или кратность для валюты не установлены (=0),
// то им будет присвоено значение 1 (для избежания дальнейших ошибок деления на 0)
//
// Возвращаемое значение:
// Структура, содержащая:
// Курс - курс валюты
// Кратность - кратность валюты
//
Функция ПолучитьКурсВалюты(Валюта, ДатаКурса, ПроверятьКурс = Истина) Экспорт
Если НЕ ЗначениеЗаполнено(Валюта) Тогда
ОбщегоНазначения.СообщитьСлужебнуюИнформацию("ПолучитьКурсВалюты() - не заполнена валюта");
Возврат Новый Структура("Курс, Кратность", 1, 1);
КонецЕсли;
СтруктураКурсов = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта));
Если СтруктураКурсов.Курс = 0 и ПроверятьКурс Тогда
СтруктураКурсов.Вставить("Курс", 1);
ОбщегоНазначения.СообщитьОбОшибке("По валюте """ + Валюта + """ на дату """ + ДатаКурса + """ обнаружен нулевой курс."
+ Символы.ПС + Символы.Таб + "Временно, для расчетов, присвоено значение 1.");
КонецЕсли;
Если СтруктураКурсов.Кратность = 0 и ПроверятьКурс Тогда
СтруктураКурсов.Вставить("Кратность", 1);
ОбщегоНазначения.СообщитьОбОшибке("По валюте """ + Валюта + """ на дату """ + ДатаКурса + """ обнаружена нулевая кратность."
+ Символы.ПС + Символы.Таб + "Временно, для расчетов, присвоено значение 1.");
КонецЕсли;
Возврат СтруктураКурсов;
КонецФункции // ПолучитьКурсВалюты()
А это текст этой же функции только из УТ:
// Возвращает курс валюты на дату
//
// Параметры:
// Валюта - Валюта (элемент справочника "Валюты")
// ДатаКурса - Дата, на которую следует получить курс
//
// Возвращаемое значение:
// Структура, содержащая:
// Курс - курс валюты
// Кратность - кратность валюты
//
Функция ПолучитьКурсВалюты(Валюта, ДатаКурса) Экспорт
Структура = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта));
Возврат Структура;
КонецФункции // ПолучитьКурсВалюты()
//
// Параметры:
// Валюта - Валюта (элемент справочника "Валюты")
// ДатаКурса - Дата, на которую следует получить курс
//
// Возвращаемое значение:
// Структура, содержащая:
// Курс - курс валюты
// Кратность - кратность валюты
//
Функция ПолучитьКурсВалюты(Валюта, ДатаКурса) Экспорт
Структура = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта));
Возврат Структура;
КонецФункции // ПолучитьКурсВалюты()
Пример вызова функции из модуля документа Реализация товаров и услуг:
СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента, ОбщегоНазначения.ПолучитьРабочуюДату());
КурсВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Курс;
КратностьВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Кратность;
КурсВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Курс;
КратностьВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Кратность;
адениум семена и взрослые адениумы
ОтветитьУдалитьДобавление материала
разместить статью с активной ссылкой сайт с высоким ИКС
Спасибо. А приходилось запросом получать курсы валют для конвертации долларов в рубли, которые падают мне в карман с моегоденежного дерева
ОтветитьУдалить