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