Смена валюты управленческого учета в уже работающей базе 1С:Управление торговлей 11 (УТ 11) — это сложная техническая задача, которая существенно отличается от аналогичной процедуры в старых версиях программы (например, УТ 10.3). Основная сложность заключается в том, что в УТ 11 данные о себестоимости, выручке и взаиморасчетах хранятся в регистрах накопления сразу в нескольких валютах, и простое изменение константы не пересчитает накопленные итоги автоматически. В этой статье мы подробно разберем, как подойти к этой задаче, какие риски учесть и какую методику выбрать в зависимости от объема вашей базы.
Проанализируем ситуацию: в версии УТ 10.3 структура регистров была проще, и многие технические специалисты привыкли использовать внешние обработки для «силовой» смены валюты. Однако в УТ 11 (и других решениях на платформе ERP) архитектура учета построена на механизме распределенного закрытия месяца. Если мы просто заменим одну валюту на другую в настройках, система не пересчитает исторические данные в регистрах ВыручкаИСебестоимостьПродаж или СебестоимостьТоваров. Это приведет к тому, что отчеты за прошлые периоды станут нечитаемыми (произойдет смешивание сумм в разных валютах), а текущие расчеты себестоимости начнут выдавать ошибки.
Перед тем как приступить к действиям, нам необходимо оценить объем базы. Рассмотрим два основных пути решения:
Выясним причину большинства ошибок при смене валюты — это отсутствие курсов. Прежде чем менять настройки, мы должны убедиться, что в справочнике Валюты загружена история курсов новой управленческой валюты по отношению ко всем остальным валютам, которые использовались в базе (RUB, USD, EUR и т.д.), за весь период ведения учета. Если в какой-то день 2022 года курс не будет установлен, документ за эту дату при перепроведении выдаст ошибку или запишет нулевые суммы в управленческом учете.
Рассмотрим по шагам процесс смены валюты в базе, где объем данных позволяет выполнить полное перепроведение:
Это критически важный этап. Процедура затрагивает все регистры системы, и в случае сбоя «откатить» изменения будет невозможно. Работаем только на копии, замеряем время и проверяем результат, прежде чем повторять это на рабочей базе.
В типовой конфигурации УТ 11 поле ВалютаУправленческогоУчета блокируется после появления первых движений в базе.
После смены валюты нам необходимо заставить систему пересчитать суммы во всех регистрах. Разберем, как это сделать правильно. Простого перепроведения может быть недостаточно. В сложных случаях, когда требуется прямое редактирование движений, может понадобиться профессиональный менеджер редактирования данных, позволяющий проводить тонкую очистку регистров. Тем не менее, основным методом остается типовая процедура «Закрытие месяца».
Нам придется последовательно, начиная с самого первого месяца ведения учета, выполнить процедуру Закрытие месяца. Это необходимо для:
Проанализируем, как система хранит данные. В регистрах себестоимости есть ресурсы СтоимостьУпр и СтоимостьРегл. При смене валюты УУ, именно ресурс СтоимостьУпр должен быть полностью перезаполнен. Посмотрим на пример логики, которую выполняет система при проведении документа после смены валюты:
// Упрощенная логика пересчета суммы в валюту УУ
КурсУУ = КурсыВалют.ПолучитьКурс(НоваяВалютаУУ, ДатаДокумента);
СуммаУпр = Округлить(СуммаДокумента * КурсУУ.Курс / КурсУУ.Кратность, 2);
// Запись в регистр "Выручка и себестоимость продаж"
Движения.ВыручкаИСебестоимостьПродаж.СуммаВыручкиУпр = СуммаУпр;
При массовом пересчете через курсы валют мы неизбежно столкнемся с погрешностями округления. На остатках в регистрах могут зависнуть «копейки» (0.01 или -0.01), которые не закроются автоматически. Для их устранения после полного перепроведения нам может потребоваться документ Корректировка записей регистров или использование типовых документов Корректировка стоимости товаров.
В современных релизах (начиная с 2.5.x) появилась возможность гибкой настройки валют отчетности. Если ваша цель — просто видеть финансовый результат в долларах, при этом ведя основной учет в рублях, проанализируем альтернативный вариант. Возможно, вам не нужно менять основную валюту управленческого учета. В системе можно настроить дополнительную «Валюту финансовой отчетности», которая позволит формировать отчеты с пересчетом «на лету» по историческому курсу без повреждения основных данных системы.
Если вы решили проводить смену валюты в крупной компании, помните слова опытных специалистов: это может стать целым проектом. Рекомендуем проводить финальную итерацию в выходные дни или ночью, чтобы к приходу пользователей база была полностью пересчитана и проверена.
Основные точки контроля после завершения процедуры:
Таким образом, мы выяснили, что смена валюты управленческого учета в УТ 11 — это не просто смена «галочки», а глубокая ревизия всех движений базы. Выбирайте метод свертки для стабильности или метод полного перепроведения для сохранения истории, но всегда начинайте с тщательного тестирования на копии.