Как восстановить валюту в проводках после включения признака "Валютный" на счете в 1С:ERP

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

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

Почему в проводках не появилась валюта автоматически?

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

Способ №1: Программная перезапись движений через набор записей

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

Разберем пример кода для такой обработки:


// Пример алгоритма для исправления проводок
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |   ХозрасчетныйДвижения.Регистратор КАК Регистратор
    |ИЗ
    |   РегистрБухгалтерии.Хозрасчетный КАК ХозрасчетныйДвижения
    |ГДЕ
    |   ХозрасчетныйДвижения.СчетДт = &НужныйСчет ИЛИ ХозрасчетныйДвижения.СчетКт = &НужныйСчет";

Запрос.УстановитьПараметр("НужныйСчет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.02"));
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
    Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Результат.Регистратор);
    Набор.Прочитать();
    
    Для Каждого Запись Из Набор Цикл
        // Проверяем, что это наш счет и валюта еще не заполнена
        Если Запись.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.02") Тогда
            Запись.ВалютаДт = Справочники.Валюты.НайтиПоКоду("840"); // Пример для USD
            Запись.ВалютнаяСуммаДт = Запись.Сумма; // Если курс был 1:1 или нужно рассчитать по курсу
        КонецЕсли;
        
        Если Запись.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.02") Тогда
            Запись.ВалютаКт = Справочники.Валюты.НайтиПоКоду("840");
            Запись.ВалютнаяСуммаКт = Запись.Сумма;
        КонецЕсли;
    КонецЦикла;
    
    // Важно: используем Загрузка = Истина, чтобы обойти проверки
    Набор.ОбменДанными.Загрузка = Истина;
    Набор.Записать();
КонецЦикла;

Важный нюанс: Использование свойства ОбменДанными.Загрузка = Истина позволяет избежать выполнения прикладных алгоритмов при записи, но помните, что это «грубое» вмешательство. Оно решит проблему отображения в ОСВ, но не исправит данные в регистрах оперативного учета.

Способ №2: Методологически верное разделение счетов

Проанализируем архитектуру типовых конфигураций. В 1С:ERP принято разделять рублевые и валютные расчеты на разных субсчетах. Например:

Вместо того чтобы менять настройки предопределенного счета 76.02, выясним, не правильнее ли будет перенести задолженность на специализированный валютный счет. В 1С:ERP для этого рекомендуется использовать документ «Корректировка задолженности». С его помощью мы можем списать остаток с «неправильного» счета и принять его на «правильный» (76.22). Это позволит избежать «вскрытия» старых периодов и сохранит чистоту учета.

Способ №3: Учет специфики 1С:ERP (Оперативный контур)

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

Рассмотрим порядок действий для корректного перепроведения:

  1. Проверим настройки Договора с контрагентом. Валюта взаиморасчетов в договоре должна совпадать с валютой документов.
  2. Если в документах уже выбрана валюта, отличная от рубля, но проводки пустые — необходимо проверить «Группу настроек финансового учета» (ГФУ). Возможно, там жестко закреплен рублевый счет.
  3. Выполним процедуру «Отражение документов в регламентированном учете» (меню Регламентированный учет — Сервис). Только эта обработка актуализирует проводки на основе оперативных данных.

Риски изменения признака "Валютный" задним числом

Рассмотрим опасности, которые могут возникнуть после ручной правки проводок или изменения счета:

1. Курсовые разницы: Как только счет становится валютным, регламентная операция «Переоценка валютных средств» начнет анализировать остатки на нем. Если вы проставили валюту в проводках, но не обеспечили корректную привязку к курсам валют на даты документов, при закрытии месяца система может начислить огромные некорректные курсовые разницы.

2. Расхождение регистров: В ERP существует строгий контроль соответствия остатков по регистрам накопления (например, РасчетыСПоставщиками) и регистру бухгалтерии Хозрасчетный. Программная правка только регистра бухгалтерии (Способ №1) приведет к тому, что стандартные отчеты по взаиморасчетам будут показывать рубли, а бухгалтерский баланс — валюту.

Рекомендации

Подводя итог, выберем наиболее безопасную стратегию:

Во-первых, если есть возможность, верните настройки счета 76.02 в исходное состояние и используйте предопределенный валютный счет 76.22. Это соответствует методологии 1С и избавит от проблем с обновлением конфигурации в будущем.

Во-вторых, если перепроведение неизбежно, используйте обработку «Групповое изменение реквизитов», чтобы массово актуализировать договоры и валюты в документах, а затем запустите типовой механизм отражения в регламентированном учете.

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

← На главную