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