Добрый день.
В типовом функционале ERP есть возможность запретить отгрузку по условиям договора/соглашения. Это ограничение срабатывает только при проведении документа "Реализация товаров и услуг".
Требуется реализовать этот же запрет но только в момент выбора клиента в документе "Заказ клиента" и так же запретить проведение такого заказа.
Буду очень благодарен за наводку в каких процедурах и каким именно образом это реализовано и как изменить типовой функционал.
---
Сам нашел.
Может кому пригодится. В общем модуле "Продажи сервер" есть процедура:

```1c
    Процедура ПроверитьЗапретОтгрузки(Партнер, Отказ) Экспорт

    ИспользоватьЗапретОтгрузки = ПолучитьФункциональнуюОпцию("ИспользоватьЗапретОтгрузки");

    ТекстОшибки = НСтр("ru='Клиенту "%Партнер%" запрещена отгрузка.';uk='Клієнту "%Партнер%" заборонене відвантаження.'");
    ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Партнер%", Партнер);

    Если Партнер.Клиент И ИспользоватьЗапретОтгрузки
    И НЕ ПраваПользователяПовтИсп.ОтгрузкаПартнерамЗапрещенныхСегментов() Тогда

    Если СегментыСервер.ПартнерВходитВСегментыЗапретаОтгрузки(Партнер) Тогда

    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    ТекстОшибки,
    ,
    "Объект.Партнер",
    ,
    Отказ);

    КонецЕсли;

    КонецЕсли;

    КонецПроцедуры
```
---
Разобрался. Запрет отгрузки по договору сделали гораздо хуже чем по сегменту(
Если по сегменту это одна процедура - ты ей клиента и она сама всё проверяет, то по договору через одно место - только в модуле проведения "Реализации товаров и услуг" и в куче с другими условиями, к огромным кол-вом запросов и т.д. и т.п.

Кому интересно: общий модуль "Проведение сервер"
Процедура ВыполнитьКонтрольРезультатовПроведения(Объект, Отказ) Экспорт
---
Посмотрите в конфигураторе ссылки на документ "Реализация товаров и услуг". В ссылках должна быть подписка на событие "ПодпискаНаСобытие.ПроверитьВозможностьПроведенияПередЗаписьюДокумента.Источник". К этой подписке нужно прикрутить "Заказ клиента".
---
В управлении торговлей следующие варианты, может что пригодится для в ERP

Запрет отгрузки при превышении суммы дебиторской задолженности и наличии просроченной задолженности на примере 1С:УТ 11.4

Запрет отгрузки при превышении суммы дебиторской задолженности и наличии
просроченной задолженности на примере 1С: Управление торговлей 11.4

Любое предприятие в структуре текущих активов имеет дебиторскую задолженность, размер которой зачастую внушителен. Конкуренция и стремление к увеличению объемов реализации продукции вынуждают применять товарный (коммерческий) кредит, то есть продавать свою продукцию с отсрочкой платежа. Сама по себе дебиторская задолженность имеет не только отрицательные стороны, но и положительные. Ее наличие говорит о привлекательности и конкурентоспособности продукции, позволяет привлечь покупателей, в том числе испытывающих финансовые затруднения. Однако дефицит денежных средств, отвлечение финансовых ресурсов предприятия и риски возникновения безнадежной дебиторской задолженности значительно перевешивают эту чашу весов.

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

На примере 1С: Управление торговлей 11.4 рассмотрим реализацию вариантов взаиморасчетов где существует возможность контроля лимита задолженности клиентов:

1.Запрет отгрузки при превышении суммы допустимого кредита.

2. Запрет отгрузки при наличии просроченной задолженности.
Запрет отгрузки при превышении суммы допустимого кредита.

Пример:

В рамках оформленного с клиентом договора клиенту предоставляется сумма кредита в размере 10 000 рублей.

Сумма кредита задана в договоре при установленной настройке Запрещать отгрузку – при сумме задолженности более. При такой настройке срабатывает контроль на наличие условной (плановой) и безусловной (фактической) задолженности в момент проведения заказов/накладных.

Контроль суммы лимита кредита выполняется в рамках договором с клиентами. Таким образом, при оформлении кредитных соглашений рекомендуется использовать договоры для контроля превышения суммы допустимого кредита.

В соглашении с клиентом заданы:

■ Предоплатый этап, в соответствии с которым клиент будет оплачивать часть суммы аванса;

■Кредитные этапы - на остальную сумму клиенту предоставляется кредит в два этапа.

В заказе клиента автоматически заполняется информация об этапах оплаты, которые заданы в соглашении. Общая сумма заказа составляет 54 000 рублей. Остаток допустимого кредита по договору составляет 10 000 рублей.

Остаток допустимого кредита - это сумма кредита, при превышении которой запрещена отгрузка клиенту.При расчетах по заказам выполняется контроль на наличие предоплаты до отгрузки товаров (при наличии предоплатного этапа оплаты). До тех пор пока не будет внесена предоплата будет запрещено проведение заказа клиента в статусе К выполнении и для строк которого установлен вариант действия Отгрузить.

Оформляем поступление суммы аванса от клиента в размере 11 000 рублей – документ Поступление безналичных ДС.

После того как поступит сумма аванса от клиента остаток допустимого кредита составит (как видно из отчета Задолженность клиентов):

Оформляем поступление суммы аванса от клиента в размере 11 000 рублей – документ Поступление безналичных ДС.

После того как поступит сумма аванса от клиента остаток допустимого кредита составит (как видно из отчета Задолженность клиентов):

21 000 рублей = допустимая сумма кредита по договору 10 000 + сумма аванса от клиента 11 000.

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

Превышение суммы кредита составляет 33 000 рублей = допустимая сумма кредита по договору 10 000 + сумма аванса от клиента 11 000 – сумма условной задолженности по заказу клиента 54 000.

В рамках этого же договора оформлен документ Заказ клиента на общую сумму 5 040 рублей.

Остаток допустимого кредита составляет 15 960 рублей = допустимая сумма кредита по договору 10 000 + сумма аванса от клиента 11 000 – сумма условной задолженности по заказу клиента 5 040.

С использованием отчета Задолженность клиентов, доступного по гиперссылке Остаток допустимого кредита, можно просмотреть список тех документов, по которым нарушения условия договора в части контроля задолженности.

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

По заказу оформлена отгрузка товаров – документ Реализация товаров и услуг на сумму 5 040 руб. Отгрузка по документу реализации товаров и услуг разрешена, поскольку сумма отгрузки 5 040 рублей не превышает остаток допустимой суммы кредита 15 960 рублей.

В рамках этого же договора оформляем отгрузку без заказа клиента на сумму 36 000 рублей – документ Реализация товаров и услуг.

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

По данному договору отгрузка запрещена, поскольку проведение документа реализации товаров и услуг невозможно по причине:превышена допустимая сумма кредита на 20 040 рублей = допустимая сумма кредита по договору 10 000 + сумма аванса от клиента 11 000 – отгрузка на сумму 5 040 – отгрузка на сумму 36 000 по документу реализации,
Запрет отгрузки при наличии просроченной задолженности.

Пример.

В рамках оформленного с клиентом договора клиенту запрещена отгрузка при наличии просроченной задолженности. Для такой возможности в договоре устанавливается настройка Запрещать отгрузку – при наличии просроченной задолженности. Эта настройка срабатывает только на наличии безусловной (фактической задолженности), образованной накладными. На условную (плановую) задолженность эта настройка не распространяется. Расчеты ведутся по заказам.

В соглашении с клиентом заданы кредитные этапы оплаты.

В заказе клиента автоматически заполняется информация о кредитных этапах оплаты на всю сумму заказа. Этапы оплаты заполняются в соответствии вариантами оплаты по соглашению. Общая сумма заказа составляет 24 000 рублей.

В правилах оплаты накладной заполняется максимальная дата платежа по кредитному этапу оплаты.

Документом реализации товаров и услуг на дату платежа на 15.04.21 г. возникает безусловная (фактическая задолженность).На форме документа реализации появляется надпись Отгрузка запрещена, поскольку на текущую дату на 15.04.21 г. фактическая задолженность клиента, образованная документом реализации, становится просроченной. Дальнейшие отгрузки в рамках договора, по которому имеется фактическая просроченная задолженность, будут запрещены.

В рамках этого же договора оформляем заказ клиента на сумму 10 000 рублей.На форме заказ клиента появляется надпись Отгрузка запрещена, поскольку в рамках договора уже имеется просроченная задолженность в размере 24 000 рублей (как видно из отчета Задолженность клиентов).

По данным заказа клиента оформляется отгрузка товаров – документ Реализация товаров и услуг. При проведении документа реализации товаров и услуг срабатывает контроль на наличие просроченной фактической задолженности. Проведение документа реализации невозможно, поскольку в рамках договора уже имеется фактическая просроченная задолженность в размере 24 000 рублей.

С использованием отчета Задолженность клиентов, доступного по гиперссылке Отгрузка запрещена, можно проанализировать, список тех документов, по которым возникает задолженность.

Как видно из отчета Задолженность клиентов по срокам по договору имеется

По данным заказа клиента оформляется отгрузка товаров – документ Реализация товаров и услуг. При проведении документа реализации товаров и услуг срабатывает контроль на наличие просроченной фактической задолженности. Проведение документа реализации невозможно, поскольку в рамках договора уже имеется фактическая просроченная задолженность в размере 24 000 рублей.

С использованием отчета Задолженность клиентов, доступного по гиперссылке Отгрузка запрещена, можно проанализировать, список тех документов, по которым возникает задолженность.

Как видно из отчета Задолженность клиентов по срокам по договору имеется просроченная задолженность в размере 24 000 руб., образованная документом реализации товаров и услуг от 09.04.21г.
---
Сам нашел.
Может кому пригодится. В общем модуле "Продажи сервер" есть процедура:

```1c
    Процедура ПроверитьЗапретОтгрузки(Партнер, Отказ) Экспорт

    ИспользоватьЗапретОтгрузки = ПолучитьФункциональнуюОпцию("ИспользоватьЗапретОтгрузки");

    ТекстОшибки = НСтр("ru='Клиенту "%Партнер%" запрещена отгрузка.';uk='Клієнту "%Партнер%" заборонене відвантаження.'");
    ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Партнер%", Партнер);

    Если Партнер.Клиент И ИспользоватьЗапретОтгрузки
    И НЕ ПраваПользователяПовтИсп.ОтгрузкаПартнерамЗапрещенныхСегментов() Тогда

    Если СегментыСервер.ПартнерВходитВСегментыЗапретаОтгрузки(Партнер) Тогда

    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    ТекстОшибки,
    ,
    "Объект.Партнер",
    ,
    Отказ);

    КонецЕсли;

    КонецЕсли;

    КонецПроцедуры
```
---
Но это только вхождение в сегмент клиентов с запретом отгрузки. Есть ещё запрет по условиям договора - его нужно искать дальше.
---
Разобрался. Запрет отгрузки по договору сделали гораздо хуже чем по сегменту(
Если по сегменту это одна процедура - ты ей клиента и она сама всё проверяет, то по договору через одно место - только в модуле проведения "Реализации товаров и услуг" и в куче с другими условиями, к огромным кол-вом запросов и т.д. и т.п.

Кому интересно: общий модуль "Проведение сервер"
Процедура ВыполнитьКонтрольРезультатовПроведения(Объект, Отказ) Экспорт