Как исправить ошибку «Превышен свободный остаток» в 1С:Управление торговлей 11

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Ситуация, когда при попытке провести документ Реализация товаров и услуг система выдает ошибку «Превышен свободный остаток», является одной из самых распространенных в конфигурации «Управление торговлей» версии 11 (включая 11.1). Особенно часто это случается в схемах, где задействовано несколько организаций (Интеркампани), ордерный склад или сложные статусы обеспечения заказов. Рассмотрим подробно, почему возникает эта ошибка и как её устранить, проанализировав внутренние механизмы работы системы.

Разбираемся со статусами в Заказе клиента

В УТ 11 свободный остаток напрямую зависит от того, что указано в колонке «Действие» табличной части документа Заказ клиента. Проанализируем логику системы: если в заказе по строке товара стоит статус «К обеспечению» или «Обеспечить позднее», 1С считает, что этого товара для данного заказа физически нет или он еще не зарезервирован для отгрузки. Фраза «Сорвано обеспечение» в отчетах или форме заказа означает, что планируемая дата поставки или отгрузки уже прошла, а товара на остатке, согласно настройкам системы, не хватает. Для удобного управления резервами и пакетного переключения статусов подойдет обработка для изменения действий в заказах клиентов.

Что нужно сделать:

  1. Откроем Заказ клиента, на основании которого создана реализация.
  2. Убедимся, что в строках товаров установлено действие «Отгрузить». Только при этом статусе система позволяет документу Реализация товаров и услуг списать товар со склада, используя ранее созданный резерв.
  3. Если система не позволяет установить статус «Отгрузить», значит, на дату заказа свободного остатка действительно не было, либо он был заблокирован другим заказом.

Анализ скрытой таблицы «Виды запасов»

Одной из самых неочевидных причин ошибки является механизм работы с видами запасов. В УТ 11 данные для проведения берутся не только из основной табличной части «Товары», но и из скрытой технической таблицы ВидыЗапасов. Она хранит информацию о том, какой именно товар (собственный, комиссионный, какой организации) и по какой ГТД будет списан.

Рассмотрим ситуацию: вы создали реализацию, когда товара на организации еще не было (например, до оформления передачи между организациями). Система сформировала «пустые» виды запасов. Затем вы оформили Передачу товаров, но реализация продолжает выдавать ошибку. Это происходит потому, что таблица видов запасов в реализации сама не обновилась.

Пошаговое решение:

  1. В документе Реализация товаров и услуг зайдем в меню «Еще» и выберем пункт «Открыть виды запасов».
  2. В открывшемся окне нажмем кнопку «Указать виды запасов вручную».
  3. Удалим все строки в таблице.
  4. Нажмем кнопку «Заполнить виды запасов» (или «Сформировать»). Система пересчитает остатки и подберет актуальные данные о владельце товара.
  5. Нажмем «ОК» и попробуем провести документ снова.

Проверка схемы Интеркампани и налогообложения

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

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

Во-вторых, обратим внимание на налогообложение. Если в документе Передача товаров стоит тип «Продажа облагается НДС», а в реализации — «Продажа не облагается НДС» (например, из-за разных режимов налогообложения организаций), 1С создаст разные аналитики запасов. Система увидит товар с НДС, но не сможет его продать без НДС, так как это разные ВидыЗапасов. Выясним причину расхождения и приведем типы налогообложения к единому знаменателю.

Важность времени проведения документов

В 1С время документа имеет критическое значение. Рассмотрим пример: Передача товаров сделана 10.09 в 12:00, а Реализация товаров и услуг тем же числом в 09:00. В момент времени 09:00 свободного остатка на организации-продавце еще нет, поэтому реализация не проводится.

Рекомендация: установим время всех поступлений и передач на начало дня (00:00:00), а время документов отгрузки — на конец дня или просто позже документов прихода. Это позволит избежать коллизий в регистре Свободные остатки.

Ордерный склад и регистр «Товары к отгрузке»

Если на предприятии используется ордерная схема, то остатки в системе делятся на «финансовые» и «складские». Проанализируем ситуацию: финансовый документ (Реализация) может не проводиться, если складской документ (Расходный ордер на товары) уже «застолбил» этот товар.

Посмотрим на регистр накопления Товары к отгрузке. Если в нем зависли записи по вашему товару со статусами «К отбору» или «В работе», значит, складская служба начала процесс отгрузки, но не завершила его, либо сделала это некорректно. Пока ордер не будет проведен в статусе «Отгружен», свободный остаток может отображаться неверно для новых реализаций.

Диагностика через регистры и программный код

Если визуальный анализ не помогает, придется обратиться к «первоисточникам» — регистрам накопления. Проанализируем движения по следующим регистрам:

Если вы решите искать ошибку в коде, обратите внимание на общий модуль ПроведениеСервер, процедура ВыполнитьКонтрольРезультатовПроведения. Именно там сосредоточена вся логика проверки остатков. Проанализируем фрагмент запроса, который система строит для проверки:


// Примерный алгоритм сбора данных для контроля
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|	ТаблицаТовары.Номенклатура,
|	ТаблицаТовары.Характеристика,
|	ТаблицаТовары.Количество,
|	ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстатки.ВРезервеОстаток, 0) КАК СвободныйОстаток
|ИЗ
|	ВременнаяТаблицаТовары КАК ТаблицаТовары
|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&МоментВремени, ) КАК СвободныеОстатки
|	ПО ТаблицаТовары.Номенклатура = СвободныеОстатки.Номенклатура";

В этой процедуре система сопоставляет данные из вашей реализации с данными регистров. Если вы видите, что в регистрах всё в порядке, а реализация все равно «ругается», проверьте соответствие характеристик и серий — малейшее расхождение в этих измерениях приведет к ошибке отсутствия остатка.

Итог: алгоритм действий при ошибке

Рассмотрим краткий чек-лист для быстрого исправления проблемы:

  1. Убедитесь, что в Заказе клиента стоит действие «Отгрузить».
  2. В Реализации через меню «Еще» пересчитайте Виды запасов вручную.
  3. Проверьте, чтобы время Передачи товаров или Поступления было строго меньше времени Реализации.
  4. Убедитесь в отсутствии зависших Расходных ордеров по данному товару.
  5. Сформируйте отчет «Остатки и доступность товаров» и проверьте колонку «Доступно» на текущий момент времени.

Соблюдение этих шагов позволяет решить проблему в 99% случаев без привлечения программиста и внесения правок в конфигурацию.

← На главную