Запрет отгрузки в 1С:Предприятие — критичный инструмент для контроля логистики, финансовой дисциплины и складских остатков. Без него компании рискуют отгружать товары с просроченной оплатой, неверными резервами или нарушая бизнес-процессы. Но как правильно настроить блокировку, чтобы не парализовать работу отдела продаж? Эта статья охватывает 5 практических способов — от стандартных механизмов конфигураций до программных решений для УТ 11.5, ERP 2.5 и КА 2.4.
Мы разберём не только техническую сторону (где нажать и что прописать), но и логику применения: когда блокировать отгрузку по долгу, а когда — по статусу заказа. Особое внимание уделено типичным ошибкам, из-за которых запреты либо не срабатывают, либо блокируют всё подряд. В конце — FAQ с ответами на острые вопросы, например, как обойти запрет для VIP-клиентов или синхронизировать блокировки между 1С и маркетплейсами.
Если вы администрируете 1С самостоятельно, статья поможет избежать критических сбоев в работе склада. Если вы руководитель — поймёте, какие настройки стоит делегировать программистам, а какие можно сделать силами менеджеров. Все инструкции адаптированы под актуальные релизы платформы 1С:Предприятие 8.3.22+.
1. Запрет отгрузки по статусу заказа: стандартный функционал
Самый простой способ блокировки — использование статусов документов. Он не требует программирования и доступен даже пользователям без прав администратора. В конфигурациях УТ 11 и ERP 2 статусы настраиваются в справочнике Статусы заказов клиентов (НСИ → CRM и маркетинг → Статусы заказов).
Чтобы запретить отгрузку по статусу:
- Откройте справочник статусов и создайте новый (например,
На проверкеилиОжидает оплаты). - В карточке статуса установите флажок
Запретить отгрузку(в ERP 2.5 этот параметр называетсяБлокировать выполнение). - Сохраните и назначьте статус проблемным заказам вручную или через бизнес-процессы.
⚠️ Важно: В КА 2.4 логика иная — здесь блокировка настраивается не в статусе, а в Настройках параметров учета (Администрирование → Настройки программы → Заказы клиентов). Ищите параметр Контролировать отгрузку по статусу.
Этот метод удобен для временной блокировки, но имеет ограничения:
- 🔄 Не работает для ретроспективных заказов — статус нужно назначать вручную.
- 📊 Не учитывает финансовые показатели (долг клиента, лимиты кредита).
- 🔧 Не блокирует частичные отгрузки — если в заказе 10 позиций, а заблокирована 1, остальные можно отгрузить.
Создайте отдельную группу статусов для блокировки (например, "Блокирующие") и назначьте ей яркий цвет в настройках справочника. Это поможет менеджерам быстро идентифицировать проблемные заказы.
2. Блокировка по задолженности клиента: настройка кредитного лимита
Если клиент превысил кредитный лимит или имеет просроченную задолженность, отгрузку можно заблокировать автоматически. В УТ 11.5 и ERP 2.5 это настраивается в карточке контрагента (Справочники → Контрагенты):
- Откройте карточку клиента и перейдите на вкладку
Финансы(илиУсловия продажв ERP). - Укажите
Кредитный лимитиСрок оплаты(например, 30 дней). - Активируйте опцию
Запрещать отгрузку при превышении лимита. - Для строгого контроля установите флажок
Учитывать просроченную задолженность.
Система будет автоматически блокировать создание Реализации товаров и услуг или Отгрузки без перехода права собственности, если:
- 💰 Сумма текущей задолженности > кредитного лимита.
- 📅 Есть просроченные платежи (даже если лимит не превышен).
⚠️ Внимание: В КА 2.4 кредитные лимиты настраиваются в
Проверьте: 1. Дата оплаты в платежных документах — если она проставлена в будущем, система посчитает долг просроченным. 2. Валюту лимита — если лимит в рублях, а долг в долларах, блокировка может не сработать из-за курсовой разницы. 3. Права пользователя — менеджеры с ролью "Продажи" не видят финансовую аналитику, поэтому им может казаться, что блокировка срабатывает "просто так".Договорах контрагентов, а не в карточке клиента. Если лимит не указан в договоре, блокировка работать не будет!
Что делать, если блокировка срабатывает ошибочно?
Для гибкого контроля используйте групповые настройки:
// Пример кода для массового обновления кредитных лимитов (УТ 11.5)
Выборка = Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа = Ложь Тогда
Выборка.Объект.КредитныйЛимит = 100000; // Установить лимит 100 тыс. руб.
Выборка.Объект.ЗапрещатьОтгрузкуПриПревышении = Истина;
Выборка.Объект.Записать();
КонецЕсли;
КонецЦикла;
3. Запрет по остаткам на складе: резервирование и контроль
Блокировка отгрузки при недостаточных остатках настраивается в параметрах учета. В УТ 11 и ERP 2 это делается так:
- Перейдите в
Администрирование → Настройки программы → Заказы клиентов. - Найдите параметр
Контролировать остатки при отгрузкеи установите значениеСтрогий контроль. - Для частичного контроля выберите
Разрешать отгрузку в пределах остатков.
Система будет проверять остатки на дату отгрузки, учитывая:
- 📦 Резервы по другим заказам.
- 🚚 Транзитные запасы (если настроена интеграция с WMS).
- 📅 Ожидаемые поступления (если включен параметр
Учитывать планируемые остатки).
⚠️ Внимание: В КА 2.4 аналогичная настройка находится в Настройках параметров учета → Торговля → Контроль остатков. Если у вас мультискладская схема, убедитесь, что контроль включен для всех складов, а не только для основного.
Для сложных сценариев (например, блокировка отгрузки определенных категорий товаров) используйте дополнительные отборы:
| Параметр | Значение | Эффект |
|---|---|---|
Контролировать остатки по видам номенклатуры | Да | Блокировка срабатывает только для выбранных категорий (например, "Дефицитные товары") |
Игнорировать резервы других заказов | Нет | Учитываются все резервы, даже по неоплаченным заказам |
Разрешать отрицательные остатки | Нет | Отгрузка невозможна, если остаток < 0 |
Учитывать серийные номера | Да | Блокировка срабатывает, если нет конкретных серий (актуально для техники) |
Убедитесь, что:
🔹 Включено ведение складского учета по складам|🔹 Настроены права доступа к остаткам для менеджеров|🔹 Синхронизированы остатки с внешними системами (если есть)|🔹 Проверены резервы по старым заказам (они могут блокировать новые отгрузки)-->
4. Программная блокировка: обработки и события
Если стандартных механизмов недостаточно, можно запрограммировать кастомные запреты через события или внешние обработки. Например, блокировка отгрузки:
- 📅 По дате (если заказ старше 30 дней).
- 🏷️ По категории клиента (например, для "Проблемных партнеров").
- 📦 По весу/габаритам (если превышен лимит логистики).
Пример кода для УТ 11.5, который блокирует отгрузку заказов старше 30 дней:
Процедура ОбработкаПроверкиЗаполнения(Отказ, СтандартнаяОбработка)
Если Объект.Дата < ТекущаяДата() - 30 Тогда
Сообщить("Отгрузка заказов старше 30 дней запрещена!");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Чтобы подключить этот код:
- Откройте документ
Реализация товаров и услугв режиме предприятия. - Перейдите в
Все действия → Изменить форму. - Добавьте обработчик события
ПередЗаписьюи вставьте код.
⚠️ Внимание: Программные блокировки не работают в веб-клиенте и мобильном приложении, если код не адаптирован под эти платформы. Для универсального решения используйте серверные события (доступны с версии платформы 8.3.18+).
Для сложных сценариев (например, блокировка по данным из внешней системы) создайте HTTP-сервис:
// Пример вызова внешнего API для проверки блокировки (ERP 2.5)
Функция ПроверитьБлокировку(Клиент)
Запрос = Новый HTTPЗапрос("https://api.yourservice.ru/check_block");
Запрос.Заголовки.Добавить("Authorization", "Bearer ТОКЕН");
Запрос.Тело = Формат(Клиент.ИНН, "JSON");
Ответ = Новый HTTPСоединение().Получить(Запрос);
Возврат Ответ.ПолучитьТекст() = "true";
КонецФункции
5. Интеграция с маркетплейсами: синхронизация запретов
Если вы работаете с Ozon, Wildberries или Яндекс Маркетом, блокировки в 1С должны синхронизироваться с статусами на площадках. Например:
- 🚫 Заказ на Ozon в статусе
Отменён→ блокировать отгрузку в 1С. - ⚠️ Заказ с пометкой
Проблемы с оплатой→ требует ручной проверки.
Для настройки интеграции:
- В модуле обмена данными (например, 1С:Интеграция с маркетплейсами) найдите обработку
Правила обмена заказами. - Добавьте правило: если статус заказа на площадке =
Cancel, то в 1С устанавливать статусОтменён (блокировка). - Настройте автоматическое обновление статусов по расписанию (рекомендуется каждые 2 часа).
⚠️ Внимание: Маркетплейсы могут менять API и статусы заказов.
Периодически проверяйте актуальность правил обмена в личном кабинете площадки или документации партнера.
Пример кода для обработки статусов из Wildberries:
Процедура ОбработатьСтатусWB(Заказ, СтатусПлощадки)
Если СтатусПлощадки = "Cancel" Тогда
Заказ.Статус = Справочники.СтатусыЗаказов.НайтиПоНаименованию("Отменён (блокировка)");
Заказ.Записать();
ИначеЕсли СтатусПлощадки = "Awaiting Packaging" Тогда
Заказ.Статус = Справочники.СтатусыЗаказов.НайтиПоНаименованию("Готовится к отгрузке");
КонецЕсли;
КонецПроцедуры
Синхронизация блокировок с маркетплейсами должна быть двусторонней: изменения в 1С должны передаваться на площадку, и наоборот. Иначе возможны расхождения в статусах.
6. Обход блокировок: исключения и права доступа
Иногда блокировку нужно временно отключить — например, для VIP-клиентов или срочных заказов. Для этого:
- 👤 Назначьте специальную роль (например, "Менеджер по работе с блокировками") с правом
Игнорировать запреты отгрузки. - 🔑 Создайте параметр сессии, который отключает проверки (только для технических пользователей!).
- 📝 Используйте комментарий к заказу с ключевым словом (например, "#Срочно"), по которому система будет пропускать блокировку.
Пример настройки роли в УТ 11.5:
- Перейдите в
Администрирование → Настройки пользователей и прав → Роли. - Скопируйте роль
Менеджер по продажами назовите еёМенеджер с правом обхода блокировок. - На вкладке
Праванайдите разделДокументы → Реализация товаров и услуги установите флажокИгнорировать ограничения.
⚠️ Внимание: Обход блокировок должен логироваться! Добавьте в документ Реализация товаров и услуг реквизит ПричинаОбходаБлокировки (тип Строка) и настройте его обязательное заполнение при игнорировании запретов.
Для автоматического обхода по комментарию используйте код:
Процедура ПередЗаписью(Отказ)
Если НЕ ПустаяСтрока(Объект.Комментарий) И Найти(Объект.Комментарий, "#Срочно") > 0 Тогда
Объект.ИгнорироватьБлокировки = Истина;
КонецЕсли;
КонецПроцедуры
7. Типичные ошибки и как их избежать
Даже опытные администраторы 1С сталкиваются с проблемами при настройке запретов. Вот самые распространённые ошибки:
| Ошибка | Причина | Решение |
|---|---|---|
| Блокировка не срабатывает | Не включен контроль остатков в настройках программы | Проверьте Администрирование → Настройки программы → Заказы клиентов |
| Блокируются все заказы | Неверно настроен кредитный лимит (указан 0 или отрицательное значение) | Установите лимит > 0 или отключите контроль |
| Ошибка "Недостаточно прав" | Пользователю не назначена роль с правом просмотра финансовой аналитики | Добавьте роль Финансист или Администратор |
| Блокировка срабатывает с задержкой | Не настроено фоновое обновление остатков или долгов | Запустите регламентное задание Обновление данных для контроля |
| Не работает программный запрет | Код подключен к неправильному событию (например, к ПриЗаписи вместо ПередЗаписью) | Проверьте имя процедуры и событие в конфигураторе |
⚠️ Внимание: Если после настройки блокировок 1С начала "тормозить", проверьте:
- 🔍 Индексы базы данных — запустите тест и исправление (
Администрирование → Тестирование и исправление). - 📊 Объём выборок — если блокировка проверяет остатки по всем складам, ограничьте список актуальными.
- ⏱️ Регламентные задания — отключите ненужные фоновые задачи, которые могут конфликтовать.
8. Как протестировать запреты отгрузки
Перед внедрением блокировок в боевой контур обязательно протестируйте их на копии базы. Алгоритм тестирования:
- Создайте тестовые заказы с разными статусами (оплаченный, неоплаченный, отменённый).
- Настройте кредитные лимиты для тестовых клиентов (например, 1000 руб.).
- Попробуйте отгрузить заказы с превышением лимита, недостатком остатков и т.д.
- Проверьте логи в
Журнале регистрации(Администрирование → Поддержка и обслуживание → Журнал регистрации).
Пример тестового сценария для ERP 2.5:
- 📌 Заказ 1: Статус = "Ожидает оплаты", долг клиента = 5000 руб., лимит = 3000 руб. → Ожидаемый результат: блокировка.
- 📌 Заказ 2: Статус = "Готов к отгрузке", остаток на складе = 5 шт., в заказе = 10 шт. → Ожидаемый результат: блокировка.
- 📌 Заказ 3: Статус = "Одобрен", комментарий = "#Срочно" → Ожидаемый результат: отгрузка разрешена.
⚠️ Внимание: Тестируйте блокировки в разных клиентах (толстый, тонкий, веб), так как некоторые события могут не срабатывать в браузере.
Для автоматизации тестов используйте скрипты на OneScript:
// Пример тестового скрипта для проверки блокировки по долгу
ПодключитьБиблиотеку("Тестирование");
Процедура ПроверитьБлокировкуПоДолгу()
Клиент = Справочники.Контрагенты.СоздатьЭлемент();
Клиент.Наименование = "Тестовый клиент (долг)";
Клиент.КредитныйЛимит = 1000;
Клиент.Записать();
Заказ = Документы.ЗаказКлиента.СоздатьДокумент();
Заказ.Контрагент = Клиент.Ссылка;
Заказ.СуммаДокумента = 1500; // Превышает лимит
Попытка
Заказ.Провести();
Тестирование.ОжидатьИстинно(Ложь, "Отгрузка не должна пройти!");
Исключение
Тестирование.ОжидатьИстинно(Истина, "Блокировка сработала корректно");
КонецПопытки;
КонецПроцедуры
Тестирование блокировок должно включать не только положительные сценарии ("должно заблокироваться"), но и отрицательные ("не должно блокироваться при X условиях").
FAQ: Частые вопросы по запрету отгрузки в 1С
Можно ли настроить блокировку отгрузки только для определенных менеджеров?
Да, для этого:
- Создайте новую роль (например, "Менеджер с ограничениями").
- В настройках роли отключите право
Игнорировать запреты отгрузки. - Назначьте эту роль нужным пользователям.
Также можно использовать подсистему ограничения доступа (RLS), чтобы менеджеры видели только "своих" клиентов с определенными статусами.
Как заблокировать отгрузку, если клиент не прислал оригиналы документов?
Для этого:
- Добавьте в справочник
КонтрагентыреквизитДокументыПолучены(типБулево). - Создайте обработку, которая проверяет этот реквизит перед отгрузкой:
Процедура ПередЗаписью(Отказ)
Если Объект.Контрагент.ДокументыПолучены = Ложь Тогда
Сообщить("Отгрузка запрещена! Ожидаются оригиналы документов.");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Чтобы менеджеры могли отмечать получение документов, добавьте соответствующую команду в форму контрагента.
Почему блокировка по остаткам срабатывает, хотя товар есть на складе?
Вероятные причины:
- 🔹 Товар зарезервирован под другой заказ (проверьте отчет
Анализ доступности товаров). - 🔹 Включен контроль по серийным номерам, а нужной серии нет в остатках.
- 🔹 Настройка
Учитывать планируемые остаткиотключена, а товар в пути. - 🔹 Ошибка в регистрах остатков — запустите перепроводирование документов за последний месяц.
Для диагностики используйте отчет Ведомость по товарам на складах с отбором по нужной номенклатуре.
Как синхронизировать блокировки между 1С и маркетплейсом, если статусы не совпадают?
Решение:
- Создайте таблицу соответствия статусов в 1С (справочник
СоответствиеСтатусовМП). - В обработке обмена добавьте логику преобразования:
Функция ПолучитьСтатус1С(СтатусМП)
Соответствие = Справочники.СоответствиеСтатусовМП.НайтиПоРеквизиту("СтатусМП", СтатусМП);
Если Соответствие = Неопределено Тогда
Возврат Справочники.СтатусыЗаказов.НайтиПоНаименованию("Ожидает обработки");
Иначе
Возврат Соответствие.Статус1С;
КонецЕсли;
КонецФункции
Для Wildberries и Ozon можно использовать готовые обработки от партнеров 1С (например, 1С-Битрикс: Интеграция с маркетплейсами).
Можно ли заблокировать отгрузку по времени (например, после 18:00)?
Да, для этого:
- Добавьте в документ
Реализация товаров и услугреквизитВремяОтгрузки(типДатаВремя). - Используйте событие
ПередЗаписьюдля проверки:
Процедура ПередЗаписью(Отказ)
Если Час(ТекущаяДата()) >= 18 Тогда
Сообщить("Отгрузка после 18:00 запрещена!");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Для гибкого управления создайте справочник ОграниченияПоВремени с полями Начало и Конец, и проверяйте текущее время относительно этих интервалов.