Часто при работе в современных конфигурациях, таких как 1С:Управление торговлей, 1С:Комплексная автоматизация или 1С:ERP Управление предприятием, мы сталкиваемся с неочевидным поведением системы контроля взаиморасчетов. Рассмотрим типичную ситуацию: у нас есть клиент, который работает по одному договору с детализацией расчетов «По договорам». В карточке договора установлены жесткие правила: запрещать отгрузку при сумме задолженности более нуля и при наличии просроченной задолженности.
Проанализируем конкретный пример. Наш долг перед клиентом (аванс) составляет 154 460 рублей, а долг клиента равен нулю. Клиент оформляет крупный заказ на сумму 433 550 рублей. Товар под этот заказ ожидается на складе, поэтому мы проводим документ ЗаказКлиента, но физической отгрузки пока нет. Спустя некоторое время этот же клиент хочет купить мелкий товар со склада на сумму 18 880 рублей. Мы создаем второй заказ, пытаемся оформить документ РеализацияТоваровУслуг, но система выдает строгое предупреждение: «Отгрузка запрещена». В итоге мы должны клиенту деньги, товар есть на складе, но продать мы его не можем. Давайте выясним причину такого поведения и разберем по шагам все возможные варианты решения этой задачи.
Прежде чем исправлять ситуацию, давайте разберем, как именно 1С считает долги. Данное поведение не является системной ошибкой или багом — это абсолютно штатный механизм контроля лимитов. В системе четко разделяются два понятия:
ЗаказКлиента с заполненным графиком оплаты.Посмотрим на ситуацию глазами программы. Так как в настройках договора указана детализация «По договорам», система анализирует общий котел взаиморасчетов по контрагенту. Когда мы проводим большой заказ на 433 550 рублей, программа видит наш аванс 154 460 рублей и автоматически резервирует его под этот крупный заказ (в контуре плановых взаиморасчетов). При этом формируется плановая задолженность по договору на оставшуюся сумму. При попытке провести новый заказ на 18 880 рублей система обнаруживает, что общий плановый баланс по договору уже отрицательный (лимит превышен), и активирует блокировку. Разберем способы обхода и правильной настройки системы.
Если подобных ситуаций мало, а сезон высоких продаж еще не наступил, можно использовать самый простой, хоть и не самый изящный метод, предложенный пользователями на форуме.
ЗаказКлиента на сумму 433 550 рублей и отменяем его проведение (снимаем с проведения). Это мгновенно освобождает плановый баланс.РеализацияТоваровУслуг.Этот метод работает безотказно, так как на момент отгрузки мелкого заказа система видит чистый свободный аванс. Однако, при больших объемах продаж и десятках менеджеров этот процесс превратится в хаос. Поэтому рассмотрим более профессиональные подходы.
Для конфигураций, не поддающихся гибкой настройке типовыми средствами, программисты могут создать свой механизм проверок. Идея заключается в том, чтобы отключить типовой контроль и написать собственный.
Для этого мы добавляем в конфигурацию новый объект РегистрСведений, где будем хранить индивидуальные условия отгрузки для клиентов. Затем создаем объект ПодпискаНаСобытие (например, перед записью или обработкой проведения документа РеализацияТоваровУслуг).
Процедура ПроверкаУсловийОтгрузкиОбработкаПроведения(Источник, Отказ, РежимПроведения)
// Получаем данные нашего кастомного регистра
РазрешенаОтгрузка = ПроверитьСвоиУсловия(Источник.Контрагент, Источник.СуммаДокумента);
Если Не РазрешенаОтгрузка Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Отгрузка по индивидуальным правилам запрещена!";
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Этот путь требует привлечения разработчика, усложняет обновление системы и поддержку. В типовых современных решениях 1С прибегать к кодированию стоит только в крайнем случае, когда стандартные инструменты исчерпаны.
Рассмотрим штатные возможности программы, которые работают без программирования. Плановая задолженность формируется не только от суммы заказа, но и опирается на график оплаты, указанный внутри него.
В документе ЗаказКлиента на 433 550 рублей, который ожидает поступления товара, нам нужно корректно настроить правила оплаты:
При таком подходе на текущую дату плановая задолженность по договору не будет превышать лимиты, так как срок ее возникновения отодвинут. Система без проблем пропустит отгрузку мелкого заказа на 18 880 рублей.
Разберем еще один легальный механизм, который предусмотрели разработчики 1С для исключительных случаев. Если менеджер не имеет права менять графики оплаты или детализацию договоров, блокировку можно обойти с помощью прав доступа.
В программе предусмотрена специальная роль «Отклонение от условий оплаты». Если назначить эту роль руководителю отдела продаж или старшему менеджеру, он получит возможность игнорировать стоп-сигналы системы. Когда рядовой менеджер сталкивается с запретом, он обращается к руководителю. Руководитель, авторизовавшись под своей учетной записью, просто проводит этот документ РеализацияТоваровУслуг. Система зафиксирует отклонение, но позволит совершить операцию. Для администраторов с полными правами эта возможность открыта по умолчанию.
Проанализируем глобальную архитектуру взаиморасчетов на вашем предприятии. Если описанная ситуация повторяется регулярно, детализация расчетов в документе ДоговорКонтрагента в режиме «По договорам» вам категорически не подходит.
Вам необходимо перевести работу с данным клиентом (а возможно, и со всеми подобными) на порядок расчетов «По заказам» или комбинированный вариант «Аванс по заказам, долг по накладным».
Как это работает на практике:
ЗаказКлиента формирует свой изолированный контур оплат. Общего котла больше нет.Это самый методологически правильный способ ведения учета для оптовых компаний с частичными предоплатами и сложными поставками.
Если вы хотите сохранить детализацию расчетов по договорам, но при этом перестать блокировать отгрузки из-за плановых (нереальных) долгов, 1С предоставляет мощный инструмент маркетологов — Сегменты партнеров.
Разберем по шагам этот элегантный метод:
СегментПартнеров и назовите его, например, «Стоп-лист: Запрет отгрузки».При таком сценарии система будет игнорировать плановые задолженности по незакрытым крупным заказам. Клиент попадет в блокировку отгрузок только тогда, когда вы реально отгрузили ему товар (сформировался фактический долг), и он не оплатил его в оговоренный срок. Это решает проблему кардинально и автоматизирует контроль за должниками без ложных срабатываний.
Подводя итог, можно с уверенностью сказать, что платформа 1С предоставляет исчерпывающий набор инструментов для управления задолженностью. Вам не нужно писать сложный код или ежедневно перепроводить сотни документов. Достаточно проанализировать бизнес-процесс компании и выбрать правильную детализацию расчетов, настроить этапы оплат или доверить контроль динамическим сегментам.