В начале 2023 года многие пользователи программных продуктов 1С столкнулись с проблемой при загрузке курсов валют, а именно — дирхама ОАЭ (код AED, цифровой код 784). Курсы выглядели «кривыми», либо загрузка вовсе прекращалась с ошибкой. В данной статье мы подробно разберем, почему это произошло, проанализируем технические нюансы и рассмотрим пошаговые инструкции по исправлению ситуации в вашей информационной базе.
Разберем первопричину. До 18 января 2023 года Центральный Банк Российской Федерации не устанавливал ежедневный официальный курс дирхама ОАЭ. В системах автоматизации и на сайтах-агрегаторах, таких как РБК, часто транслировалось старое фиксированное значение, которое многие годы составляло около 81.2663 за 10 дирхамов. Таким образом, кратность (количество единиц валюты, за которые дается цена в рублях) была равна 10.
Ситуация кардинально изменилась 18 января 2023 года, когда ЦБ РФ включил AED в список валют, для которых устанавливаются официальные ежедневные котировки. При этом изменился подход к котированию: курс стал устанавливаться за 1 единицу валюты (кратность 1). Рассмотрим, к чему это привело в учетных системах:
Валюты в 1С не была изменена кратность с 10 на 1 именно с нужной даты, программа продолжала считать, что 20 рублей — это цена за 10 дирхамов, что приводило к занижению курса в 10 раз.Проанализируем ситуацию, когда кнопка Загружать из Интернета недоступна или выдается сообщение «Загрузка не поддерживается». В типовых конфигурациях (таких как Бухгалтерия предприятия, ERP, Управление торговлей) возможность загрузки напрямую зависит от того, как валюта заведена в справочник. Выполним следующие действия для исправления:
Валюты.R01230.Именно наличие идентификатора R01230 в свойствах валюты позволяет программным механизмам 1С обращаться к корректному узлу на сайте Центробанка или РБК.
Если в вашей базе за предыдущие периоды накопились неверные данные, нам необходимо отредактировать историю курсов. Посмотрим, как это сделать правильно, чтобы не нарушить учет за прошлые годы:
AED и перейдем по ссылке Курсы валюты.Важный момент: кратность в 1С — это периодический реквизит. Если вы измените ее в форме списка курсов, программа создаст новую запись в регистре сведений. Убедитесь, что с момента перехода на новые правила котирования расчеты в документах проводятся исходя из актуальной кратности.
Рассмотрим альтернативный и зачастую более стабильный способ получения курса. Дирхам ОАЭ имеет жесткую привязку к доллару США (USD) в соотношении 1 USD = 3.6725 AED. Если официальный сервис загрузки работает нестабильно, мы можем настроить 1С на автоматический расчет дирхама на основании курса доллара.
Выполним следующие шаги в карточке валюты:
USD / 3.6725.Теперь при каждой загрузке курса USD программа автоматически пересчитает курс AED. Этот метод позволяет избежать ошибок, связанных с временными сбоями на стороне серверов РБК или изменениями в структуре их tsv файлов.
Если вы пишете собственную обработку для загрузки курсов или анализируете сырые данные с cbrates.rbc.ru, обратите внимание на структуру файла 784.tsv. Типичная ошибка парсинга возникает из-за того, что разработчики ожидают фиксированную колонку с кратностью, но в переходные периоды данные могут выглядеть так:
// Пример содержимого файла cbrates.rbc.ru/tsv/cb/784.tsv
20230117 10 81.2663
20230118 10 81.2663
20230119 1 18.7511
Проанализируем этот фрагмент: 19 января значение кратности во второй колонке изменилось с 10 на 1. Ваш программный код должен обязательно считывать это значение и записывать его в соответствующий ресурс регистра сведений КурсыВалют. Если ваша конфигурация сильно кастомизирована и не поддерживает изменение кратности в процессе загрузки, это потребует доработки модуля загрузки курсов валют.
Для проверки корректности загрузки можно использовать следующий фрагмент кода для получения актуального курса с учетом кратности в контексте запроса или встроенного языка:
СтруктураКурса = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаЗапроса, Новый Структура("Валюта", СсылкаНаAED));
Если СтруктураКурса.Кратность > 0 Тогда
РеальныйКурс = СтруктураКурса.Курс / СтруктураКурса.Кратность;
// Дальнейшие расчеты
КонецЕсли;
Мы выяснили, что «кривые» курсы дирхама — это не системная ошибка 1С, а следствие изменения политики ЦБ РФ и соответствующего изменения параметров котирования. Для корректной работы достаточно обновить Классификатор валют, проверить Идентификатор R01230 и убедиться, что в истории курсов произошел переход кратности с 10 на 1. В случае сомнений в стабильности внешних сервисов, использование формулы привязки к USD является наиболее надежным профессиональным решением.