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