Судя по кракозябрам у вас ax3.0
совет: переключайтесь в русский язык ПЕРЕД копированием в буфер обмена, чтобы сохранить русский текст неизменным.
Очень подозрительным выглядит этот участок кода.
Цитата:
Сообщение от
JuniorAx
select excR
where excR.CurrencyCode == cur.CurrencyCodeParent
&& excR.FromDate == dt;
{
С чего это после точки запятой идет открывающая фигурная?
скорее всего, были какие-то правки.
Что касается кода вообще, то вот как он переводится на человеческий:
1. перебрать ВСЕ валюты, удовлетворяющие условию
2. выбрать ОДИН курс, удовлетворяющий условию
3. если курс выбран И его код равен некоему enumstr(!!!!!!)
3.1. то ДОБАВИТЬ еще один курс
... и так далее
Во-первых, по смыслу - вы ДОБАВЛЯЕТЕ курс, если он УЖЕ ЕСТЬ.
Поэтому во втором проходе получаете ДВА курса.
Аксапточка сделала ровно то, что ей сказали.
Во-вторых, по стилю - сравнивать CurrencyCode с EnumStr - предельно некорректно. Прежде всего потому, что Аксапта может работать с разными языками и никто не гарантирует, что enumstr в разных языках будут одинаковыми. НИКОГДА так не делайте. Заведите строковые параметры в таблице параметров.