Как исправить ошибку «Обнаружены курсовые разницы по регистрам учета денежных средств» в 1С:УТ 11, ERP и КА?

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

При выполнении процедуры Закрытие месяца в программах «1С:Управление торговлей 11», «1С:ERP» или «1С:Комплексная автоматизация» пользователи часто сталкиваются с назойливой ошибкой: «Обнаружены курсовые разницы по регистрам учета денежных средств» — исправить проблемы поможет обработка исправления ошибок учета в 1С. Система предлагает выполнить переоценку, но стандартные действия — перепроведение документов и повторный расчет — не приносят результата. Ситуация осложняется тем, что в справке-расчете суммы «висят», но документы переоценки не создают по ним движений.

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

Причина 1: Зависшие записи в «заданиях» к закрытию месяца

Рассмотрим механизм работы системы. Программа не пересчитывает всё подряд каждый раз; она ориентируется на специальные таблицы — задания. Если в этих таблицах накопились старые, некорректные или «битые» записи за прошлые периоды, процедура закрытия может выдавать ошибку, даже если в текущем месяце всё верно.

Проанализируем алгоритм действий для очистки заданий:

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

Причина 2: Расхождение аналитики в регистрах (Проблема «копейки»)

Это одна из самых коварных причин. В регистре накопления ДенежныеСредстваБезналичные или ДенежныеСредстваУПодотчетныхЛиц остаток может быть нулевым в валюте, но иметь копеечный остаток в валюте регламентированного учета (рублях). Это часто происходит из-за разной аналитики. В таких случаях может потребоваться обнуление / списание остатков по регистру накопления.

Разберем ситуацию на примере:

У подотчетного лица висит сумма. При формировании Универсального отчета по регистру Денежные средства у подотчетных лиц мы можем увидеть две строки:

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

  1. Создадим документ Корректировка регистров (здесь может помочь универсальная корректировка и чтение остатков) — для этого подойдёт обработка автозаполнения корректировки регистров.
  2. Добавим запись по нужному регистру (например, ДенежныеСредстваБезналичные).
  3. Двумя строчками (приход и расход) перенесем сумму с пустой аналитики на заполненную или наоборот, чтобы все измерения (Подразделение, Направление деятельности, Организация) полностью совпадали.
  4. После этого запустим операцию Расчет курсовых разниц — ошибка должна исчезнуть.

Причина 3: Ошибки округления в многострочных документах

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

Например, сумма документа 12900,83 рубля. При распределении по 5 строкам сумма копеек в регламентированном учете может дать 12900,82. Эта разница в 1 копейку будет бесконечно преследовать вас в закрытии месяца.

Что можно сделать:

Причина 4: Известные ошибки релиза (баги конфигурации)

Иногда корень зла кроется в коде самой программы. Фирма «1С» периодически выпускает исправления для подсистемы взаиморасчетов. Рассмотрим список критических ошибок, которые могут вызывать зависание курсовых разниц:

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

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

  1. Найдем модуль менеджера документа РасчетКурсовыхРазниц.
  2. Найдем процедуру ТребуетсяПереоценка.
  3. Установим точку останова в конце процедуры на условии НЕ РезультатЗапроса.Пустой().
  4. Запустим закрытие месяца. Когда выполнение остановится, выполним команду РезультатЗапроса.Выгрузить().

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

Резюме

Ошибка по курсовым разницам в регистрах ДС — это почти всегда признак «разъехавшейся» аналитики или ошибки округления. Для решения задачи:

  1. Используйте Универсальный отчет для поиска ненулевых остатков в рублях при нулевых остатках в валюте в разрезе всех измерений.
  2. Применяйте Корректировку регистров или автоматическое закрытие остатков любого регистра накопления для схлопывания этих остатков.
  3. Проверяйте очередь заданий к закрытию месяца.
  4. Следите за актуальностью релиза конфигурации, так как механизмы валютного учета в 1С постоянно совершенствуются.
← На главную