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