В работе бухгалтера и технического специалиста 1С часто возникают ситуации, когда регламентированные данные, такие как курсы валют ЦБ РФ, перестают обновляться в автоматическом режиме. Особенно остро эта проблема проявилась в марте 2022 года. В этой статье мы подробно разберем причины сбоев, проанализируем технические нюансы взаимодействия платформы с внешними ресурсами и рассмотрим несколько способов восстановления работоспособности загрузки.
Проанализируем ситуацию, когда в базе 1С:Бухгалтерия 3.0 или других конфигурациях (например, УПП 1.3 или УТ 10.3) курс валюты на текущую дату дублирует значение предыдущего дня, хотя на сайте Центробанка данные уже обновились. Существует несколько ключевых факторов, влияющих на этот процесс:
cbr.ru.Рассмотрим наиболее стабильный вариант решения проблемы для современных конфигураций на управляемых формах. Фирма «1С» предоставляет собственный шлюз для загрузки курсов, который работает более надежно в условиях блокировок основного сайта ЦБ. Как показывает практика, когда прямое обращение к cbr.ru выдает ошибку или старые данные, загрузка через 1С:ИТС продолжает работать корректно.
Для настройки этого механизма проверим следующие моменты:
Если проблема связана с невозможностью установить защищенное соединение (ошибки TLS/SSL), разберем шаги по обновлению сертификатов. Платформа 1С при выполнении кода HTTPСоединение опирается на хранилище сертификатов операционной системы (в Windows) или на файл cacert.pem (в Linux или при специфических настройках платформы).
Необходимо скачать актуальные корневые сертификаты с портала Госуслуг и установить их в хранилище «Доверенные корневые центры сертификации» на том сервере, где выполняется серверный код 1С (сервер приложений или локальный ПК в файловом варианте).
В старых конфигурациях, таких как Управление производственным предприятием 1.3, механизмы загрузки могут быть жестко прописаны в коде. Если основной сервер недоступен, можно рассмотреть переключение на РБК. В некоторых обработках предусмотрена смена адреса сервера. Посмотрим на логику выбора сервера:
Проанализируем, какая процедура отвечает за загрузку. Обычно это ЗагрузитьКурсыВалют() в общем модуле или обработке. Если штатная галка «Альтернативный сервер» не помогает, программист может временно изменить URL-адрес источника в коде.
Если стандартные методы РегламентныеЗадания не справляются, рассмотрим вариант создания временного решения — парсера HTML-страницы. Этот метод позволяет получить данные напрямую из визуального представления страницы сайта, обходя возможные проблемы с форматом XML.
Рассмотрим пример логики получения данных через HTTPСоединение и разбор текста:
// Пример упрощенной логики получения данных
Соединение = Новый HTTPСоединение("www.cbr.ru",,,, Прокси);
Запрос = Новый HTTPЗапрос("/currency_base/daily/");
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСтатуса = 200 Тогда
ТекстСтраницы = Ответ.ПолучитьТелоКакСтроку();
// Далее следует поиск подстроки с кодом валюты и извлечение значения курса
ПозицияДоллара = Найти(ТекстСтраницы, "USD");
// Логика выделения числа из HTML-тегов...
КонецЕсли;
Важно помнить, что использование ЧтениеXML гораздо предпочтительнее парсинга текста, так как структура HTML может измениться в любой момент, что приведет к поломке парсера. Однако в экстренных случаях, как временная мера, этот способ вполне жизнеспособен.
Если вы столкнулись с тем, что курсы «зависли», рекомендуем выполнить следующие действия:
8.3.20, 8.3.22 и выше) разработчики 1С оперативно внедряют патчи для работы с измененными требованиями безопасности государственных порталов.Подводя итог, можно сказать, что проблема загрузки курсов чаще всего носит инфраструктурный характер. Совместное использование актуальной версии 1С:Предприятие, установленных сертификатов Минцифры и сервиса 1С:ИТС позволяет минимизировать риски возникновения подобных ошибок.