Почему в 1С:УТ 11.4 при взаимозачете аванса в у.е. курс в реализации берется на текущую дату, а не на дату аванса?

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

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

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

Анализ механизма онлайн-взаиморасчетов

Начиная с версии 11.4, в конфигурациях на базе ERP-платформы был внедрен новый механизм — «Онлайн-взаиморасчеты». Его главное отличие от старого (офлайн) метода заключается в том, что распределение расчетов происходит динамически. Однако в версиях ветки 11.4.9 этот механизм еще находился в стадии активной отладки.

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

Если же мы перенесем Реализацию товаров и услуг на следующий день, граница периодов становится четкой. Система видит остаток по регистру РасчетыСКлиентамиПоДокументам на начало дня и корректно подтягивает исторический курс аванса.

Разбор по шагам: как решить проблему

1. Проверка настроек переоценки валютных средств

Первым делом проверим настройки системы, влияющие на расчет курсовых разниц и актуализацию сумм в валюте. Перейдем в раздел НСИ и администрирование — Казначейство. Посмотрим на параметр «Переоценка валютных средств». Если установлена настройка «На дату оплаты и на конец месяца», это может приводить к задержкам в актуализации курсов внутри месяца.

Рекомендуется попробовать изменить этот параметр на «На каждый день месяца». Это заставит систему более детально прорабатывать остатки в валюте на каждую дату, что критично для правильного определения курса аванса при сложных цепочках документов (Заказ -> Оплата -> Взаимозачет -> Реализация).

2. Работа с очередью заданий расчетов

Особенность онлайн-режима в том, что движения по регистрам расчетов могут выполняться отложенно. За это отвечает регламентное задание ЗаданияОчередиРасчетов. Если документ реализации печатается или проводится до того, как фоновое задание обработало Взаимозачет задолженности, данные о курсе аванса будут неверными.

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


// Пример принудительного вызова расчета очереди (для ознакомления)
РасчетыСКлиентами.ВыполнитьАктуализациюРасчетов(ОбъектРасчетов);

Важно помнить, что в режиме офлайн-взаиморасчетов часто возникает другая проблема: перезапись документа без изменения суммы может очистить ресурсы в регистре СуммыДокументовВВалютеРегл, и если регламентное задание по распределению расчетов не запустится, суммы в печатных формах (ТОРГ-12) окажутся пустыми.

3. Особенности документа «Взаимозачет задолженности»

При переносе аванса с Заказа №1 на Заказ №2 через взаимозачет, система должна «пробросить» себестоимость валюты (курс 20 октября). Проанализируем движения документа Взаимозачет задолженности. Если в регистре Расчеты с клиентами по документам сумма в валюте регламентированного учета рассчитана по курсу на 29 октября (день взаимозачета), то и реализация подтянет именно этот курс.

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

4. Переход на учет по договорам

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

Резюме

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

Основные рекомендации для исправления:

  1. Убедитесь, что регламентные задания по расчету взаиморасчетов выполняются без ошибок.
  2. Попробуйте изменить настройку переоценки на «На каждый день месяца».
  3. Если ошибка сохраняется, разнесите Взаимозачет и Реализацию по разным дням или обновите релиз программы до 11.4.11 и выше, где алгоритмы онлайн-расчетов были существенно переработаны разработчиками 1С.
← На главную