Как исправить ошибку «Курсы данной валюты не предоставляются» при загрузке курсов валют в 1С?

Системный администратор 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Торговля и дистрибуция
← На главную

Многие пользователи современных конфигураций на платформе 1С:Предприятие 8.3, таких как 1С:ERP, 1С:Комплексная автоматизация (КА) и 1С:Управление торговлей (УТ), столкнулись с внезапной остановкой загрузки курсов валют USD и EUR. При попытке обновления система выдает сообщение об ошибке: «Невозможно получить файл данных с курсами валюты USD (код 840): Курсы данной валюты не предоставляются». Аналогичная ситуация наблюдается и для валюты EUR (код 978). В случаях, когда штатные механизмы дают сбой, пользователи часто используют расширение для загрузки курсов валют с сайта Центрального банка России, которое позволяет восстановить работу в обход сервисов поддержки.

В этой статье мы подробно разберем, почему возникла эта проблема, как она связана с техническими изменениями в сервисах 1С и Центрального Банка РФ, и рассмотрим пошаговые инструкции по восстановлению работоспособности системы.

Выясним причину возникновения ошибки

Разберем ситуацию с технической точки зрения. Традиционно 1С получала данные о курсах валют либо напрямую с сайта ЦБ РФ, либо через промежуточные шлюзы «Интернет-поддержки». Для обхода возникающих проблем можно использовать альтернативные методы, например, загрузку курсов валют ЦБРФ через Web-сервис или настроить получение курсов через прямой http-запрос к ресурсу Центробанка. Однако в июне 2024 года, после изменения порядка торгов основными валютами на Московской бирже, алгоритм предоставления данных изменился. Компания 1С перевела механизмы загрузки на новый программный интерфейс — webapi.1c.ru.

Основная проблема заключается в том, что старые версии классификаторов в базе данных содержат устаревшие параметры подключения. Когда программа пытается обратиться к сервису по старым адресам, она получает либо отказ в предоставлении данных, либо ответ в некорректном формате (так называемые «крякозябры»). Проанализируем основные методы решения проблемы.

Способ 1. Обновление классификатора валют (Основное решение)

Проанализируем самый простой и эффективный способ, который помогает в большинстве случаев. Проблема часто решается простым обновлением справочной информации, которая перенаправляет запросы программы на нужные сервера.

  1. Перейдем в раздел Администрирование (или НСИ и администрирование).
  2. Выберем пункт Интернет-поддержка и сервисы.
  3. Найдем подраздел Классификаторы и нажмем на ссылку Обновление классификаторов.
  4. В открывшемся окне выберем вариант «Загрузить обновления из интернета».
  5. Система произведет поиск доступных обновлений. Нам необходимо убедиться, что Классификатор валют обновился до версии 7 или выше.
  6. После завершения процесса обновления классификаторов попробуем снова выполнить загрузку курсов валют через справочник Валюты.

Важно: Для успешного выполнения этой операции у вас должна быть подключена действующая Интернет-поддержка с актуальным логином и паролем от портала ИТС. Если авторизация не пройдена, новый сервис webapi.1c.ru не отдаст данные, так как теперь работа с курсами требует обязательной идентификации пользователя.

Способ 2. Решение проблемы с кодировкой («крякозябрами»)

Если после обновления классификатора проблема сохраняется или данные приходят в нечитаемом виде, рассмотрим ситуацию с настройками сервера. Новый сервис 1С возвращает данные в формате UTF-8 без BOM. В некоторых случаях сервер 1С (особенно на ОС Windows с определенными локальными настройками) может некорректно интерпретировать этот поток байтов, принимая его за кодировку Windows-1251 (ANSI).

Проанализируем, как можно принудительно установить кодировку в коде конфигурации, если вы используете расширение или доработку. Для этого необходимо внести правки в логику обработки HTTP-ответа в общем модуле КурсыВалютСлужебный.

Пример кода для установки кодировки при чтении данных:


&НаСервере
Функция ПолучитьТекстОтветаВПравильнойКодировке(HTTPОтвет)
    // Принудительно читаем ответ как UTF-8, чтобы избежать появления крякозябр
    ТекстОтвета = HTTPОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
    Возврат ТекстОтвета;
КонецФункции

Если вы не планируете вносить изменения в код, проверьте региональные настройки сервера. На серверах под управлением Linux убедитесь, что основной локалью установлена ru_RU.UTF-8. На Windows-серверах проверьте настройки «Язык для программ, не поддерживающих Юникод» в панели управления — иногда смена этого параметра помогает системе правильно определять входящие потоки данных.

Способ 3. Проверка версии платформы 1С:Предприятие

Разберем еще один критический аспект. Работа с новыми API 1С ведется по защищенному протоколу TLS. Старые версии платформы могут иметь проблемы с актуальными сертификатами безопасности или протоколами шифрования при использовании системного WinHttp на стороне сервера. Для пользователей конфигураций УТ 11 или БП 3.0, которым критичен только определенный курс, может подойти внешняя обработка для загрузки курса USD по расписанию с сайта РБК.

Рекомендуется использовать версии платформы не ниже следующих:

Посмотрим на ситуацию: если сервер находится за пределами РФ, загрузка может продолжаться без сбоев. Это связано с тем, что зарубежные узлы часто используют другие маршруты доставки трафика (CDN) и иные настройки локализации по умолчанию, что нивелирует проблему с кодировкой UTF-8.

Почему это не работало «автоматически»?

Многие задаются вопросом: почему раньше всё работало без обновления классификатора? Проанализируем механизм. В старых релизах 1С обращения шли по прямым ссылкам, зашитым непосредственно в программный код общего модуля КурсыВалютСлужебный. С переходом на единое окно доступа к данным 1С реализовала более гибкую систему через классификатор. Теперь настройки того, «куда идти за курсом», хранятся в данных самого классификатора (версия 7). Это позволяет фирме 1С оперативно менять адреса серверов без выпуска внеочередных обновлений всей конфигурации.

Резюмируем порядок действий для быстрого исправления:

  1. Проверяем, что в 1С заполнена учетная запись Интернет-поддержки.
  2. Запускаем Обновление классификаторов и дожидаемся загрузки 7-й версии классификатора валют.
  3. Если используете 1С на сервере, очищаем кэш серверных вызовов (перезагрузка службы или удаление файлов из папки snccntx), так как старые параметры подключения могут закешироваться.
  4. Убеждаемся, что на сервере открыт доступ к доменам *.1c.ru и *.1c.com по порту 443 (HTTPS).

После восстановления загрузки данных не забудьте предоставить ответственным сотрудникам инструменты контроля.

Соблюдение этих шагов позволит восстановить загрузку актуальных курсов USD, EUR и других валют в автоматическом режиме без необходимости ручного ввода данных.

← На главную