В работе с 1С:Предприятие часто возникает задача — узнать курс валюты на конкретную дату. Это необходимо для корректного заполнения документов, формирования отчетности или проверки расчетов с контрагентами. Например, при оформлении счета в иностранной валюте, закрытии месяца или сверке с банком. Но не все пользователи знают, где в 1С:Бухгалтерия 8.3, 1С:Управление торговлей или 1С:ERP хранится эта информация и как её быстро найти.
В этой статье мы разберем три рабочих способа — от простого просмотра через интерфейс до автоматизированного запроса с помощью встроенного языка. Вы узнаете, где хранятся курсы ЦБ РФ, как их обновлять, и что делать, если нужной даты нет в базе. А для программистов приведём готовые коды для типовой и нетиповой конфигураций.
Материал будет полезен бухгалтерам, финансовым директорам, специалистам по валютному контролю и 1С-программистам. Все примеры актуальны для последних версий платформы 1С:Предприятие 8.3 (включая 8.3.23 и новее).
1. Где в 1С хранятся курсы валют: структура данных
Прежде чем искать курс на нужную дату, важно понять, как организована работа с валютами в 1С. Все курсы хранятся в справочнике Валюты и регистре сведений Курсы валют. Это стандартные объекты, которые есть в большинстве типовых конфигураций (Бухгалтерия, УТ, ERP, ЗУП).
Основные моменты:
- 📌 Справочник «Валюты»** — содержит список всех валют (доллар, евро, юань и т.д.) с их кодами и наименованиями. Здесь же указывается кратность (например, 1 или 1000 для тенге).
- 📅 Регистр сведений «Курсы валют»** — хранит историю курсов по датам. Для каждой валюты может быть несколько записей с разными датами и значениями.
- 🔄 Источники обновления: курсы можно загружать автоматически (с сайта ЦБ РФ, Нацбанка РК/РБ/Казахстана) или вводить вручную.
В типовых конфигурациях курс валюты привязан к дате документа. Например, если вы создаёте реализацию на 15 мая 2026 года, система автоматически подставит курс доллара на эту дату (если он есть в регистре). Если курса нет — возникнет ошибка или предупреждение.
В 1С:Бухгалтерия 8.3 курсы валют обновляются автоматически при первом входе в программу (если настроена интеграция с ЦБ РФ). Но для 1С:УТ или 1С:ERP может потребоваться ручная загрузка через Администрирование → Обмен данными → Курсы валют.
2. Способ 1: Просмотр курса через справочник «Валюты» (для пользователей)
Самый простой способ — использовать стандартный интерфейс 1С:Предприятие. Он не требует прав администратора или знания программирования. Подходит для бухгалтеров, менеджеров и других пользователей без доступа к конфигуратору.
Пошаговая инструкция:
- Откройте главное меню и перейдите в
Справочники → Валюты(в некоторых конфигурациях путь может отличаться:Справочники → Деньги → Валюты). - В списке найдите нужную валюту (например, Доллар США или Евро) и дважды кликните по ней.
- В открывшейся карточке валюты перейдите на закладку
Курсы(илиИстория курсов). - Укажите интересующую дату в поле фильтра или прокрутите список вручную. Курс отобразится в колонке
Курс.
Если курса на нужную дату нет, система покажет ближайшую предыдущую запись (если она есть). Например, при запросе на 10 января 2026 года, но при отсутствии курса на эту дату, отобразится курс на 9 января.
Что делать, если курса на дату нет?
Если в регистре отсутствует курс на нужную дату, вы можете:
1. Загрузить курсы автоматически (через Администрирование → Курсы валют).
2. Добавить курс вручную (кнопка Создать в справочнике валют).
3. Использовать курс ближайшей предыдущей даты (если это допустимо по учетной политике).
Важно: в бухгалтерском учете использование неактуальных курсов может привести к искажению финансовых результатов!
Ограничения способа:
- ❌ Не работает, если курсы не загружены в систему.
- ❌ Неудобно для массового просмотра (например, если нужно проверить курсы за месяц).
- ❌ В некоторых конфигурациях (например, 1С:Розница) справочник валют может быть скрыт.
3. Способ 2: Отчет «Курсы валют» (для анализа и печати)
Если нужно не просто посмотреть курс, а распечатать его, проанализировать динамику или экспортировать в Excel, удобнее использовать стандартный отчет. Он есть во всех типовых конфигурациях на базе 1С:Предприятие 8.3.
Как открыть отчет:
- Перейдите в раздел
Отчеты(илиБухгалтерия → Отчетыв 1С:Бухгалтерия). - Найдите отчет
Курсы валют(иногда он называетсяАнализ курсов валютилиДинамика курсов валют). - Укажите период (например, с 01.01.2026 по 31.01.2026) и выберите нужные валюты (доллар, евро и т.д.).
- Нажмите
Сформировать.
В результате вы получите таблицу с курсами по датам. Отчет можно:
- 📄 Распечатать (кнопка
Печать). - 📊 Экспортировать в Excel (кнопка
ВыгрузитьилиСохранить как...). - 🔍 Отфильтровать по конкретной валюте или дате.
Пример отчета для доллара США:
| Дата | Валюта | Курс | Кратность |
|---|---|---|---|
| 01.01.2026 | Доллар США (USD) | 92.34 | 1 |
| 10.01.2026 | Доллар США (USD) | 91.87 | 1 |
| 20.01.2026 | Доллар США (USD) | 93.12 | 1 |
| 31.01.2026 | Доллар США (USD) | 94.05 | 1 |
Отчет «Курсы валют» — самый удобный способ для анализа динамики. Он позволяет сравнить курсы за период, выявить скачки и распечатать данные для отчетности.
Если отчета нет в списке, его можно добавить через Все отчеты или настроить самостоятельно в конфигураторе (для этого потребуются права администратора).
4. Способ 3: Запрос курса через встроенный язык (для программистов)
Для 1С-программистов и опытных пользователей, которые умеют работать с встроенным языком, есть более гибкий способ — прямой запрос к регистру сведений КурсыВалют. Это позволяет:
- 🔧 Получать курсы в автоматическом режиме (например, при проведении документа).
- 📈 Интегрировать данные с внешними системами.
- ⚡ Ускорить работу при массовой обработке.
Пример кода для получения курса доллара на конкретную дату:
// Получаем курс доллара на 15.05.2026
ДатаКурса = '20260515';
Валюта = Справочники.Валюты.НайтиПоНаименованию("Доллар США");
// Запрос к регистру сведений "Курсы валют"
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КурсыВалют.Курс КАК Курс
|ИЗ
| РегистрСведений.КурсыВалют КАК КурсыВалют
|ГДЕ
| КурсыВалют.Валюта = &Валюта
| И КурсыВалют.Период = ДАТАВРЕМЯ(&ДатаКурса, 0, 0, 0)";
Запрос.УстановитьПараметр("Валюта", Валюта);
Запрос.УстановитьПараметр("ДатаКурса", ДатаКурса);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщить("Курс на указанную дату не найден!");
Иначе
Курс = Результат.Выгрузить()[0].Курс;
Сообщить("Курс доллара на 15.05.2026: " + Курс);
КонецЕсли;
Этот код можно вставить в:
- 📝 Обработку (например, для массового пересчета документов).
- 📋 Отчет (для вывода курсов в пользовательской форме).
- 🔄 Регламентное задание (для автоматической проверки курсов).
Важно: в некоторых конфигурациях (например, 1С:ERP) регистр может называться не КурсыВалют, а КурсыВалютОрганизаций или иметь префикс (например, БухгалтерияКурсыВалют). Уточните название в конфигураторе!
5. Как обновлять курсы валют в 1С: 3 источника данных
Если в базе нет курса на нужную дату, его можно добавить вручную или загрузить автоматически. В 1С:Предприятие 8.3 поддерживаются следующие источники:
| Источник | Как подключить | Особенности |
|---|---|---|
| ЦБ РФ | Администрирование → Курсы валют → Загрузить курсы ЦБ | Бесплатно, обновляется ежедневно, только для российских валют |
| Нацбанк РК/РБ/Казахстана | Настроить обмен через 1С:Коннект или внешнюю обработку |
Требует дополнительную настройку, актуально для компаний в СНГ |
| Ручной ввод | Справочник «Валюты» → Карточка валюты → Кнопка «Создать» | Подходит для редких валют или нестандартных дат |
Пошаговая инструкция для загрузки курсов ЦБ РФ:
Открыть раздел Администрирование|Перейти в Курсы валют|Нажать Загрузить курсы ЦБ|Указать дату или период|Подтвердить загрузку-->
Если автоматическая загрузка не работает, проверьте:
- 🌐 Настройки интернет-соединения (в
Администрирование → Настройки программы → Интернет-поддержка). - 🔒 Права пользователя (должны быть разрешения на изменение курсов валют).
- 📅 Актуальность сертификатов (иногда требуется обновление корневых сертификатов Windows).
Если курсы ЦБ загружаются с ошибкой, попробуйте использовать внешнюю обработку ЗагрузкаКурсовВалютЦБ.epf. Её можно скачать с сайта 1С:ИТС или портала Infostart.
6. Частые ошибки и как их исправить
При работе с курсами валют в 1С пользователи сталкиваются с типичными проблемами. Вот самые распространённые и способы их решения:
Ошибка 1: «Курс валюты не найден на дату X»
⚠️ Внимание: Если документ не проводится из-за отсутствия курса, проверьте не только саму дату документа, но и дату валютирования (она может отличаться!). Например, в платежном поручении дата валютирования — это дата списания средств со счета.
- 🔹 Загрузите курсы за нужный период (см. раздел 5).
- 🔹 Проверьте, не заблокирована ли валюта для редактирования.
- 🔹 Убедитесь, что в настройках учетной политики разрешено использование неофициальных курсов (если используете ручной ввод).
Ошибка 2: Курсы загружаются, но не отображаются в документах
- 🔹 Проверьте
период действия курсав регистре сведений. Иногда курс загружен, но установлен на будущую дату. - 🔹 Обновите кэш 1С (в конфигураторе:
Сервис → Очистить кэш). - 🔹 Убедитесь, что в документе указана правильная организация (в некоторых конфигурациях курсы привязаны к юридическим лицам).
Ошибка 3: Несовпадение курсов с данными банка
- 🔹 Сверьте
кратность валюты(например, для белорусских рублей кратность может быть 10 000). - 🔹 Проверьте, не используется ли в документе индивидуальный курс (он может перекрывать общий курс из регистра).
- 🔹 Уточните у банка, какой именно курс они используют (ЦБ, внутренний курс банка или биржевой).
7. Автоматизация работы с курсами: советы для программистов
Если вам регулярно приходится работать с курсами валют, имеет смысл автоматизировать рутинные операции. Вот несколько полезных решений:
1. Автоматическая загрузка курсов по расписанию
Настройте регламентное задание, которое будет ежедневно загружать курсы ЦБ. Пример кода для создания задания:
Процедура СоздатьРегламентноеЗаданиеЗагрузкиКурсов()
Задание = РегламентныеЗадания.СоздатьЗадание();
Задание.Наименование = "Автообновление курсов валют";
Задание.Использовать = Истина;
Задание.Расписание.Ежедневно.УстановитьВремя(9, 0, 0); // Каждый день в 9:00
Задание.Действие = Новый Действие("ЗагрузитьКурсыВалютЦБ");
Задание.Записать();
КонецПроцедуры
2. Проверка актуальности курсов перед проведением документов
Добавьте в модуль документа (например, РеализацияТоваровУслуг) проверку наличия курса на дату:
Процедура ПередЗаписью(Отказ, РежимЗаписи)
Если ВалютаДокумента <> Валюты.Рубль Тогда
ДатаКурса = ДатаДок;
Если НЕ КурсыВалют.НайтиПоРеквизиту("Валюта", ВалютаДокумента, ДатаКурса) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Отсутствует курс для валюты " + ВалютаДокумента.Наименование + " на дату " + Формат(ДатаКурса, "ДФ=dd.MM.yyyy");
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
3. Интеграция с внешними источниками (например, API ЦБ)
Если стандартная загрузка не подходит (например, нужны курсы по ММВБ или другим биржам), можно написать обработку, которая будет парсить данные с сайта ЦБ или использовать их API:
Функция ПолучитьКурсЦБПоAPI(КодВалюты, ДатаКурса)
URL = "https://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Формат(ДатаКурса, "ДФ=dd/MM/yyyy");
HTTPСоединение = Новый HTTPСоединение(URL);
Ответ = HTTPСоединение.Получить();
Если Ответ.КодСостояния <> 200 Тогда
Возврат Неопределено;
КонецЕсли;
// Парсинг XML-ответа (упрощенно)
ПозицияНачало = Найти(Ответ.ПолучитьТекст(), "" + КодВалюты + " ");
Если ПозицияНачало = 0 Тогда
Возврат Неопределено;
КонецЕсли;
ПозицияКурс = Найти(Ответ.ПолучитьТекст(), "", ПозицияНачало);
Если ПозицияКурс = 0 Тогда
Возврат Неопределено;
КонецЕсли;
КонецСтрокиКурс = Найти(Ответ.ПолучитьТекст(), "", ПозицияКурс);
КурсСтрока = Сред(Ответ.ПолучитьТекст(), ПозицияКурс + 7, КонецСтрокиКурс - ПозицияКурс - 7);
КурсСтрока = Заменить(КурсСтрока, ",", ".");
Возврат Число(КурсСтрока);
КонецФункции
Эти решения помогут сэкономить время и избежать ошибок при работе с валютными операциями.
FAQ: Ответы на частые вопросы
Можно ли в 1С посмотреть курс валюты на будущую дату?
Да, но только если курс был загружен или введён вручную заранее. Например, если вы знаете, что с 1 июня курс доллара изменится, можно добавить запись в регистр Курсы валют на эту дату. Однако стандартная загрузка с ЦБ РФ будущие курсы не подтягивает — они публикуются только по факту.
Почему в документе подставляется не тот курс, который я вижу в справочнике?
Это может происходить по нескольким причинам:
- В документе указана дата валютирования, отличная от даты документа.
- Для валюты установлена кратность (например, 1000 вместо 1).
- В конфигурации используется индивидуальный курс (поле
Курс валютыв документе перекрывает общий курс из регистра). - Курс заблокирован для редактирования на уровне прав пользователя.
Проверьте эти параметры в карточке документа и настройках валюты.
Как экспортировать курсы валют из 1С в Excel?
Есть два способа:
Способ 1: Через отчет
- Откройте отчет
Курсы валют(см. раздел 3). - Сформируйте данные за нужный период.
- Нажмите
ВыгрузитьилиСохранить как...и выберите форматExcel.
Способ 2: Через внешнюю обработку
Используйте обработку ВыгрузкаДанныхВExcel.epf (есть на Infostart). Она позволяет гибко настроить выгружаемые поля и формат.
Можно ли в 1С настроить автоматическое округление курсов?
Да, но это зависит от конфигурации:
- В 1С:Бухгалтерия 8.3 округление настраивается в
Учетная политика(разделВалюты). - В 1С:ERP или 1С:УТ может потребоваться доработка конфигурации (например, добавление обработчика события при записи курса).
Стандартное округление — до 4 знаков после запятой (например, 92.3456). Если нужно другое количество знаков, обратитесь к программисту 1С.
Где в 1С хранится история изменений курсов валют?
История курсов хранится в регистре сведений КурсыВалют (или аналогичном, в зависимости от конфигурации). Чтобы посмотреть, кто и когда изменял курсы:
- Откройте регистр в конфигураторе (
Объекты → Регистры сведений → КурсыВалют). - Перейдите на закладку
Движенияи установите фильтр по дате и валюте. - Если включен журнал регистрации, можно посмотреть, какой пользователь вносил изменения (в
Администрирование → Журнал регистрации).
В типовых конфигурациях история изменений курсов не ведётся автоматически — для этого требуется доработка.