Ошибка «Не задана кратность валюты на дату» в 1С 8.3
Содержание
Документ с валютой не проводится, а 1С пишет Не задана кратность валюты на дату. Значит, в регистре сведений Курсы валют на дату документа для нужной валюты пусто или стоит 0 в поле кратности. Задайте кратность (обычно 1) на эту дату — и проведение пойдёт.
Ниже разберём, как быстро найти дыру в курсах, чем задать кратность валюты на дату в 1С 8.3 и как исправить это так, чтобы ошибка не вернулась через месяц.
Что означает ошибка и откуда она берётся
Каждый валютный курс в 1С — это пара чисел: курс и кратность. Кратность показывает, за сколько единиц валюты указан курс.
- Доллар, евро — кратность
1(курс за 1 единицу). - Японская иена, старый вьетнамский донг — кратность
100или1000(курс за сотню).
Когда программа считает сумму в рублях, она делит на кратность. Если кратность = 0, получается деление на ноль — 1С блокирует проведение и выдаёт ошибку.
Смежные формулировки той же природы:
Не указана кратность валютыОбнаружен нулевой курс валютыНе задана кратность валют(во множественном числе — на форумах)
Причина одна: в регистре Курсы валют на нужную дату записи либо нет, либо она с нулём.
Быстрая диагностика: проверяем регистр «Курсы валют»
Прежде чем что-то менять, посмотрите, что реально лежит в базе на дату документа.
- Откройте
Справочники→Банк→Валюты. - Выделите проблемную валюту (например,
USD). - Нажмите
Курсы валютв верхней панели. - Найдите строку на дату документа (или ближайшую раньше неё).
1С берёт последний курс на дату или раньше. Если ближайшая запись — с кратностью 0, документ упадёт, даже когда на «сегодня» всё заполнено.
Ошибка часто вылезает после ручного добавления валюты: строку создали, курс вписали, а поле кратности оставили пустым. По умолчанию там 0, а не 1.
Как исправить — три рабочих способа
Способ 1. Задать кратность вручную
Самый быстрый вариант, когда «дырка» в одной-двух датах.
Валюты→ нужная валюта →Курсы валют.- Кнопка
Создать. - Заполните:
Период= дата документа,Курс= актуальное значение,Кратность=1. - Запишите и закройте.
Перепроведите документ — ошибка уйдёт.
Не ставьте кратность = 0 и не оставляйте поле пустым — это и есть причина ошибки.
Способ 2. Загрузить курсы с сайта ЦБ
Если пропущен целый период, вбивать вручную долго. Загрузите курсы автоматически.
Справочники→Валюты→ командаЗагрузить курсы валют.- Укажите период с первой пустой даты по сегодня.
- Отметьте нужные валюты.
- Нажмите
Загрузить.
1С заберёт курсы из сервиса ЦБ РФ вместе с правильной кратностью — заполнять её руками не придётся.
Для загрузки нужен доступ в интернет и действующая подписка ИТС (сервис курсов идёт через неё). Без подписки останется только ручной ввод.
Способ 3. Групповая правка обработкой
Когда нулевая кратность разбросана по сотням строк за годы, ручной способ не годится. Программисты чистят регистр обработкой: перебирают записи Курсы валют, где Кратность = 0, и проставляют 1.
Такую обработку запускают в режиме Файл → Открыть (внешняя обработка .epf) или через Все функции. Если своего разработчика нет — это как раз задача на один час для специалиста 1С.
| Способ | Когда применять | Риск |
|---|---|---|
| Вручную | 1–2 пропущенные даты | Нет |
| Загрузка с ЦБ | Пропущен период, есть ИТС | Нужен интернет |
| Обработка | Массово, вся история | Нужен специалист |
Когда кратность не равна 1 — важный нюанс
Не спешите везде ставить 1. Для валют с крупным номиналом ЦБ публикует курс за сотню или тысячу единиц.
Пример по иене: ЦБ даёт 55,3 рубля за 100 иен. Значит в 1С правильно:
Курс=55,3Кратность=100
Если для такой валюты поставить кратность 1, ошибка исчезнет, но суммы в рублях раздуются в 100 раз. Поэтому кратность берут из данных ЦБ, а не «на глаз».
Проверьте себя по частым валютам:
Типичные ошибки и edge-кейсы
- 🗓️ Курс есть на сегодня, но нет на дату документа. 1С смотрит на дату операции, а не на текущую. Заполняйте историю с первой валютной операции.
- 🔁 Загрузили курсы, а кратность всё равно 0. Старые ручные записи загрузка не перезаписывает — удалите битую строку и загрузите заново.
- 📉 Курс на выходной/праздник. ЦБ курс на нерабочий день не меняет — действует последний рабочий. Отдельную запись создавать не нужно.
- 💱 Несколько валют в одном документе. Проверьте кратность у каждой — ошибка может быть по «незаметной» второй валюте.
Если не помогло
Ошибка держится даже после правки курсов? Пройдите по списку:
- Перепроведите документ заново (F5 /
Провести) — старое проведение могло закешироваться. - Проверьте, ту ли валюту правите: в документе может стоять
EUR, а вы чинитеUSD. - Посмотрите дату строки курса — она должна быть не позже даты документа.
- Очистите кеш: закройте базу и запустите
1cv8с ключом/ClearCache. - Если проведение зашито в доработке конфигурации — курс тянет модуль, и там ищут причину через отладчик (это уже к программисту).
Как предотвратить на будущее
- Настройте регламентное задание
Загрузка курсов валют— 1С будет тянуть их с ЦБ сама, каждый день. - Перед вводом первичных валютных документов проверяйте, что курс на дату уже есть.
- Не заводите валюты вручную без крайней нужды — при загрузке с ЦБ кратность подставляется корректно.
Частые вопросы
Где в 1С 8.3 задать кратность валюты?
Справочники → Валюты → выбрать валюту → кнопка Курсы валют → создать запись с полями курс и кратность на нужную дату.Какую кратность ставить для доллара и евро?
1 — ЦБ публикует курс за одну единицу.Почему ошибка возникает только в старых документах?
0, документ той даты не проведётся, хотя свежие идут нормально.Можно ли поставить кратность 1 для всех валют сразу?
Ошибка осталась после загрузки курсов — что делать?
Что означает «Обнаружен нулевой курс валюты»?
0. Впишите ненулевой курс вручную или загрузите его с ЦБ.