Запрет отгрузки в 1С:Предприятие — критичный инструмент для контроля логистики, финансовой дисциплины и складских остатков. Без него компании рискуют отгружать товары с просроченной оплатой, неверными резервами или нарушая бизнес-процессы. Но как правильно настроить блокировку, чтобы не парализовать работу отдела продаж? Эта статья охватывает 5 практических способов — от стандартных механизмов конфигураций до программных решений для УТ 11.5, ERP 2.5 и КА 2.4.

Мы разберём не только техническую сторону (где нажать и что прописать), но и логику применения: когда блокировать отгрузку по долгу, а когда — по статусу заказа. Особое внимание уделено типичным ошибкам, из-за которых запреты либо не срабатывают, либо блокируют всё подряд. В конце — FAQ с ответами на острые вопросы, например, как обойти запрет для VIP-клиентов или синхронизировать блокировки между 1С и маркетплейсами.

Если вы администрируете самостоятельно, статья поможет избежать критических сбоев в работе склада. Если вы руководитель — поймёте, какие настройки стоит делегировать программистам, а какие можно сделать силами менеджеров. Все инструкции адаптированы под актуальные релизы платформы 1С:Предприятие 8.3.22+.

📊 Какую конфигурацию 1С вы используете для торговли?
Управление торговлей 11
ERP 2
Комплексная автоматизация 2
Самописная/другая

1. Запрет отгрузки по статусу заказа: стандартный функционал

Самый простой способ блокировки — использование статусов документов. Он не требует программирования и доступен даже пользователям без прав администратора. В конфигурациях УТ 11 и ERP 2 статусы настраиваются в справочнике Статусы заказов клиентов (НСИ → CRM и маркетинг → Статусы заказов).

Чтобы запретить отгрузку по статусу:

  1. Откройте справочник статусов и создайте новый (например, На проверке или Ожидает оплаты).
  2. В карточке статуса установите флажок Запретить отгрузкуERP 2.5 этот параметр называется Блокировать выполнение).
  3. Сохраните и назначьте статус проблемным заказам вручную или через бизнес-процессы.

⚠️ Важно: В КА 2.4 логика иная — здесь блокировка настраивается не в статусе, а в Настройках параметров учета (Администрирование → Настройки программы → Заказы клиентов). Ищите параметр Контролировать отгрузку по статусу.

Этот метод удобен для временной блокировки, но имеет ограничения:

  • 🔄 Не работает для ретроспективных заказов — статус нужно назначать вручную.
  • 📊 Не учитывает финансовые показатели (долг клиента, лимиты кредита).
  • 🔧 Не блокирует частичные отгрузки — если в заказе 10 позиций, а заблокирована 1, остальные можно отгрузить.
💡

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

2. Блокировка по задолженности клиента: настройка кредитного лимита

Если клиент превысил кредитный лимит или имеет просроченную задолженность, отгрузку можно заблокировать автоматически. В УТ 11.5 и ERP 2.5 это настраивается в карточке контрагента (Справочники → Контрагенты):

  1. Откройте карточку клиента и перейдите на вкладку Финансы (или Условия продаж в ERP).
  2. Укажите Кредитный лимит и Срок оплаты (например, 30 дней).
  3. Активируйте опцию Запрещать отгрузку при превышении лимита.
  4. Для строгого контроля установите флажок Учитывать просроченную задолженность.

Система будет автоматически блокировать создание Реализации товаров и услуг или Отгрузки без перехода права собственности, если:

  • 💰 Сумма текущей задолженности > кредитного лимита.
  • 📅 Есть просроченные платежи (даже если лимит не превышен).

⚠️ Внимание: В КА 2.4 кредитные лимиты настраиваются в Договорах контрагентов, а не в карточке клиента. Если лимит не указан в договоре, блокировка работать не будет!

Что делать, если блокировка срабатывает ошибочно?

Проверьте:

1. Дата оплаты в платежных документах — если она проставлена в будущем, система посчитает долг просроченным.

2. Валюту лимита — если лимит в рублях, а долг в долларах, блокировка может не сработать из-за курсовой разницы.

3. Права пользователя — менеджеры с ролью "Продажи" не видят финансовую аналитику, поэтому им может казаться, что блокировка срабатывает "просто так".

Для гибкого контроля используйте групповые настройки:

// Пример кода для массового обновления кредитных лимитов (УТ 11.5)

Выборка = Контрагенты.Выбрать();

Пока Выборка.Следующий() Цикл

Если Выборка.ЭтоГруппа = Ложь Тогда

Выборка.Объект.КредитныйЛимит = 100000; // Установить лимит 100 тыс. руб.

Выборка.Объект.ЗапрещатьОтгрузкуПриПревышении = Истина;

Выборка.Объект.Записать();

КонецЕсли;

КонецЦикла;

3. Запрет по остаткам на складе: резервирование и контроль

Блокировка отгрузки при недостаточных остатках настраивается в параметрах учета. В УТ 11 и ERP 2 это делается так:

  1. Перейдите в Администрирование → Настройки программы → Заказы клиентов.
  2. Найдите параметр Контролировать остатки при отгрузке и установите значение Строгий контроль.
  3. Для частичного контроля выберите Разрешать отгрузку в пределах остатков.

Система будет проверять остатки на дату отгрузки, учитывая:

  • 📦 Резервы по другим заказам.
  • 🚚 Транзитные запасы (если настроена интеграция с WMS).
  • 📅 Ожидаемые поступления (если включен параметр Учитывать планируемые остатки).

⚠️ Внимание: В КА 2.4 аналогичная настройка находится в Настройках параметров учета → Торговля → Контроль остатков. Если у вас мультискладская схема, убедитесь, что контроль включен для всех складов, а не только для основного.

Для сложных сценариев (например, блокировка отгрузки определенных категорий товаров) используйте дополнительные отборы:

ПараметрЗначениеЭффект
Контролировать остатки по видам номенклатурыДаБлокировка срабатывает только для выбранных категорий (например, "Дефицитные товары")
Игнорировать резервы других заказовНетУчитываются все резервы, даже по неоплаченным заказам
Разрешать отрицательные остаткиНетОтгрузка невозможна, если остаток < 0
Учитывать серийные номераДаБлокировка срабатывает, если нет конкретных серий (актуально для техники)

Убедитесь, что:

🔹 Включено ведение складского учета по складам|🔹 Настроены права доступа к остаткам для менеджеров|🔹 Синхронизированы остатки с внешними системами (если есть)|🔹 Проверены резервы по старым заказам (они могут блокировать новые отгрузки)-->

4. Программная блокировка: обработки и события

Если стандартных механизмов недостаточно, можно запрограммировать кастомные запреты через события или внешние обработки. Например, блокировка отгрузки:

  • 📅 По дате (если заказ старше 30 дней).
  • 🏷️ По категории клиента (например, для "Проблемных партнеров").
  • 📦 По весу/габаритам (если превышен лимит логистики).

Пример кода для УТ 11.5, который блокирует отгрузку заказов старше 30 дней:

Процедура ОбработкаПроверкиЗаполнения(Отказ, СтандартнаяОбработка)

Если Объект.Дата < ТекущаяДата() - 30 Тогда

Сообщить("Отгрузка заказов старше 30 дней запрещена!");

Отказ = Истина;

КонецЕсли;

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

Чтобы подключить этот код:

  1. Откройте документ Реализация товаров и услуг в режиме предприятия.
  2. Перейдите в Все действия → Изменить форму.
  3. Добавьте обработчик события ПередЗаписью и вставьте код.

⚠️ Внимание: Программные блокировки не работают в веб-клиенте и мобильном приложении, если код не адаптирован под эти платформы. Для универсального решения используйте серверные события (доступны с версии платформы 8.3.18+).

Для сложных сценариев (например, блокировка по данным из внешней системы) создайте HTTP-сервис:

// Пример вызова внешнего API для проверки блокировки (ERP 2.5)

Функция ПроверитьБлокировку(Клиент)

Запрос = Новый HTTPЗапрос("https://api.yourservice.ru/check_block");

Запрос.Заголовки.Добавить("Authorization", "Bearer ТОКЕН");

Запрос.Тело = Формат(Клиент.ИНН, "JSON");

Ответ = Новый HTTPСоединение().Получить(Запрос);

Возврат Ответ.ПолучитьТекст() = "true";

КонецФункции

5. Интеграция с маркетплейсами: синхронизация запретов

Если вы работаете с Ozon, Wildberries или Яндекс Маркетом, блокировки в должны синхронизироваться с статусами на площадках. Например:

  • 🚫 Заказ на Ozon в статусе Отменён → блокировать отгрузку в .
  • ⚠️ Заказ с пометкой Проблемы с оплатой → требует ручной проверки.

Для настройки интеграции:

  1. В модуле обмена данными (например, 1С:Интеграция с маркетплейсами) найдите обработку Правила обмена заказами.
  2. Добавьте правило: если статус заказа на площадке = Cancel, то в устанавливать статус Отменён (блокировка).
  3. Настройте автоматическое обновление статусов по расписанию (рекомендуется каждые 2 часа).

⚠️ Внимание: Маркетплейсы могут менять API и статусы заказов.

Периодически проверяйте актуальность правил обмена в личном кабинете площадки или документации партнера.

Пример кода для обработки статусов из Wildberries:

Процедура ОбработатьСтатусWB(Заказ, СтатусПлощадки)

Если СтатусПлощадки = "Cancel" Тогда

Заказ.Статус = Справочники.СтатусыЗаказов.НайтиПоНаименованию("Отменён (блокировка)");

Заказ.Записать();

ИначеЕсли СтатусПлощадки = "Awaiting Packaging" Тогда

Заказ.Статус = Справочники.СтатусыЗаказов.НайтиПоНаименованию("Готовится к отгрузке");

КонецЕсли;

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

💡

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

6. Обход блокировок: исключения и права доступа

Иногда блокировку нужно временно отключить — например, для VIP-клиентов или срочных заказов. Для этого:

  • 👤 Назначьте специальную роль (например, "Менеджер по работе с блокировками") с правом Игнорировать запреты отгрузки.
  • 🔑 Создайте параметр сессии, который отключает проверки (только для технических пользователей!).
  • 📝 Используйте комментарий к заказу с ключевым словом (например, "#Срочно"), по которому система будет пропускать блокировку.

Пример настройки роли в УТ 11.5:

  1. Перейдите в Администрирование → Настройки пользователей и прав → Роли.
  2. Скопируйте роль Менеджер по продажам и назовите её Менеджер с правом обхода блокировок.
  3. На вкладке Права найдите раздел Документы → Реализация товаров и услуг и установите флажок Игнорировать ограничения.

⚠️ Внимание: Обход блокировок должен логироваться! Добавьте в документ Реализация товаров и услуг реквизит ПричинаОбходаБлокировки (тип Строка) и настройте его обязательное заполнение при игнорировании запретов.

Для автоматического обхода по комментарию используйте код:

Процедура ПередЗаписью(Отказ)

Если НЕ ПустаяСтрока(Объект.Комментарий) И Найти(Объект.Комментарий, "#Срочно") > 0 Тогда

Объект.ИгнорироватьБлокировки = Истина;

КонецЕсли;

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

7. Типичные ошибки и как их избежать

Даже опытные администраторы сталкиваются с проблемами при настройке запретов. Вот самые распространённые ошибки:

ОшибкаПричинаРешение
Блокировка не срабатываетНе включен контроль остатков в настройках программыПроверьте Администрирование → Настройки программы → Заказы клиентов
Блокируются все заказыНеверно настроен кредитный лимит (указан 0 или отрицательное значение)Установите лимит > 0 или отключите контроль
Ошибка "Недостаточно прав"Пользователю не назначена роль с правом просмотра финансовой аналитикиДобавьте роль Финансист или Администратор
Блокировка срабатывает с задержкойНе настроено фоновое обновление остатков или долговЗапустите регламентное задание Обновление данных для контроля
Не работает программный запретКод подключен к неправильному событию (например, к ПриЗаписи вместо ПередЗаписью)Проверьте имя процедуры и событие в конфигураторе

⚠️ Внимание: Если после настройки блокировок начала "тормозить", проверьте:

  • 🔍 Индексы базы данных — запустите тест и исправление (Администрирование → Тестирование и исправление).
  • 📊 Объём выборок — если блокировка проверяет остатки по всем складам, ограничьте список актуальными.
  • ⏱️ Регламентные задания — отключите ненужные фоновые задачи, которые могут конфликтовать.

8. Как протестировать запреты отгрузки

Перед внедрением блокировок в боевой контур обязательно протестируйте их на копии базы. Алгоритм тестирования:

  1. Создайте тестовые заказы с разными статусами (оплаченный, неоплаченный, отменённый).
  2. Настройте кредитные лимиты для тестовых клиентов (например, 1000 руб.).
  3. Попробуйте отгрузить заказы с превышением лимита, недостатком остатков и т.д.
  4. Проверьте логи в Журнале регистрации (Администрирование → Поддержка и обслуживание → Журнал регистрации).

Пример тестового сценария для ERP 2.5:

  • 📌 Заказ 1: Статус = "Ожидает оплаты", долг клиента = 5000 руб., лимит = 3000 руб. → Ожидаемый результат: блокировка.
  • 📌 Заказ 2: Статус = "Готов к отгрузке", остаток на складе = 5 шт., в заказе = 10 шт. → Ожидаемый результат: блокировка.
  • 📌 Заказ 3: Статус = "Одобрен", комментарий = "#Срочно" → Ожидаемый результат: отгрузка разрешена.

⚠️ Внимание: Тестируйте блокировки в разных клиентах (толстый, тонкий, веб), так как некоторые события могут не срабатывать в браузере.

Для автоматизации тестов используйте скрипты на OneScript:

// Пример тестового скрипта для проверки блокировки по долгу

ПодключитьБиблиотеку("Тестирование");

Процедура ПроверитьБлокировкуПоДолгу()

Клиент = Справочники.Контрагенты.СоздатьЭлемент();

Клиент.Наименование = "Тестовый клиент (долг)";

Клиент.КредитныйЛимит = 1000;

Клиент.Записать();

Заказ = Документы.ЗаказКлиента.СоздатьДокумент();

Заказ.Контрагент = Клиент.Ссылка;

Заказ.СуммаДокумента = 1500; // Превышает лимит

Попытка

Заказ.Провести();

Тестирование.ОжидатьИстинно(Ложь, "Отгрузка не должна пройти!");

Исключение

Тестирование.ОжидатьИстинно(Истина, "Блокировка сработала корректно");

КонецПопытки;

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

💡

Тестирование блокировок должно включать не только положительные сценарии ("должно заблокироваться"), но и отрицательные ("не должно блокироваться при X условиях").

FAQ: Частые вопросы по запрету отгрузки в 1С

Можно ли настроить блокировку отгрузки только для определенных менеджеров?

Да, для этого:

  1. Создайте новую роль (например, "Менеджер с ограничениями").
  2. В настройках роли отключите право Игнорировать запреты отгрузки.
  3. Назначьте эту роль нужным пользователям.

Также можно использовать подсистему ограничения доступа (RLS), чтобы менеджеры видели только "своих" клиентов с определенными статусами.

Как заблокировать отгрузку, если клиент не прислал оригиналы документов?

Для этого:

  1. Добавьте в справочник Контрагенты реквизит ДокументыПолучены (тип Булево).
  2. Создайте обработку, которая проверяет этот реквизит перед отгрузкой:
Процедура ПередЗаписью(Отказ)

Если Объект.Контрагент.ДокументыПолучены = Ложь Тогда

Сообщить("Отгрузка запрещена! Ожидаются оригиналы документов.");

Отказ = Истина;

КонецЕсли;

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

Чтобы менеджеры могли отмечать получение документов, добавьте соответствующую команду в форму контрагента.

Почему блокировка по остаткам срабатывает, хотя товар есть на складе?

Вероятные причины:

  • 🔹 Товар зарезервирован под другой заказ (проверьте отчет Анализ доступности товаров).
  • 🔹 Включен контроль по серийным номерам, а нужной серии нет в остатках.
  • 🔹 Настройка Учитывать планируемые остатки отключена, а товар в пути.
  • 🔹 Ошибка в регистрах остатков — запустите перепроводирование документов за последний месяц.

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

Как синхронизировать блокировки между 1С и маркетплейсом, если статусы не совпадают?

Решение:

  1. Создайте таблицу соответствия статусов в 1С (справочник СоответствиеСтатусовМП).
  2. В обработке обмена добавьте логику преобразования:
Функция ПолучитьСтатус1С(СтатусМП)

Соответствие = Справочники.СоответствиеСтатусовМП.НайтиПоРеквизиту("СтатусМП", СтатусМП);

Если Соответствие = Неопределено Тогда

Возврат Справочники.СтатусыЗаказов.НайтиПоНаименованию("Ожидает обработки");

Иначе

Возврат Соответствие.Статус1С;

КонецЕсли;

КонецФункции

Для Wildberries и Ozon можно использовать готовые обработки от партнеров 1С (например, 1С-Битрикс: Интеграция с маркетплейсами).

Можно ли заблокировать отгрузку по времени (например, после 18:00)?

Да, для этого:

  1. Добавьте в документ Реализация товаров и услуг реквизит ВремяОтгрузки (тип ДатаВремя).
  2. Используйте событие ПередЗаписью для проверки:
Процедура ПередЗаписью(Отказ)

Если Час(ТекущаяДата()) >= 18 Тогда

Сообщить("Отгрузка после 18:00 запрещена!");

Отказ = Истина;

КонецЕсли;

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

Для гибкого управления создайте справочник ОграниченияПоВремени с полями Начало и Конец, и проверяйте текущее время относительно этих интервалов.