Как корректно перейти с детализации расчетов по договорам на расчеты по заказам в 1С:ERP

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

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

В чем заключается проблема и почему двоятся суммы

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

В результате возникают следующие критические ошибки:

  1. Задвоение планового долга: при перезаписи заказа с детализацией по заказам документ сам формирует плановое движение по регистру накопления Расчеты с клиентами с объектом расчетов Заказ клиента. Следом документ Взаимозачет задолженности списывает долг с договора и вновь увеличивает долг на заказе, в результате чего сумма задолженности удваивается.
  2. Зависание товарных остатков: регистр Расчеты с клиентами хранит не только финансовую информацию (ресурсы Сумма, К оплате, Оплачивается), но и оперативные товарные обязательства (ресурсы К отгрузке, Отгружается). Типовой документ Взаимозачет задолженности предназначен строго для переноса денежного долга и авансов. Он переносит только ресурсы Сумма и К оплате, но совершенно не затрагивает ресурсы К отгрузке и Отгружается.
  3. Разрыв парности движений при закрытом периоде: если документ Реализация товаров и услуг был проведен ранее в закрытом периоде, он уже сформировал списание товарных обязательств по объекту расчетов Договор. Измененный заказ при этом начинает ожидать отгрузки уже по объекту Заказ клиента. Без открытия и перепроведения реализации закрыть этот товарный «хвост» типовыми инструментами невозможно.

Проанализируем архитектурную особенность: в типовой конфигурации объект расчетов является сквозным разрезом. Изменение детализации «на лету» в активной незавершенной цепочке документов платформой не поддерживается, так как нарушает соответствие между плановыми и фактическими регистрами (Расчеты с клиентами и Расчеты с клиентами по документам).

Способ 1. «Естественный срез» расчетов через новое соглашение или договор (рекомендуемый)

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

Разберем по шагам, как выполнить такой переход:

  1. Фиксация старых условий: в действующем договоре или индивидуальном соглашении клиента закрываем возможность создания новых заказов (например, устанавливаем признак закрытия или снимаем статус согласованности).
  2. Завершение текущих обязательств: по ранее созданным заказам отгрузки и оплаты доводятся до конца по старой схеме (с объектом расчетов Договор). Документы спокойно закрываются в рамках старой аналитики без нарушения целостности регистров.
  3. Создание новой аналитики: создаем новый Договор контрагента или соглашение, в котором сразу указываем детализацию расчетов По заказам.
  4. Перенос сальдо при необходимости: если на старом договоре остался нераспределенный свободный аванс, оформляем документ Взаимозачет задолженности с вида операции Перенос аванса клиента со старого договора на конкретный новый заказ, созданный уже в рамках нового договора.

Способ 2. Закрытие старого заказа и перенос неотгруженного остатка

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

Пошаговый порядок действий:

  1. Корректировка старого заказа: открываем исходный заказ клиента со старой детализацией расчетов. По всем позициям, которые еще не были отгружены, выставляем флаг отмены строк (с указанием причины отмены) либо уменьшаем количество до фактически отгруженного. Это автоматически закроет оперативные остатки по ресурсам К отгрузке и Отгружается по старому объекту расчетов. Переводим заказ в статус Закрыт.
  2. Оформление нового заказа: создаем новый заказ клиента, в котором указываем порядок расчетов По заказам. В табличную часть вносим только неотгруженные остатки товаров.
  3. Перенос финансового сальдо: документом Взаимозачет задолженности переносим сумму фактической задолженности или аванса со старого договора на созданный новый заказ клиента. Так как заказ содержит только новые позиции, задвоения плановых показателей не возникнет.

Способ 3. Выравнивание движений через «Корректировку регистров»

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

Выполним корректировку по следующей схеме:

  1. Создаем документ Корректировка регистров текущей датой открытого периода.
  2. В настройке состава регистров выбираем регистры накопления:
    • Расчеты с клиентами (плановые и оперативные расчеты);
    • Расчеты с клиентами по документам (фактические расчеты и распределение по накладным).
  3. В регистре Расчеты с клиентами добавляем записи для закрытия товарных хвостов:
    • Сторнируем (или списываем расходом) зависшие показатели ресурсов К отгрузке и Отгружается с аналитикой Объект расчетов = Договор.
    • Выравниваем показатели К оплате и Сумма по объекту расчетов Заказ клиента, чтобы ликвидировать задвоенный плановый долг, возникший после проведения взаимозачета.
  4. Если в информационной базе включен режим распределения взаиморасчетов офлайн, запускаем регламентное задание Выполнение отложенных движений по расчетам с клиентами/поставщиками или закрытие месяца, чтобы система пересчитала распределение по расчетным документам.

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


// Движение расхода для закрытия остатка отгрузки по старому договору
Движение = НаборЗаписей.ДобавитьРасход();
Движение.Период = ТекущаяДата();
Движение.Клиент = Партнер;
Движение.Контрагент = Контрагент;
Движение.Договор = Договор;
Движение.ОбъектРасчетов = Договор;
Движение.КОтгрузке = ЗависшаяСуммаОтгрузки;
Движение.Отгружается = 0;

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

← На главную