Почему 1С запрещает отгрузку клиенту при наличии плановой задолженности и как это исправить?

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

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

Проанализируем конкретный пример. Наш долг перед клиентом (аванс) составляет 154 460 рублей, а долг клиента равен нулю. Клиент оформляет крупный заказ на сумму 433 550 рублей. Товар под этот заказ ожидается на складе, поэтому мы проводим документ ЗаказКлиента, но физической отгрузки пока нет. Спустя некоторое время этот же клиент хочет купить мелкий товар со склада на сумму 18 880 рублей. Мы создаем второй заказ, пытаемся оформить документ РеализацияТоваровУслуг, но система выдает строгое предупреждение: «Отгрузка запрещена». В итоге мы должны клиенту деньги, товар есть на складе, но продать мы его не можем. Давайте выясним причину такого поведения и разберем по шагам все возможные варианты решения этой задачи.

Понимание механики фактической и плановой задолженности

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

  1. Фактическая задолженность — возникает только после перехода права собственности на товар (то есть после проведения накладной или акта выполненных работ) или после поступления/списания денежных средств.
  2. Плановая задолженность — возникает в момент фиксации намерений клиента, то есть при проведении документа ЗаказКлиента с заполненным графиком оплаты.

Посмотрим на ситуацию глазами программы. Так как в настройках договора указана детализация «По договорам», система анализирует общий котел взаиморасчетов по контрагенту. Когда мы проводим большой заказ на 433 550 рублей, программа видит наш аванс 154 460 рублей и автоматически резервирует его под этот крупный заказ (в контуре плановых взаиморасчетов). При этом формируется плановая задолженность по договору на оставшуюся сумму. При попытке провести новый заказ на 18 880 рублей система обнаруживает, что общий плановый баланс по договору уже отрицательный (лимит превышен), и активирует блокировку. Разберем способы обхода и правильной настройки системы.

Способ 1. Ручное управление проведением документов (временное решение)

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

  1. Открываем список заказов клиентов.
  2. Находим большой «висящий» документ ЗаказКлиента на сумму 433 550 рублей и отменяем его проведение (снимаем с проведения). Это мгновенно освобождает плановый баланс.
  3. Проводим маленький заказ на 18 880 рублей и оформляем на его основании документ РеализацияТоваровУслуг.
  4. Возвращаемся к большому заказу и проводим его заново.

Этот метод работает безотказно, так как на момент отгрузки мелкого заказа система видит чистый свободный аванс. Однако, при больших объемах продаж и десятках менеджеров этот процесс превратится в хаос. Поэтому рассмотрим более профессиональные подходы.

Способ 2. Разработка собственного механизма проверок (кастомизация кода)

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

Для этого мы добавляем в конфигурацию новый объект РегистрСведений, где будем хранить индивидуальные условия отгрузки для клиентов. Затем создаем объект ПодпискаНаСобытие (например, перед записью или обработкой проведения документа РеализацияТоваровУслуг).


Процедура ПроверкаУсловийОтгрузкиОбработкаПроведения(Источник, Отказ, РежимПроведения)
    
    // Получаем данные нашего кастомного регистра
    РазрешенаОтгрузка = ПроверитьСвоиУсловия(Источник.Контрагент, Источник.СуммаДокумента);
    
    Если Не РазрешенаОтгрузка Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Отгрузка по индивидуальным правилам запрещена!";
        Сообщение.Сообщить();
        Отказ = Истина;
    КонецЕсли;

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

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

Способ 3. Грамотная настройка этапов оплаты в заказах

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

В документе ЗаказКлиента на 433 550 рублей, который ожидает поступления товара, нам нужно корректно настроить правила оплаты:

  1. Переходим на вкладку Этапы оплаты (или Правила оплаты).
  2. Если там стоит дата платежа, которая уже наступила, система считает этот долг просроченным в плановом контуре.
  3. Сдвинем планируемую дату платежа на будущий период (например, на предполагаемую дату поступления товара на склад).
  4. Альтернативный вариант: изменим вариант оплаты на «Кредит (после отгрузки)».

При таком подходе на текущую дату плановая задолженность по договору не будет превышать лимиты, так как срок ее возникновения отодвинут. Система без проблем пропустит отгрузку мелкого заказа на 18 880 рублей.

Способ 4. Использование роли для отклонения от условий оплаты

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

В программе предусмотрена специальная роль «Отклонение от условий оплаты». Если назначить эту роль руководителю отдела продаж или старшему менеджеру, он получит возможность игнорировать стоп-сигналы системы. Когда рядовой менеджер сталкивается с запретом, он обращается к руководителю. Руководитель, авторизовавшись под своей учетной записью, просто проводит этот документ РеализацияТоваровУслуг. Система зафиксирует отклонение, но позволит совершить операцию. Для администраторов с полными правами эта возможность открыта по умолчанию.

Способ 5. Изменение детализации расчетов на «По заказам»

Проанализируем глобальную архитектуру взаиморасчетов на вашем предприятии. Если описанная ситуация повторяется регулярно, детализация расчетов в документе ДоговорКонтрагента в режиме «По договорам» вам категорически не подходит.

Вам необходимо перевести работу с данным клиентом (а возможно, и со всеми подобными) на порядок расчетов «По заказам» или комбинированный вариант «Аванс по заказам, долг по накладным».

Как это работает на практике:

  1. В этом режиме каждый ЗаказКлиента формирует свой изолированный контур оплат. Общего котла больше нет.
  2. Наш свободный аванс в 154 460 рублей остается на договоре и не привязывается автоматически к большому заказу на 433 550 рублей (пока мы явно этого не укажем).
  3. Когда поступает новый заказ на 18 880 рублей, мы заходим в него и через кнопку (или форму) «Зачет оплаты» точечно привязываем нужную сумму из свободного остатка.
  4. Система видит, что конкретный заказ на 18 880 рублей оплачен полностью (на 100%), и без проблем дает провести отгрузку. При этом ей совершенно не важно, какие долги висят на соседнем огромном заказе.

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

Способ 6. Динамические запреты отгрузки через Сегменты клиентов (Стоп-листы)

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

Разберем по шагам этот элегантный метод:

  1. В разделе «НСИ и Администрирование» — «CRM и маркетинг» убедитесь, что включена функциональная опция использования сегментов клиентов.
  2. Снимите галочки жесткого запрета отгрузки («при сумме задолженности...») непосредственно внутри карточек договоров.
  3. Создайте новый СегментПартнеров и назовите его, например, «Стоп-лист: Запрет отгрузки».
  4. Настройте правила формирования этого сегмента. В настройках отбора укажите, что клиент попадает в этот сегмент только при наличии фактической просроченной задолженности больше нуля.
  5. В типовых настройках продаж укажите, что клиентам из этого сегмента отгрузка запрещена.

При таком сценарии система будет игнорировать плановые задолженности по незакрытым крупным заказам. Клиент попадет в блокировку отгрузок только тогда, когда вы реально отгрузили ему товар (сформировался фактический долг), и он не оплатил его в оговоренный срок. Это решает проблему кардинально и автоматизирует контроль за должниками без ложных срабатываний.

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

← На главную