Имя: Пароль:
system
 
Получение и обновление курсов валют в системе.
(1) Asmody
20 июля 2022 г.
9:02
Курсы валют обычно получают из внешнего источника, чтобы расчеты в системе соответствовали реальной ситуации. Какой источник данных вы планируете использовать для получения актуальных курсов валют?
(2) Александр111
20 июля 2022 г.
9:05
Важно заранее определить источник данных: официальный регулятор или коммерческий сервис с API.
(3) AlexKimp
20 июля 2022 г.
9:09
При автоматическом обновлении стоит учитывать расписание публикации курсов, чтобы не получать старые значения.
(4) Bigbro
20 июля 2022 г.
9:12
Хорошей практикой считается хранение истории курсов, а не только текущего значения.
(5) novichok79
20 июля 2022 г.
9:16
Если курс не удалось получить, система должна корректно сообщить об ошибке, а не считать по нулю.
(6) rabota_v8
20 июля 2022 г.
9:19
Самый популярный баг — курс обновился, а цены в документах остались старыми.
(7) orakool
20 июля 2022 г.
9:22
Желательно предусмотреть ручное обновление курса на случай проблем с внешним сервисом.
(8) Чеширский
20 июля 2022 г.
9:26
При пересчете сумм важно фиксировать курс в документе, иначе цифры начнут "плавать".
Показать спойлер
Функция ЧитатьКакСтруктуру(XML, ТипПоследнегоЭлемента = Неопределено)
	Ветка = Новый Структура;
	Значение = "";
	
	Пока XML.Прочитать() Цикл
		ТипУзла = XML.ТипУзла;
		Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
			ТипПоследнегоЭлемента = ТипУзлаXML.НачалоЭлемента;
			Временно = "";
			Если Ветка.Свойство(XML.Имя, Временно) Тогда
				Если ТипЗнч(Временно) <> Тип("Массив") Тогда
					ЭнЗэ = Новый Массив;
					ЭнЗэ.Добавить(Временно);
					Временно = ЭнЗэ;
					ЭнЗэ = "";
					Ветка.Удалить(XML.Имя);
					Ветка.Вставить(XML.Имя, Временно);
				КонецЕсли;
				Временно.Добавить(ЧитатьКакСтруктуру(XML, ТипПоследнегоЭлемента));
			Иначе
				Ветка.Вставить(XML.Имя, ЧитатьКакСтруктуру(XML, ТипПоследнегоЭлемента));
			КонецЕсли;
		ИначеЕсли ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
			ТипПоследнегоЭлемента = ТипУзлаXML.КонецЭлемента;
			Возврат ?(ЗначениеЗаполнено(Ветка), Ветка, Значение);
		ИначеЕсли ТипУзла = ТипУзлаXML.Текст И Не ТипПоследнегоЭлемента = ТипУзлаXML.Текст Тогда
			ТипПоследнегоЭлемента = ТипУзлаXML.Текст;
			Значение = XML.Значение;
			XML.Прочитать(); //Вычитка закрывающего тега
			Возврат Значение;
		Иначе
			// игнорируем текст вне узлов
			// можем также добавлять текст вне узлов в текст, находящийся в предыдущем узле через какой нибудь спецсимвол
			// например через Таб, код ниже:
			//Временно[Временно.ВГраница()] = Временно[Временно.ВГраница()] + Символы.Таб + XML.Значение
		КонецЕсли;
	КонецЦикла;
	
	Возврат Ветка;
КонецФункции


(9) Baiji
20 июля 2022 г.
9:29
Иногда кажется, что курс меняется чаще, чем успевают обновляться отчеты.
(10) timurhv
20 июля 2022 г.
9:32
После обновления курсов полезно запускать переоценку и контрольные отчеты.
(11) okmail
20 июля 2022 г.
9:35
Идеальная работа с валютами — когда пользователи вспоминают о них только в момент оплаты.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс
Для создания новых тем нужно войти или зарегистрироваться