IT-КУБиК-Сервис • Форум 1С
Абстрактный тёмно-синий фон с мягкими геометрическими линиями и оранжевыми акцентами, создающий технологичную атмосферу

Агрегатор публикаций с Инфостарта по 1С:Предприятие — обработки, расширения, конфигурации, интеграции и администрирование. Сообщество специалистов 1С.

Автоматическое обновление курсов валют в 1С через API НБУ

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

Интеграция с API Национального банка Украины устраняет ручной перенос, использует официальный источник данных и позволяет обновлять сведения в учетной системе по расписанию. Важно заранее определить ответственного за настройку, формат хранения курсов и правила обработки дат, поскольку реализация зависит от используемой конфигурации 1С.

Источник данных и особенности официальных курсов

Национальный банк Украины публикует официальные курсы через структурированный сервис, возвращающий данные в формате JSON. Такой формат удобен для встроенных средств 1С: запрос можно выполнить с помощью объектов HTTP-соединения и HTTP-запроса, а полученный ответ разобрать стандартным объектом JSON.

В ответе обычно содержатся числовой код валюты, наименование, курс, буквенный код и дата публикации. Нужно учитывать номинал: некоторые котировки НБУ публикуются за десять или сто денежных единиц. Соответствие между номиналом и справочником 1С задают явно, после чего курс приводят к стоимости одной единицы валюты.

Подготовка учетной системы и внешнего доступа

В типовых конфигурациях курсы часто хранятся в регистре сведений «Курсы валют», но его измерения, ресурсы и служебные процедуры могут различаться. Перед разработкой следует проверить структуру регистра, формат даты и точность хранения чисел. Служебной учётной записи предоставляют только права на чтение справочников, создание и изменение записей курсов.

Сервер или клиент, с которого выполняется интеграция, должен иметь доступ к API по HTTPS. Проверяют работу прокси, DNS, firewall и проверку сертификата TLS. Публичный интерфейс НБУ обычно не требует персонального токена, однако условия использования и доступность сервиса нужно контролировать, а результаты запросов сохранять в журнале без лишних персональных данных.

Получение котировок и сопоставление валют

Запрос получения данных направляют к методу statdirectory/exchange, добавляя параметр json. Для загрузки курса за конкретный день используют параметр date в формате года, месяца и дня. Ответ может содержать несколько валют, поэтому обработчик должен читать массив, а не рассчитывать только на одну запись.

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

Пустой ответ нельзя считать Command для очистки регистра: это может означать переход выходного дня, задержку публикации или временную ошибку. Обработчик разбирает JSON в безопасном режиме, ограничивает размер ответа и записывает причину пропуска. Повторный запрос с уже загруженными данными должен обновлять существующую запись, не создавая дубликаты.

Регламент обновления и запись в учет

Автоматизацию удобно запускать регламентным заданием после публикации официальных курсов. Время запуска лучше сделать настраиваемым, поскольку график работы НБУ может меняться. При отсутствии котировок задание повторяет попытки с увеличивающимися интервалами, а в выходные и праздничные дни обрабатывает дату последнего рабочего дня.

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

Учетные процессы и связь с KUBiK

Обновление справочника курсов само по себе не выполняет переоценку активов, пересчёт налогов или формирование проводок. Эти действия должны запускаться по правилам конкретной конфигурации и утверждённому регламенту закрытия периода. Если компания применяет KUBiK, процесс можно рассматривать как часть сквозной автоматизации: загрузка котировок, передача их в учёт, контроль незакрытых документов и формирование задач.

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

Рекомендации для устойчивого внедрения

Перед продуктивной эксплуатацией полезно проверить интеграцию на копии базы и смоделировать несколько штатных и нештатных ситуаций.

После запуска стоит сравнить несколько автоматически загруженных дат с официальным источником и проверить результат в отчётах. Отдельно проверяют, что обновление не затронуло закрытые периоды и не изменило документы, рассчитанные по историческим курсам.

Запуск и поддержка автоматизации

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

Обновляйте обработчик при изменениях API, справочника валют или правил хранения курсов. Значимые изменения тестируются отдельно, а результаты проверки фиксируются в сопроводительной документации. Для крупных изменений полезно сохранять предыдущую версию обработчика и иметь возможность временно вернуться к ней.

Зарегистрируйтесь на сайте, подпишитесь на новые публикации и сохраняйте полезные материалы в избранном. Делитесь собственными решениями и присоединяйтесь к техническим обсуждениям, чтобы участники сообщества могли проверить подход, предложить улучшения и ускорить внедрение автоматического обновления курсов.