Почему не загружаются курсы валют в 1С и как решить проблему с актуализацией данных

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет
← На главную

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

Выясняем причины: почему стандартные механизмы дают сбой

Проанализируем ситуацию, когда в базе 1С:Бухгалтерия 3.0 или других конфигурациях (например, УПП 1.3 или УТ 10.3) курс валюты на текущую дату дублирует значение предыдущего дня, хотя на сайте Центробанка данные уже обновились. Существует несколько ключевых факторов, влияющих на этот процесс:

  1. Проблемы с безопасностью и SSL-сертификатами. В связи с переходом многих государственных ресурсов на российские сертификаты безопасности (НУЦ Минцифры), старые версии платформы 1С или операционные системы без соответствующих корневых сертификатов перестают «доверять» соединению. Это приводит к разрыву сессии при попытке обращения к cbr.ru.
  2. Изменение регламента ЦБ РФ. В периоды высокой волатильности рынка Банк России может изменять временной интервал формирования курса. Если ранее данные обновлялись в 16:30, то в пиковые моменты это может происходить позже, что вызывает задержки в обновлении XML-файлов на серверах.
  3. DDoS-атаки на инфраструктуру. Массированные атаки на шлюзы ЦБ и РБК вынуждают администраторов включать фильтрацию трафика. Это может блокировать запросы от серверов 1С, особенно если они находятся в облачных сервисах или используют зарубежные IP-адреса.
  4. Кэширование на стороне прокси-серверов. Иногда между вашей базой и сайтом ЦБ стоит прокси-сервер, который отдает «старую» версию страницы или XML-файла, считая её актуальной.

Способ 1. Переход на загрузку через сервис 1С:ИТС

Рассмотрим наиболее стабильный вариант решения проблемы для современных конфигураций на управляемых формах. Фирма «1С» предоставляет собственный шлюз для загрузки курсов, который работает более надежно в условиях блокировок основного сайта ЦБ. Как показывает практика, когда прямое обращение к cbr.ru выдает ошибку или старые данные, загрузка через 1С:ИТС продолжает работать корректно.

Для настройки этого механизма проверим следующие моменты:

Способ 2. Установка российских сертификатов в систему

Если проблема связана с невозможностью установить защищенное соединение (ошибки TLS/SSL), разберем шаги по обновлению сертификатов. Платформа 1С при выполнении кода HTTPСоединение опирается на хранилище сертификатов операционной системы (в Windows) или на файл cacert.pem (в Linux или при специфических настройках платформы).

Необходимо скачать актуальные корневые сертификаты с портала Госуслуг и установить их в хранилище «Доверенные корневые центры сертификации» на том сервере, где выполняется серверный код 1С (сервер приложений или локальный ПК в файловом варианте).

Способ 3. Использование альтернативных источников (РБК)

В старых конфигурациях, таких как Управление производственным предприятием 1.3, механизмы загрузки могут быть жестко прописаны в коде. Если основной сервер недоступен, можно рассмотреть переключение на РБК. В некоторых обработках предусмотрена смена адреса сервера. Посмотрим на логику выбора сервера:

Проанализируем, какая процедура отвечает за загрузку. Обычно это ЗагрузитьКурсыВалют() в общем модуле или обработке. Если штатная галка «Альтернативный сервер» не помогает, программист может временно изменить URL-адрес источника в коде.

Способ 4. Создание собственного парсера (Техническое решение)

Если стандартные методы РегламентныеЗадания не справляются, рассмотрим вариант создания временного решения — парсера HTML-страницы. Этот метод позволяет получить данные напрямую из визуального представления страницы сайта, обходя возможные проблемы с форматом XML.

Рассмотрим пример логики получения данных через HTTPСоединение и разбор текста:


// Пример упрощенной логики получения данных
Соединение = Новый HTTPСоединение("www.cbr.ru",,,, Прокси);
Запрос = Новый HTTPЗапрос("/currency_base/daily/");
Ответ = Соединение.Получить(Запрос);

Если Ответ.КодСтатуса = 200 Тогда
    ТекстСтраницы = Ответ.ПолучитьТелоКакСтроку();
    // Далее следует поиск подстроки с кодом валюты и извлечение значения курса
    ПозицияДоллара = Найти(ТекстСтраницы, "USD");
    // Логика выделения числа из HTML-тегов...
КонецЕсли;

Важно помнить, что использование ЧтениеXML гораздо предпочтительнее парсинга текста, так как структура HTML может измениться в любой момент, что приведет к поломке парсера. Однако в экстренных случаях, как временная мера, этот способ вполне жизнеспособен.

Рекомендации по диагностике

Если вы столкнулись с тем, что курсы «зависли», рекомендуем выполнить следующие действия:

  1. Проверить дату загрузки. Убедитесь, что вы пытаетесь загрузить курс «на завтра». ЦБ РФ обычно публикует курсы на следующий день после 15:00–16:00 по Москве.
  2. Очистить кэш. В случае использования прокси-сервера в организации, попробуйте выполнить загрузку с другого канала связи (например, через мобильную точку доступа), чтобы исключить влияние сетевых фильтров.
  3. Обновить платформу. В новых релизах платформы (например, ветки 8.3.20, 8.3.22 и выше) разработчики 1С оперативно внедряют патчи для работы с измененными требованиями безопасности государственных порталов.
  4. Проверить настройки валюты. Иногда пользователи случайно меняют способ установки курса на «Связан с курсом другой валюты» или «Рассчитывается по формуле», что блокирует загрузку из интернета.

Подводя итог, можно сказать, что проблема загрузки курсов чаще всего носит инфраструктурный характер. Совместное использование актуальной версии 1С:Предприятие, установленных сертификатов Минцифры и сервиса 1С:ИТС позволяет минимизировать риски возникновения подобных ошибок.

← На главную