В типовых конфигурациях 1С:Управление торговлей (редакция 11.4) существует стандартный механизм контроля дебиторской задолженности, завязанный на справочник Договоры. Однако на практике часто возникают ситуации, когда учет ведется «по заказам» или «по накладным», а договоры заполнены некорректно или не используются вовсе. В таких условиях штатная галочка «Запрещать отгрузку при наличии просроченной задолженности» в договоре становится бесполезной. Разберем, как реализовать жесткий контроль отгрузки, используя механизм сегментации партнеров и систему компоновки данных (СКД).
Представим ситуацию: расчеты с клиентами ведутся в индивидуальных соглашениях, где указан порядок оплаты «по заказам» с кредитным лимитом на 10 дней. Нам необходимо запретить отгрузку всем клиентам, у которых есть хотя бы один неоплаченный заказ с датой оплаты более 10 дней назад. Поскольку переделывать структуру справочников (договоров) слишком долго, мы воспользуемся механизмом Сегментов клиентов. Это позволит нам автоматически включать должников в «черный список», для которого в системе будет установлен запрет продаж.
Для начала создадим новый сегмент партнеров. Перейдем в раздел CRM и маркетинг — Настройки и справочники — Сегменты клиентов. Создадим сегмент с наименованием «Запрет отгрузки (дебиторка)».
Важно: в поле «Способ формирования» необходимо выбрать Периодически обновлять. Это позволит системе по расписанию проверять наличие долгов и актуализировать список клиентов.
Чтобы сегмент понимал, кого в него включать, нам нужно настроить схему компоновки данных. Мы будем использовать данные регистра накопления РасчетыСКлиентамиПоСрокам. Это ключевой регистр в УТ 11, который хранит информацию о плановых датах погашения долга в разрезе объектов расчетов.
Рассмотрим пример запроса, который выбирает партнеров с просроченным долгом. В конструкторе схемы на вкладке «Запрос» мы можем прописать следующий алгоритм:
ВЫБРАТЬ
СУММА(РасчетыСКлиентамиПоСрокамОстатки.ДолгОстаток) - СУММА(РасчетыСКлиентамиПоСрокамОстатки.ПредоплатаОстаток) КАК ДолгОстаток,
РасчетыСКлиентамиПоСрокамОстатки.АналитикаУчетаПоПартнерам.Партнер КАК Партнер
ИЗ
РегистрНакопления.РасчетыСКлиентамиПоСрокам.Остатки(&НачалоДняТекДата, ДатаПлановогоПогашения < &НачалоДняТекДата) КАК РасчетыСКлиентамиПоСрокамОстатки
ГДЕ
РасчетыСКлиентамиПоСрокамОстатки.АналитикаУчетаПоПартнерам.Партнер.Клиент = ИСТИНА
СГРУППИРОВАТЬ ПО
РасчетыСКлиентамиПоСрокамОстатки.АналитикаУчетаПоПартнерам.Партнер
ИМЕЮЩИЕ
СУММА(РасчетыСКлиентамиПоСрокамОстатки.ДолгОстаток) - СУММА(РасчетыСКлиентамиПоСрокамОстатки.ПредоплатаОстаток) > 0
Проанализируем этот запрос подробнее. Мы обращаемся к виртуальной таблице Остатки. В параметрах таблицы мы устанавливаем условие: брать только те записи, где ДатаПлановогоПогашения меньше текущей даты. Это и есть определение «просрочки». Дополнительно мы вычитаем сумму предоплаты из общей суммы долга, чтобы избежать ложных срабатываний, если у клиента есть авансы по другим заказам.
Если вы не хотите писать запрос вручную, в УТ 11.4 предусмотрена типовая схема компоновки для сегментов. При создании сегмента выберите «Редактировать схему компоновки», далее Выбрать шаблон — По расчетам. В настройках отбора вы сможете указать параметры:
Этот способ проще в настройке и учитывает валютные нюансы системы.
После того как сегмент настроен и заполнен, нужно «заставить» систему блокировать продажи. Для этого:
НСИ и администрирование — Настройка НСИ и разделов — Продажи.Типовые соглашения с клиентами или Индивидуальные соглашения с клиентами.Запретить отгрузку. Если этот функционал не выведен, проверьте настройки Лимита задолженности в разделе CRM.
При использовании сегментов для оперативной блокировки отгрузок следует учитывать технические особенности платформы 1С, иначе вы рискуете либо парализовать работу отдела продаж, либо пропустить отгрузку должнику.
1. Актуальность данных и регламентные задания. Сегменты обновляются не мгновенно. Если клиент оплатил долг минуту назад, он все еще будет числиться в сегменте «Запрещенных», пока не отработает регламентное задание Обновление сегментов партнеров. Рекомендуем настроить расписание этого задания на интервал каждые 10-15 минут.
2. Офлайн-расчеты. В современных версиях УТ 11 расчеты (распределение оплат по накладным) часто производятся в фоновом режиме. Если у вас включена опция «Выполнять расчеты при записи документов» — это хорошо. Если же расчеты выполняются по расписанию (фоновое задание Выполнение отложенных расчетов с клиентами), то данные в регистре РасчетыСКлиентамиПоСрокам обновятся только после его завершения. Убедитесь, что это задание выполняется чаще, чем обновление сегмента.
3. Проблема копеечных долгов. Из-за курсовых разниц или округлений у клиента может возникнуть мизерная просрочка (например, 1 копейка). Запрос в СКД, приведенный выше, заблокирует такого клиента. Чтобы избежать конфликтов, добавьте в условие ИМЕЮЩИЕ порог суммы, например:
СУММА(...) > 100
4. Графики оплаты. Помните, что регистр просрочки работает только в том случае, если в документах (Заказ или Реализация) заполнен График оплаты. Если дата платежа не указана, система не сможет определить, когда наступает просрочка, и клиент никогда не попадет в сегмент блокировки.
Если блокировка через сегменты кажется вам слишком жесткой, рассмотрим вариант с использованием статусов. Мы можем настроить систему так, что при наличии просрочки заказ клиента будет автоматически записываться в статусе На согласовании. Это даст возможность кредитному менеджеру или руководителю отдела продаж вручную разрешить отгрузку (перевести в статус К отгрузке), если клиент предоставил гарантийное письмо или оплата уже «в пути». Для этого потребуется небольшое расширение конфигурации, которое будет проверять долг в момент проведения заказа.
Выяснив все причины и проанализировав доступные инструменты, можно сделать вывод: использование динамических сегментов на основе регистра РасчетыСКлиентамиПоСрокам является самым быстрым и рабочим способом внедрить контроль дебиторской задолженности в 1С:УТ 11.4 без масштабного переучета договоров.