Документ «Корректировка долга»

Документ изменяет состояние взаиморасчётов с контрагентами без движения денег и товаров: проводит взаимозачёт встречных долгов, переносит задолженность между договорами/контрагентами и списывает безнадёжные долги. Формирует бухгалтерские проводки (БУ и НУ) и движения по регистрам дебиторской и кредиторской задолженности; печатает «Акт взаимозачёта».

Бухгалтерия для Казахстана, ред. 3.0 · v3.0.72.1 · обновлено 2026-06-04

🎯 Что это и зачем

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

Все три операции делает один документ — «Корректировка долга». Он закрывает (или перевешивает) суммы на счетах расчётов (1210, 3310, 1610, 3510 и т. п.), при необходимости отражает разницы в налоговом учёте (КПН) и сохраняет аналитику по договорам и сделкам для последующего акта сверки.

Кто работает: бухгалтер по расчётам с контрагентами. Частота — от еженедельной (при активной выверке расчётов) до разовой (списание по итогам инвентаризации).

⚠️ Важно про название. В источниках конфигурации синоним перечисления видов операций исторически назван «Виды операций документа "Корректировка долга по возвратной таре"». На функциональность это не влияет — это унаследованный синоним метаданных. Сам документ работает с обычной задолженностью контрагентов. См. поле issues.

🧭 Где найти в программе

Раздел «Продажа» (документ также логически относится к взаиморасчётам и доступен из разделов работы с контрагентами) → пункт «Корректировка долга». Откроется журнал; новый документ создаём кнопкой «Создать».

⚠️ Точный маршрут уточняется. В карте навигации Fresh (navigation-map.json) для Документ.КорректировкаДолга маршрут пока не задан, а разбор объекта указывает на разные точки входа («Банк и касса» / «Покупки/Продажи» в зависимости от рабочего места). Перед публикацией методички сверьте пункт меню в конкретной редакции интерфейса. См. поле issues.
раздел «Продажа», открытый журнал «Корректировка долга». (AccountingKZ30 во Fresh)
раздел «Продажа», открытый журнал «Корректировка долга». (AccountingKZ30 во Fresh)

👤 Часть 1. Для пользователя

Идём по шагам: сначала выбираем вид операции (это главный переключатель документа), затем заполняем нужные части и проводим.

💡 Правило №1. Первым делом выбирайте «Вид операции» — от него зависит, какие поля и закладки появятся на форме и какие проводки сформируются. Если выбрать вид операции после заполнения, форма может перестроиться и очистить уже введённые строки.

Документ поддерживает ровно три вида операции (значения перечисления ВидыОперацийКорректировкаДолга):

Вид операции (как в форме) Когда применять
Проведение взаимозачёта У вас и дебиторская, и кредиторская задолженность по одному контрагенту; стороны зачли встречные требования
Перенос задолженности Долг нужно перевести на другой договор или на другого контрагента, не меняя общей суммы
Списание задолженности Дебиторскую/кредиторскую задолженность списывают (например, безнадёжный долг на расходы)

Урок 1. Проведение взаимозачёта

Когда: контрагент одновременно ваш должник и ваш кредитор; подписан акт взаимозачёта на совпадающую сумму.

Шаг 1. Создаём документ и выбираем вид операции

«Создать» → Вид операции = «Проведение взаимозачёта».

📷 СКРИН 02
СКРИН 02 — новый документ, открыт список «Вид операции» с тремя значениями.

Шаг 2. Заполняем шапку

💡 При взаимозачёте дебитор и кредитор — это один и тот же контрагент. Форма синхронизирует поля автоматически; не пытайтесь указать разных контрагентов — документ не проведётся.
заполненная шапка для взаимозачёта.
заполненная шапка для взаимозачёта.

Шаг 3. Заполняем дебиторскую задолженность

Переходим на закладку «Дебиторская задолженность» → кнопка «Заполнить» → «Заполнить остатками по взаиморасчётам». Система загрузит строки с суммами, которые контрагент должен вам, в разрезе договоров и сделок.

📷 СКРИН 04
СКРИН 04 — закладка «Дебиторская задолженность», таблица заполнена остатками.

Шаг 4. Заполняем кредиторскую задолженность

Аналогично на закладке «Кредиторская задолженность» — загрузятся суммы, которые вы должны контрагенту.

📷 СКРИН 05
СКРИН 05 — закладка «Кредиторская задолженность» с остатками.

Шаг 5. Выравниваем суммы

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

⚠️ Контроль из кода. При проведении документ сворачивает обе таблицы по видам задолженности и сравнивает итоги. Если Дебиторская ≠ Кредиторская, проведение прерывается с сообщением вида: «Не совпадают суммы дебиторской и кредиторской задолженности при проведении взаимозачёта… Разница: N». Добивайтесь нулевой разницы.
📷 СКРИН 06
СКРИН 06 — сообщение о несовпадении сумм при попытке провести.

Шаг 6. Проводим

«Провести» или «Записать и закрыть». Проверяем результат через Дт/Кт (отчёт о проводках документа).

окно «Движения документа: Дт/Кт» после взаимозачёта.
окно «Движения документа: Дт/Кт» после взаимозачёта.

Шаг 7. Печатаем акт

Кнопка «Печать» → «Акт взаимозачёта» формирует печатную форму с детализацией зачтённой задолженности.

📷 СКРИН 08
СКРИН 08 — печатная форма «Акт взаимозачёта».

Урок 2. Перенос задолженности

Когда: долг нужно перенести с одного договора на другой (или на другого контрагента), не меняя общую сумму.

  1. Вид операции = «Перенос задолженности».
  2. Заполняем шапку: Организация, Дата, Валюта.
  3. В переносе участвуют два контрагента/договора — «откуда» и «куда». Заполняем строки задолженности на соответствующих закладках (дебиторская и/или кредиторская в зависимости от того, какой долг переносим).
  4. Указываем суммы переноса. Общая сумма задолженности контрагента при корректном переносе не меняется — меняется только её «привязка» к договору/контрагенту.
  5. Проводим.
💡 Поле «Договор контрагента» в шапке для переноса обязательно (если в базе включён учёт по договорам) — оно задаёт «целевой» договор. При выключенной опции «Вести учёт по договорам» это поле не проверяется.
📷 (плейсхолдер
(плейсхолдер — закладки переноса — «откуда» и «куда»)*

Урок 3. Списание задолженности

Когда: дебиторскую (или кредиторскую) задолженность списывают — например, безнадёжный долг покупателя на расходы.

  1. Вид операции = «Списание задолженности».
  2. Заполняем шапку: Организация, Дата, Контрагент.
  3. Указываем счета корреспонденции: - Счёт Дт — куда относим списание (например, счёт расходов по сомнительным/безнадёжным требованиям); - Счёт Кт — счёт списываемой задолженности (счёт расчётов). - Счёт Дт (НУ) / Счёт Кт (НУ) — налоговые счета подставляются автоматически при выборе счетов БУ; при необходимости правим.
  4. Если операция влияет на базу КПН — включаем учёт по налогу на прибыль и выбираем Вид учёта НУ.
  5. На закладке задолженности заполняем строки списываемых долгов по договорам и сделкам.
  6. Проводим.
💡 Подсказка. Счета Дт/Кт нужны не для всех видов операции и не для всех сторон. Документ сам решает, какие счета обязательны: для списания — в зависимости от того, есть ли в строках дебиторская и/или кредиторская задолженность (см. Часть 2, валидации).
⚠️ Важно. Списание долга — операция, требующая основания (акт инвентаризации, приказ руководителя). Налоговое признание списания регулируется НК РК — сверяйтесь с учётной политикой и налоговым консультантом.
📷 СКРИН 09
СКРИН 09 — документ списания — счета Дт/Кт и таблица списываемой задолженности.

🛠 Часть 2. Для программиста

Источник: реальный код релиза 3.0.72.1 (Documents/КорректировкаДолга/Ext/ObjectModule.bsl, прочитан целиком — 283 строки), плюс разбор objects/Документ_КорректировкаДолга.md и business-logic/. Перечисление видов операций сверено по Enums/ВидыОперацийКорректировкаДолга.xml.

Структура объекта

Вид операции — единственный «движок». Реквизит ВидОперации имеет тип Перечисление.ВидыОперацийКорректировкаДолга и принимает ровно три значения (синонимы — как видит пользователь):

Значение перечисления Синоним (UI)
ПроведениеВзаимозачета Проведение взаимозачёта
ПереносЗадолженности Перенос задолженности
СписаниеЗадолженности Списание задолженности

Ключевые реквизиты шапки:

Реквизит Тип Обязательность Назначение
ВидОперации ПеречислениеСсылка.ВидыОперацийКорректировкаДолга ShowError Определяет логику формы, валидаций и движений
Организация СправочникСсылка.Организации ShowError Юрлицо операции
ВалютаДокумента СправочникСсылка.Валюты ShowError Валюта корректируемых сумм
КонтрагентДебитор СправочникСсылка.Контрагенты условно Контрагент-должник (дебиторская сторона)
КонтрагентКредитор СправочникСсылка.Контрагенты условно Контрагент-кредитор; при взаимозачёте = дебитору
ДоговорКонтрагента СправочникСсылка.ДоговорыКонтрагентов условно Базовый/целевой договор (для переноса)
СчетДт, СчетКт ПланСчетовСсылка.Типовой условно Корреспонденция БУ (для списания / вспомогательного счёта)
СчетДтНУ, СчетКтНУ ПланСчетовСсылка.Налоговый условно Корреспонденция НУ; подставляется по счёту БУ
СубконтоДт1..3, СубконтоКт1..3 (+ …НУ1..3) по плану счетов нет Аналитика проводок
КурсДокумента, КратностьДокумента Число нет Курс/кратность валюты документа
УчитыватьКПН Булево нет Включает отражение разниц по КПН
ВидУчетаНУ СправочникСсылка.ВидыУчетаНУ условно Разделение НУ при учёте КПН
ИспользоватьВспомогательныйСчет Булево нет Промежуточный счёт во взаимозачёте
РучнаяКорректировка Булево нет Отключает авто-формирование движений
ПодразделениеОрганизации / СтруктурноеПодразделение СправочникСсылка.ПодразделенияОрганизаций нет Аналитика и контроль доступа
⚠️ «Обязательность» большинства счетов и контрагентов — условная: она вычисляется в ОбработкаПроверкиЗаполнения через массив непроверяемых реквизитов в зависимости от вида операции (см. ниже). В метаданных эти реквизиты могут стоять как ShowError, но фактически проверяются не всегда.

Табличная часть СуммыДолга (детализация корректируемых сумм):

Поле Тип Назначение
ВидЗадолженности Перечисление.ВидыЗадолженности (Дебиторская / Кредиторская) Классификатор стороны долга
ДоговорКонтрагента СправочникСсылка.ДоговорыКонтрагентов Договор задолженности
Сделка ДокументСсылка (составной) Документ-основание долга (для детализации)
Сумма Число Сумма в валюте документа
СуммаВзаиморасчетов Число Сумма в валюте взаиморасчётов (договора)
КурсВзаиморасчетов, КратностьВзаиморасчетов Число Курс/кратность валюты договора
СчетУчетаРасчетов ПланСчетовСсылка.Типовой Счёт расчётов (1210/3310/1610/3510 и т. п.)
СуммаНУ Число Сумма для НУ (может отличаться от БУ)
🧩 На уровне формы и проведения логически работают две стороны задолженности — дебиторская и кредиторская (для взаимозачёта и переноса). В разборе формы они описаны как СуммыДолга и СуммыДолгаКредиторскаяЗадолженность; различает строки реквизит ВидЗадолженности. Закладки «Дебиторская/Кредиторская задолженность» переключаются по виду операции.

Жизненный цикл (обработчики ObjectModule)

Обработчик Строк Что делает
ЗаполнитьНаборыЗначенийДоступа ~5 RLS: наборы доступа по Организация + СтруктурноеПодразделение
ОбработкаПроверкиЗаполнения ~100 Условная обязательность реквизитов по виду операции; контроль совпадения сумм взаимозачёта
ОбработкаЗаполнения ~18 Заполнение при вводе на основании / из структуры; шапка документа
ОбработкаПроведения ~110 Подготовка таблиц и формирование движений по взаиморасчётам, переоценке, НУ
ПриКопировании 3 Сбрасывает дату копии на текущую

Как формируется проведение — реальный код (3.0.72.1)

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

Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 161), сокращённо (опущены повторяющиеся ветки кредиторской стороны — они симметричны дебиторской):

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    // ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
    ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
    Если РучнаяКорректировка Тогда
        Возврат;                       // ручное управление движениями — авто-проведение выключено
    КонецЕсли;

    ПараметрыПроведения = Документы.КорректировкаДолга.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
    Если Отказ Тогда
        Возврат;
    КонецЕсли;

    // ПОДГОТОВКА ТАБЛИЦ ВЗАИМОРАСЧЁТОВ (для каждой операции — своя пара «деб./кред.»)
    // ПЕРЕНОС задолженности
    ТаблицаПереносЗадолженностиДебиторскаяЗадолженность =
        УправлениеВзаиморасчетамиСервер.ПодготовитьТаблицуВзаиморасчетовПогашениеЗадолженности(
            ПараметрыПроведения.ТаблицаПереносЗадолженностиДебиторскаяЗадолженность,
            ПараметрыПроведения.РеквизитыДебиторскаяЗадолженность, Отказ, "КорректировкаДолга");
    // … симметрично: ТаблицаПереносЗадолженностиКредиторскаяЗадолженность …

    ТаблицаВзаиморасчетовПереносЗадолженностиДебиторскаяЗадолженность =
        УправлениеВзаиморасчетамиСервер.ПодготовитьТаблицуВзаиморасчетовЗадолженностиКорректировкаДолга(
            ТаблицаПереносЗадолженностиДебиторскаяЗадолженность,
            ПараметрыПроведения.РеквизитыДебиторскаяЗадолженность, Отказ);

    // СПИСАНИЕ задолженности — аналогичная подготовка таблиц (деб./кред.)
    // ВЗАИМОЗАЧЁТ задолженности — подготовка + сборка структуры:
    СтруктураТаблицВзаимозачета = УправлениеВзаиморасчетамиСервер.ПодготовитьСтруктуруТаблицВзаимозачета(
        ТаблицаВзаимозачетЗадолженностиДебиторскаяЗадолженность,
        ТаблицаВзаимозачетЗадолженностиКредиторскаяЗадолженность,
        ПараметрыПроведения.Реквизиты, Отказ);
    ТаблицаВзаимозачетаДебиторскаяЗадолженность  = СтруктураТаблицВзаимозачета.ТаблицаДебиторскаяЗадолженность;
    ТаблицаВзаимозачетаКредиторскаяЗадолженность = СтруктураТаблицВзаимозачета.ТаблицаКредиторскаяЗадолженность;

    // ФОРМИРОВАНИЕ ДВИЖЕНИЙ — один и тот же метод на все операции, разные таблицы и флаги:

    // ПЕРЕНОС (последний параметр Истина — признак переноса)
    УправлениеВзаиморасчетамиСервер.СформироватьДвиженияЗадолженностиКорректировкаДолга(
        ТаблицаВзаиморасчетовПереносЗадолженностиДебиторскаяЗадолженность,
        ПараметрыПроведения.РеквизитыДебиторскаяЗадолженность, Движения, Отказ, Истина);
    // … + кредиторская сторона переноса …

    // СПИСАНИЕ (передаётся исходная таблица списания — для аналитики)
    УправлениеВзаиморасчетамиСервер.СформироватьДвиженияЗадолженностиКорректировкаДолга(
        ТаблицаВзаиморасчетовСписаниеЗадолженностиДебиторскаяЗадолженность,
        ПараметрыПроведения.РеквизитыДебиторскаяЗадолженность, Движения, Отказ, ,
        ПараметрыПроведения.ТаблицаСписаниеЗадолженностиДебиторскаяЗадолженность);
    // … + кредиторская сторона списания …

    // ВЗАИМОЗАЧЁТ
    УправлениеВзаиморасчетамиСервер.СформироватьДвиженияЗадолженностиКорректировкаДолга(
        ТаблицаВзаимозачетаДебиторскаяЗадолженность,
        ПараметрыПроведения.РеквизитыДебиторскаяЗадолженность, Движения, Отказ);
    // … + кредиторская сторона взаимозачёта …

    // ПЕРЕОЦЕНКА валютных остатков — ПОСЛЕ всех проводок
    ТаблицаПереоценка = УчетДоходовРасходов.ПодготовитьТаблицуПереоценкаВалютныхОстатковПоПроводкамДокумента(
        ПараметрыПроведения.Реквизиты, Движения, Отказ);
    УчетДоходовРасходов.СформироватьДвиженияПереоценкаВалютныхОстатков(ТаблицаПереоценка,
        ПараметрыПроведения.Реквизиты, Движения, Отказ);

    // ПОСТОЯННЫЕ РАЗНИЦЫ в НУ
    ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ(ПараметрыПроведения.Реквизиты, Движения, Отказ);

КонецПроцедуры

Разбор по шагам:

  1. ПодготовитьНаборыЗаписейКПроведению — инициализирует наборы движений объекта.
  2. РучнаяКорректировка = Истина → Возврат — авто-проведение полностью пропускается; пользователь заполняет движения вручную. Это первый, что нужно проверять при разборе «документ проведён, а проводок нет».
  3. ПодготовитьПараметрыПроведения (метод модуля менеджера) — собирает реквизиты и исходные таблицы по сторонам и операциям, определяет валюту регламентированного учёта.
  4. Для каждой из трёх операций готовятся таблицы взаиморасчётов отдельно по дебиторской и кредиторской стороне (методы ПодготовитьТаблицуВзаиморасчетовПогашениеЗадолженности и …ЗадолженностиКорректировкаДолга). Для взаимозачёта дополнительно собирается единая СтруктураТаблицВзаимозачета.
  5. Формирование движений — один универсальный метод СформироватьДвиженияЗадолженностиКорректировкаДолга, вызываемый с разными таблицами и флагами: - перенос — с признаком Истина (5-й параметр); - списание — с передачей исходной таблицы списания (6-й параметр) для аналитики; - взаимозачёт — без доп. флагов.
  6. Переоценка валютных остатков — строго после всех проводок (УчетДоходовРасходов).
  7. Постоянные разницы в НУ — ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ.

Кто что формирует:

Вызов в коде Что пишет
УправлениеВзаиморасчетамиСервер.СформироватьДвиженияЗадолженностиКорректировкаДолга Движения по дебиторской/кредиторской задолженности и соответствующие бухгалтерские проводки (перенос / списание / взаимозачёт)
УчетДоходовРасходов.ПодготовитьТаблицуПереоценкаВалютныхОстатков… + СформироватьДвиженияПереоценкаВалютныхОстатков Курсовые разницы по валютным остаткам после проводок
ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ Постоянные разницы в налоговом учёте

✅ Этот документ формирует бухгалтерские проводки (в отличие от счетов/актов сверки, которые движений не делают). Но точные счета Дт/Кт вычисляются модулем УправлениеВзаиморасчетамиСервер и настройками счетов расчётов, а не реквизитами документа напрямую. Сверяйте реальные проводки по отчёту «Дт/Кт» на проведённом документе.

Движения по регистрам

Регистр Тип Что пишет
ДебиторскаяЗадолженность Регистр накопления Изменение долга контрагента перед организацией (Период, Регистратор, Организация, Контрагент, Подразделение, Договор, Счёт, Сумма)
КредиторскаяЗадолженность Регистр накопления Изменение долга организации перед контрагентом (аналогичный состав)
Типовой Регистр бухгалтерии (БУ) Проводки Дт/Кт по счетам расчётов и (для списания) расходов
Налоговый Регистр бухгалтерии (НУ) Аналогичные проводки по плану счетов «Налоговый»; суммы из СуммаНУ
🧩 Состав регистров ДебиторскаяЗадолженность / КредиторскаяЗадолженность и проводки по Типовой / Налоговый подтверждены разбором ManagerModule и objects/. Конкретные корреспонденции (какой счёт в Дт, какой в Кт) формирует УправлениеВзаиморасчетамиСервер и зависят от вида операции, счетов расчётов в строках и счетов Дт/Кт шапки.

Валидации (ОбработкаПроверкиЗаполнения)

Логика построена на массиве непроверяемых реквизитов: вместо «что проверять» код перечисляет, что проверять не надо при текущем виде операции, и удаляет это из ПроверяемыеРеквизиты. Ключевые ветки (реальный код):

🧩 В шапке нет прямой строки «КонтрагентДебитор = КонтрагентКредитор» в ОбработкаПроверкиЗаполнения: для не-взаимозачётных операций просто исключается проверка КонтрагентКредитор (кроме переноса). Синхронизацию контрагентов при взаимозачёте обеспечивает форма (ВидОперацииПриИзменении / КонтрагентДебиторПриИзменении), а согласованность сумм — приведённый контроль при проведении.

Печатные формы

В ManagerModule реализована процедура ПечатьАктаВзаимозачета (~221 строка) — формирует табличный документ «Акт взаимозачёта» по запросу к регистрам задолженности. Доступна из меню «Печать» на форме документа. Зависит от УправлениеПечатью, УчетнаяПолитикаСервер, УправлениеВзаиморасчетамиСервер.

Зависимости (общие модули)

💼 Партнёру / внедренцу.
  1. «Проводки не те» / «не на тот счёт» → причина почти всегда в счетах расчётов (на договоре/в строках СуммыДолга) и в счетах Дт/Кт шапки, а не в документе. Логика корреспонденций — в УправлениеВзаиморасчетамиСервер; туда и смотреть.
  2. «Взаимозачёт не проводится» → проверьте равенство сумм дебиторской и кредиторской частей: контроль жёсткий, разница должна быть ровно 0.
  3. «Документ проведён, движений нет» → включён флаг РучнаяКорректировка: авто-проведение выключается полностью (Возврат в начале ОбработкаПроведения).
  4. Учёт по договорам управляется опцией ВестиУчетПоДоговорам — от неё зависит обязательность договоров; согласуйте с настройкой базы клиента.
  5. КПН/НУ включается флагом УчитыватьКПН и видом учёта НУ; для не-плательщиков проверки и движения НУ не выполняются.
🧩 Заметки для разработчика.
  1. Вид операции — главный переключатель. Все ветки валидации и подготовки таблиц завязаны на три значения перечисления. При расширении (новый вид операции) правки нужны и в ОбработкаПроверкиЗаполнения, и в ОбработкаПроведения, и в форме.
  2. Симметрия деб./кред. Подготовка и формирование движений дублируются для двух сторон — при доработке меняйте обе ветки согласованно.
  3. Списание — выборочные счета. Обязательность СчетДт/СчетКт зависит от наличия строк соответствующего ВидЗадолженности, а не от вида операции целиком.
  4. Порядок строгий: проводки задолженности → переоценка валюты → постоянные разницы НУ. Переоценка работает «поверх» уже сформированных движений.
  5. ОбработкаЗаполнения поддерживает и ввод на основании (Метаданные().ВводитсяНаОсновании), и инициализацию структурой ДанныеЗаполнения; при программном создании можно передать готовые реквизиты.

🔗 Связанные разделы

🆕 Что нового

Версия Изменение Тип
3.0.72.1 Первичное описание (на релизе 3.0.72.1) 🆕