Как исправить ошибку "Ошибка получения курса валют: передана пустая валюта" при проведении документов в 1С:ERP 2.5?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Бухгалтерский учет
← На главную

При работе с конфигурациями 1С:ERP 2.5, 1С:Комплексная автоматизация 2.5 (КА 2.5) или 1С:Управление торговлей 11.5 (УТ 11.5) пользователи могут столкнуться с ошибкой: "Ошибка получения курса валют: передана пустая валюта". Эта проблема чаще всего проявляется при попытке провести такие документы, как "Списание безналичных ДС" и "Расходно-кассовый ордер" — для комплексного устранения подобных ошибок проведения есть готовая обработка автоматического исправления ошибок учета в УТ, КА и ERP. Давайте рассмотрим причины возникновения этой ошибки и подробно разберем, как ее можно решить.

Как правило, корень проблемы лежит в некорректных или неполных настройках валютного учета в информационной базе. Важно также отслеживать исполнение заявок на расходование денежных средств, чтобы исключить ошибки на этапе формирования платежей. Это может быть связано как с первоначальной настройкой системы, так и с нюансами обновления конфигураций или переноса данных. Мы проанализируем различные сценарии и предоставим пошаговые инструкции для устранения ошибки.

1. Проверка и заполнение реквизита "Валюта регламентированного учета" в карточке организации

Одной из наиболее распространенных причин возникновения ошибки является незаполненный реквизит ВалютаРегламентированногоУчета (Валюта регламентированного учета) в карточке вашей организации. Этот реквизит критически важен для системы, так как он определяет основную валюту, в которой ведется регламентированный (бухгалтерский и налоговый) учет в вашей организации. Если система не знает, какая валюта является основной для учета, она не сможет получить курс валюты при перед проведении финансовых документов — предотвратить такие ошибки ввода поможет инструмент гибкой настройки правил заполнения реквизитов в 1С.

Давайте пошагово проверим и заполним этот реквизит:

  1. Перейдем в раздел "НСИ и администрирование".
  2. В панели навигации выберем пункт "НСИ", затем "Организации".
  3. Откроем карточку той организации, по которой возникает ошибка при проведении документов. Если у вас несколько организаций, рекомендуется проверить каждую.
  4. В карточке организации найдем реквизит "Валюта регламентированного учета". Он может находиться в основных реквизитах или на одной из вкладок, например, "Учетная политика" или "Основные".
  5. Убедимся, что этот реквизит заполнен. Если он пуст, выберем из справочника валют необходимую валюту регламентированного учета (например, "Рубль").
  6. Сохраним изменения в карточке организации.

Почему это происходит? Часто при обновлении конфигураций со старых версий (например, с 1С:ERP 2.4 на 2.5) или при переносе данных из других систем, этот новый для 2.5 реквизит может остаться незаполненным. В релизах 2.4 его не было, и автоматическое заполнение при штатном обновлении не всегда срабатывает корректно, особенно если были особенности при переносе данных.

2. Устранение конфликтов при нескольких организациях с разными валютами регламентированного учета

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

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

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

Этот подход может помочь обойти предполагаемый "косяк" (недоработку) конфигурации 1С:КА 2.5 или других смежных решений, как было отмечено в обсуждении. Однако, прежде чем применять это решение, убедимся, что изменение валюты регламентированного учета для всех организаций не нарушит логику вашего учета и не создаст новых проблем, особенно если ваши операции действительно требуют разных валют для разных юридических лиц.

3. Настройка учетной политики в 1С:УТ 11.5

Для пользователей 1С:Управление торговлей 11.5 (УТ 11.5) существуют дополнительные настройки, которые могут влиять на корректность определения валюты и получения курсов. Если вы работаете в УТ 11.5, помимо реквизита "Валюта регламентированного учета", мы также должны убедиться, что заполнены ключевые настройки учетной политики.

Давайте проверим эти настройки:

  1. Перейдем в раздел "НСИ и администрирование".
  2. В панели навигации выберем пункт "НСИ", затем "Организации".
  3. Откроем карточку проблемной организации.
  4. На странице "Учетная политика" в карточке организации убедимся, что заполнены следующие разделы:
    • "Настройки системы налогообложения"
    • "Учетная политика финансового учета"
  5. При необходимости внесем или скорректируем эти настройки, чтобы они соответствовали учетной политике вашей организации.
  6. Сохраним изменения.

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

4. Использование внешних обработок или группового изменения реквизитов

В случаях, когда ручное заполнение реквизита "Валюта регламентированного учета" не помогает, или требуется скорректировать его для большого количества организаций, пользователи часто прибегают к использованию внешних обработок или стандартного механизма группового изменения реквизитов.

Использование группового изменения реквизитов (для 1С:ERP 2.5.8 и выше)

В более новых версиях конфигураций, таких как 1С:ERP 2.5.8, мы можем воспользоваться встроенным функционалом для массового изменения данных:

  1. Перейдем в раздел "НСИ и администрирование".
  2. Выберем пункт "Поддержка и обслуживание".
  3. Найдем и откроем инструмент "Групповое изменение реквизитов".
  4. В открывшемся окне в поле "Изменять" выберем "Справочники.Организации".
  5. Добавим условия отбора, если необходимо изменить реквизит не для всех организаций.
  6. В табличной части "Изменяемые реквизиты" найдем реквизит "Валюта регламентированного учета".
  7. Установим флажок напротив него и в правой части укажем новое, корректное значение валюты из справочника.
  8. Нажмем кнопку "Изменить реквизиты". Также существует расширение для группового изменения реквизитов документов прямо в формах списков, что значительно ускоряет работу.

Этот инструмент позволяет быстро и эффективно скорректировать данные для множества элементов, что особенно удобно при запуске новой базы или после переносов.

Применение внешних обработок

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

Пример программного кода для такой обработки (предполагая, что обработка запускается в режиме предприятия и имеет доступ к объектам):


// Получаем объект справочника "Организации"
ВыборкаОрганизаций = Справочники.Организации.Выбрать();

// Получаем объект валюты, которую нужно установить (например, "Рубль")
// Важно использовать правильное наименование или код валюты, существующей в справочнике
// Можно также использовать Справочники.Валюты.НайтиПоКоду() или выбрать интерактивно
ВалютаДляУстановки = Справочники.Валюты.НайтиПоНаименованию("Рубль", Истина); 

Если ВалютаДляУстановки = Неопределено Тогда
    Сообщить("Внимание! Валюта 'Рубль' не найдена в справочнике. Проверьте наименование.", СтатусСообщения.Важное);
    Возврат;
КонецЕсли;

Сообщить("Начинаем обработку организаций...");

Пока ВыборкаОрганизаций.Следующий() Цикл
    ОрганизацияОбъект = ВыборкаОрганизаций.ПолучитьОбъект();
    Если ОрганизацияОбъект.ВалютаРегламентированногоУчета <> ВалютаДляУстановки Тогда
        ОрганизацияОбъект.ВалютаРегламентированногоУчета = ВалютаДляУстановки;
        Попытка
            ОрганизацияОбъект.Записать();
            Сообщить("Для организации '" + ОрганизацияОбъект.Наименование + "' успешно установлена валюта регламентированного учета: " + ВалютаДляУстановки.Наименование);
        Исключение
            Сообщить("Ошибка при записи организации '" + ОрганизацияОбъект.Наименование + "': " + ОписаниеОшибки(), СтатусСообщения.Важное);
        КонецПопытки;
    Иначе
        Сообщить("Для организации '" + ОрганизацияОбъект.Наименование + "' валюта регламентированного учета уже установлена корректно.");
    КонецЕсли;
КонецЦикла;

Сообщить("Обработка организаций завершена.");

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

5. Дополнительные диагностические шаги и рекомендации

Если вышеперечисленные решения не помогли, или вы хотите более глубоко проанализировать ситуацию, рассмотрим дополнительные аспекты, которые могут вызывать ошибку.

Проверка справочника "Валюты" на наличие дубликатов

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

  1. Перейдем в раздел "НСИ и администрирование".
  2. В панели навигации выберем пункт "Предприятие", затем "Валюты".
  3. Откроем справочник "Валюты".
  4. Тщательно проверим наличие дубликатов с одинаковым наименованием (например, "Рубль", "USD").
  5. Убедимся, что та валюта, которая указана в реквизите ВалютаРегламентированногоУчета организации, является единственной и корректной для использования. При наличии дубликатов, некорректные можно пометить на удаление или исправить их.

Обновление конфигурации до актуальных релизов

Ошибка получения курса валют может быть вызвана недоработками или багами в конкретном релизе платформы или конфигурации. В обсуждении упоминается схожая ошибка с кодом 00-00427657.

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

Временные обходные пути для проведения документов

В некоторых случаях, как было отмечено на форуме, пользователи смогли временно обойти ошибку, используя следующие методы:

Эти методы не являются решением проблемы по существу, но могут помочь провести документы в срочном порядке, пока вы ищете и применяете основное решение.

Проверка настройки "Валюта в базовой валюте" (для 1С:УТ)

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

  1. Перейдем в раздел "НСИ и администрирование".
  2. В панели навигации выберем пункт "Предприятие", затем "Валюты".
  3. Откроем справочник "Валюты".
  4. Для вашей базовой валюты (например, "Рубль") убедимся, что для нее корректно установлена опция, указывающая, что она является базовой валютой учета. Эта настройка может выглядеть как флажок "Базовая валюта" или аналогично.

Особенности программного создания документов

Если документы (например, "Приходный кассовый ордер") создаются программно, очень важно убедиться, что реквизиты, связанные с валютой, заполняются корректно и явно — контролировать полноту ввода поможет расширение для обязательного заполнения реквизитов в 1С. Мы должны убедиться, что полю ВалютаДокумента присваивается корректное значение из справочника валют.

Пример:


НовыйПриходныйОрдер = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
// ... Заполнение других реквизитов ...

// Корректное заполнение валюты документа
// Ищем валюту по наименованию. Ложь означает не выводить предупреждение, если не найдено.
ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб.", Ложь); 

Если ВалютаДокумента <> Неопределено Тогда
    НовыйПриходныйОрдер.ВалютаДокумента = ВалютаДокумента;
Иначе
    Сообщить("Внимание! Валюта 'руб.' не найдена в справочнике. Проверьте.", СтатусСообщения.Важное);
    // Возможно, следует прервать создание документа или использовать валюту по умолчанию
КонецЕсли;

// ... Продолжение заполнения и запись документа ...

Явное указание валюты помогает избежать неопределенности и ошибок, особенно при автоматизированном вводе данных.

Настройки мультивалютного учета

В 1С:ERP 2.5 предусмотрена возможность ведения мультивалютного учета. Если вы работаете с несколькими валютами, убедимся, что эта функциональная опция включена, и курсы валют регулярно загружаются.

  1. Перейдем в раздел "НСИ и администрирование".
  2. Выберем "Настройка НСИ и разделов".
  3. Перейдем на вкладку "Предприятие", затем "Валюты".
  4. Убедимся, что функциональная опция "Несколько валют" установлена.
  5. Проверим, что курсы всех используемых валют загружены и актуальны. Курсы можно загружать вручную или автоматически с сайта Центрального Банка России.

Актуальные курсы валют являются основой для корректной работы системы при проведении операций в иностранной валюте.

Заключение

Как мы видим, проблема "Ошибка получения курса валют: передана пустая валюта" может иметь несколько причин, но все они, как правило, сводятся к некорректным или неполным настройкам валютного учета в информационной базе. Важно отметить, что с валютой регламентированного учета следует определиться и правильно настроить ее до формирования первых документов в системе, так как дальнейшее изменение этой настройки может быть сопряжено с определенными трудностями и потребовать дополнительных корректировок данных. Внимательный подход к настройке справочников и учетных политик поможет избежать подобных ошибок и обеспечит стабильную работу вашей системы 1С.

← На главную