Как исправить ошибку «При пересчете из валюты '' в валюту 'руб.' обнаружен нулевой курс» в 1С:УПП 1.3 при получении услуг по переработке

Бухгалтер 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

При работе в конфигурации 1С:Управление производственным предприятием (УПП) редакции 1.3 пользователи часто сталкиваются с ситуацией, когда при выборе договора в документе Получение услуг по переработке система выдает критическую ошибку: «При пересчете из валюты '' в валюту 'руб.' обнаружен нулевой курс. Пересчет не произведен». При этом окно «Цены и валюты» оказывается заблокированным или пустым, что не позволяет исправить ситуацию «на лету».

В данной статье мы подробно разберем, почему возникает эта ошибка, как она связана с архитектурой метаданных 1С и какие шаги необходимо предпринять, чтобы восстановить работоспособность документа.

Разбор причины возникновения ошибки

Давайте проанализируем механику работы документа. Когда мы выбираем договор в шапке документа, срабатывает программный обработчик ПриИзменении. Система пытается синхронизировать параметры документа (валюту, тип цен, налоги) с параметрами, указанными в справочнике Договоры контрагентов.

Ошибка возникает в тот момент, когда реквизит ВалютаДокумента остается незаполненным (пустая ссылка), а система пытается выполнить функцию пересчета сумм. В УПП за это отвечает общий модуль РаботаСДиалогами, а именно процедура ВыбратьЦеныИВалюту. Если в цепочке «Договор -> Тип цен -> Валюта» отсутствует хотя бы одно звено, реквизит валюты в документе инициализируется как пустая строка, что и приводит к сообщению о нулевом курсе.

Решение 1: Проверка и настройка типа цен в договоре

Это основное решение, которое помогает в 90% случаев. Рассмотрим его пошагово:

  1. Перейдем в карточку контрагента и откроем список его договоров.
  2. Найдем договор, при выборе которого возникает ошибка, и откроем его.
  3. На вкладке «Взаиморасчеты» обратим внимание на поле «Тип цен». Часто оно остается пустым.
  4. Если тип цен не выбран, необходимо нажать на кнопку выбора и выбрать подходящий тип цен (например, «Закупочная»).
  5. Важный момент: Откроем выбранный тип цен (справочник Типы цен номенклатуры) и проверим, заполнена ли там Валюта. Если в типе цен валюта не указана, система не сможет подтянуть её в документ.
  6. Установим в типе цен валюту «руб.» и сохраним изменения.

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

Решение 2: Анализ настроек пользователя

Если в договоре все заполнено корректно, но ошибка сохраняется, нам следует проанализировать персональные настройки пользователя, под которым ведется работа. Рассмотрим, как это сделать:

Перейдем в меню Сервис — Настройки пользователя. Нас интересует раздел «Основные значения для подстановки в документы». Проанализируем следующие параметры:

Если настройки ссылаются на удаленные объекты (в списке отображается «Объект не найден»), их нужно перевыбрать или очистить.

Решение 3: Проверка вида договора и признака «Условные единицы»

Для документа Получение услуг по переработке крайне важно соблюдение условий оформления договора. Разберем ситуацию подробнее:

Во-первых, Вид договора должен быть строго С поставщиком или С переработчиком (в зависимости от конкретной хозяйственной операции). Если вид договора был изменен программно или через групповое изменение реквизитов, штатные механизмы 1С могут отрабатывать некорректно.

Во-вторых, проверим флаг «Расчеты в условных единицах». Рассмотрим алгоритм: если этот флаг установлен, то валюта договора может быть «USD» или «EUR», но оплата производится в рублях. В этом случае система требует наличия курсов обеих валют в справочнике Валюты на дату документа. Если курс не загружен или равен нулю, вылетит обсуждаемая ошибка.

Решение 4: Техническое исправление «залипания» данных через программный код

В некоторых случаях форма документа может «кэшировать» ошибочное состояние. Программисту можно посоветовать проверить, как заполняются реквизиты в процедуре ЗаполнитьПоДоговору(). Посмотрим на пример того, как должна выглядеть инициализация параметров:


// Пример логики в модуле документа
Процедура ДоговорКонтрагентаПриИзменении(Элемент)
    СтруктураПараметров = РаботаСДиалогами.ПолучитьПараметрыЦенИВалют(ЭтотОбъект);
    // Если ВалютаДокумента пустая, принудительно берем из договора
    Если Не ЗначениеЗаполнено(ВалютаДокумента) Тогда
        ВалютаДокумента = ДоговорКонтрагента.ВалютаВзаиморасчетов;
    КонецЕсли;
    РаботаСДиалогами.ОбновитьЦеныИВалюту(ЭтотОбъект, СтруктураПараметров);
КонецПроцедуры

Если вы не являетесь программистом, «силовое» решение для пользователя выглядит так: создать новый тип цен (например, «Технический»), в котором жестко прописана валюта «руб.», указать его в договоре и перезаполнить документ. Это принудительно заставит форму переинициализировать структуру цен.

Дополнительные рекомендации

Рассмотрим еще одну ситуацию: права доступа. В УПП 1.3 существует механизм «Дополнительные права пользователей». Проанализируем настройки:

Если эта галочка снята, кнопка «Цены и валюты» может быть неактивна, а при возникновении ошибки пересчета пользователь просто не сможет войти в интерфейс исправления. Убедитесь, что у ответственного сотрудника достаточно прав для изменения валютных параметров документа.

Резюмируем: ошибка «нулевой курс» — это симптом отсутствия связи между документом и справочником валют. Основной путь исправления лежит через проверку Типа цен в Договоре контрагента. Убедитесь, что во всей цепочке справочников указана корректная валюта, и документ «увидит» нужные данные для расчета.

← На главную