Довольно часто пользователи и администраторы систем на базе 1С:Управление торговлей 11, ERP 2 или Комплексной автоматизации 2 сталкиваются с парадоксальной ситуацией (увидеть остатки товаров в документах можно с помощью специальных расширений). В программе оформлен Заказ клиента, в строках которого установлено действие «Отгрузить». На складе товар физически присутствует, он закуплен под этот заказ (возможно, даже обособленно), и отчеты показывают наличие свободного остатка. Однако при попытке создать Реализацию товаров и услуг на основании заказа система выдает ошибку: «Нет товаров доступных для отгрузки. Для начала отгрузки необходимо указать действие 'Отгрузить'».
В этой статье мы подробно разберем, почему типовые механизмы проверки «не видят» товар (хотя дополнительная проверка остатков может быть активна), и как исправить эту ошибку, пройдя путь от простых настроек до скрытых реквизитов в базе данных.
Как показывает практика и обсуждения на профессиональных форумах, самой коварной причиной является некорректное заполнение справочника Номенклатура. Это часто случается при переносе данных из старых систем (например, УТ 10.3) или при загрузке позиций сторонними обработками. Рассмотрим подробнее, что происходит «под капотом» системы.
В карточке номенклатуры существует служебный реквизит ВариантОформленияПродажи. Он не всегда выведен на форму, но активно используется в запросах при заполнении документов. Если этот реквизит пуст, система не понимает, каким документом должна оформляться продажа данной позиции, и просто исключает её из выборки доступных к отгрузке товаров.
Как исправить:
Проанализируем состояние реквизита и заполним его. Если позиций много, воспользуемся групповой обработкой изменения реквизитов:
Номенклатура и добавим отбор по нужным позициям.Вариант оформления продажи и установим ему значение «Реализация товаров и услуг».Использование характеристик. Если вы обновляете данные, убедитесь, что оба этих поля заполнены корректно.Если вы пишете собственную обработку для загрузки товаров, обязательно добавьте заполнение этого значения в коде:
НовыйТовар = Справочники.Номенклатура.СоздатьЭлемент();
// ... заполнение основных реквизитов ...
НовыйТовар.ВариантОформленияПродажи = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг;
НовыйТовар.Записать();
Разберем ситуацию, когда тип номенклатуры не соответствует ожидаемому действию. Если позиции был присвоен тип «Услуга» или «Работа», правила её отгрузки отличаются от товаров. Например, для «Работ» в зависимости от настроек может требоваться оформление акта, а не товарной накладной. Проверим, что у всех позиций, которые должны попасть в Реализацию товаров и услуг, установлен тип Товар.
Если в Заказе клиента вы используете вариант «Обеспечить обособленно», система создает жесткую связь между заказом и конкретной партией товара (разобраться в них поможет ведомость по товарам с резервами). Проанализируем цепочку документов:
Заказе клиента указано назначение (сам этот заказ).Поступление товаров и услуг (или Приобретение товаров и услуг) в табличной части обязательно должно быть указано то же самое Назначение.Если товар поступил на склад без указания назначения, он упал на «свободный остаток». Заказ клиента с признаком обособления этот остаток «не видит». В таком случае система выдаст ошибку отсутствия товара для отгрузки. Выясним это, сформировав отчет «Остатки и доступность товаров» с группировкой по Назначению.
В последних версиях 1С:УТ 11 и ERP внедрен механизм отложенного расчета доступности. Если в настройках системы (раздел «Склад и доставка») включена опция фонового расчета, то после изменения статуса в заказе на «Отгрузить» программе требуется несколько секунд (или минут), чтобы обновить регистры. Попробуем подождать или вручную запустить регламентное задание Расчет остатков номенклатуры, а также проверить заполнение регистра "Запасы и потребности".
Проанализируем настройки склада. Если склад является ордерным, то последовательность оформления документов может быть жестко задана в настройках:
Расходный ордер на товары в статус «К отгрузке».Если в вашей базе настроен второй вариант, ошибка «Нет товаров к отгрузке» будет возникать до тех пор, пока складская часть не будет завершена.
Посмотрим на колонку «Дата отгрузки» в табличной части Заказа клиента. Часто пользователи устанавливают общую дату в шапке, но в строках остаются будущие даты. Если сегодня 10-е число, а в строке заказа стоит дата отгрузки 15-е число, система при попытке создать реализацию сегодня может посчитать, что время отгрузки еще не наступило. Убедимся, что дата в строке меньше или равна дате создаваемого документа реализации.
Выясним, от какой организации оформлен заказ и на какой организации числится товар. Если товар закуплен на «Организацию А», а заказ оформлен от «Организации Б», то без настроенной схемы «Интеркампани» (перепродажа между организациями) отгрузка будет заблокирована. Система будет видеть остаток на складе, но для текущей организации в заказе он будет недоступен.
Чтобы не гадать, рекомендуем использовать универсальный алгоритм диагностики:
Заказы клиентов. Если запрос к этому регистру возвращает пустое значение (как упоминал автор темы), значит, документ либо не проведен, либо статус строки не делает движений в приход этого регистра.Таким образом, чаще всего проблема решается либо исправлением технических реквизитов номенклатуры (ВариантОформленияПродажи), либо строгим соблюдением методологии обеспечения (соответствие назначений и дат отгрузки).