Как определить остатки резервов по конкретному заказу клиента в 1С:ERP 2.4 с помощью запроса и стандартных отчетов?

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

Определение текущих резервов по конкретному заказу клиента в системе 1С:ERP 2.4 является одной из часто встречающихся, но не всегда очевидных задач. Система предлагает мощный инструментарий для управления обеспечением потребностей, который не ограничивается простым резервированием на складе. Для получения полной и точной информации мы рассмотрим как методологические аспекты, так и практические способы работы с регистрами и стандартными отчетами.

Прежде всего, давайте разберемся с ключевыми понятиями, чтобы построить правильное понимание того, как 1С:ERP 2.4 оперирует резервами и обеспечением.

Основы методологии резервирования и обеспечения в 1С:ERP 2.4

В 1С:ERP 2.4 отсутствует прямое, универсальное резервирование на складах "под заказ" в том смысле, как это понимается в более простых системах. То, что часто называют "резервированием под заказ", на самом деле является частью комплексной схемы обеспечения потребностей. Система фокусируется на вопросе "сколько товара мы можем продать сейчас" и "как обеспечить будущие потребности".

Механизм обеспечения потребностей работает на основе регистра Обеспечение заказов и тесно связан с настройками политики обеспечения товаров на складах, а также с видом обеспечения, указанным непосредственно в заказе клиента. Разберем основные аспекты:

Действие в строке заказа клиента

Каждая строка в документе Заказ клиента имеет поле "Действие", которое определяет, как именно система должна реагировать на потребность в товаре. Мы подробно рассмотрим каждый из вариантов:

  1. "Не обеспечивать": Если выбрано это действие, система игнорирует данную строку заказа в контексте обеспечения. Товар по этой строке не ставится в график обеспечения и не учитывается при расчете потребностей. Это полезно, когда, например, товар будет отгружен позже по отдельной договоренности, или его наличие для данного заказа не критично.
  2. "К обеспечению": Это действие сигнализирует системе о том, что товар по данной строке требует обеспечения. Если на складе нет достаточного свободного остатка, система будет ожидать формирования новых заказов на поставку, либо внутренних перемещений, чтобы удовлетворить эту потребность. Данное действие активно используется для планирования будущих закупок или производства.
  3. "Резервировать к дате": При выборе этого действия товар будет зарезервирован к указанной дате отгрузки. Система учитывает как текущие свободные остатки, так и все плановые поступления товаров, которые ожидаются до этой даты. Это позволяет более гибко управлять запасами, резервируя товар только тогда, когда он реально понадобится, и при этом учитывая будущие приходы. Если к дате поступлений не хватает, система может предложить докупить или произвести товар.
  4. "Резервировать на складе": Данное действие приводит к немедленному резервированию товара из текущего свободного остатка на складе. Это действие обеспечивает 100% гарантию отгрузки, так как товар физически закрепляется за заказом. Однако следует быть осторожным: избыточное резервирование под отдаленные заказы может привести к "замораживанию" оборотных средств и снижению доступности товара для других, более срочных заказов. При использовании этого действия, в регистре СвободныеОстатки появится запись о резерве.
  5. "Отгрузить": Этот вариант действия аналогичен "Резервировать на складе" в части резервирования, но также является прямой командой к немедленной отгрузке. Как правило, это действие используется, когда товар уже готов к выдаче клиенту.

Обособленное обеспечение с использованием "Назначения"

Если ваша задача заключается в том, чтобы зарезервировать товар под конкретный заказ клиента таким образом, чтобы он не мог быть использован для других целей, даже если есть свободные остатки, применяется механизм "Обособленное обеспечение". При выборе действия "Обеспечивать обособленно" в строке заказа клиента создается уникальное "Назначение".

Это "Назначение" представляет собой уникальный идентификатор, который связывает конкретный товар с данным заказом. Далее, это же "Назначение" может быть использовано в документах поступления (например, Заказ поставщику или Приобретение товаров и услуг). Таким образом, мы можем не только зарезервировать имеющийся товар, но и оформить заказ на поставку товара, который будет обособленно учтен под конкретного клиента сразу по приходу на склад. Это позволяет избежать ситуации, когда товар, заказанный специально для клиента, по ошибке отгружается другому.

Определение регистров, содержащих информацию о резервах

Для того чтобы получить информацию о резервах, мы можем воспользоваться несколькими регистрами. Важно понимать, какой именно тип резерва или обеспечения мы ищем.

Способ 1: Просмотр движений документа

Самый простой и наглядный способ понять, какие регистры затрагивает конкретный документ Заказ клиента с резервом, – это воспользоваться стандартным отчетом "Движения документа". Откройте проведенный Заказ клиента (который, как вы знаете, содержит резервы) и найдите кнопку для просмотра движений (обычно это кнопка "Движения документа" или "Перейти" -> "Движения документа"). В появившемся окне вы увидите список всех регистров, в которые документ произвел записи, включая те, что отражают резервы и обеспечение.

Способ 2: Анализ регистра накопления "СвободныеОстатки"

Как вы верно заметили, регистр накопления СвободныеОстатки предоставляет информацию об общем свободном остатке товаров. Он действительно содержит ресурсы, такие как ВРезервеСоСклада. Если Заказ клиента напрямую резервирует товар на складе (действие "Резервировать на складе"), то в этом регистре появится запись, где сам Заказ клиента будет выступать в качестве Регистратора.

Мы можем сформировать запрос для получения информации о резервах, созданных конкретным заказом клиента. Рассмотрим пример такого запроса:


ВЫБРАТЬ
    рег.Номенклатура,
    рег.Характеристика,
    рег.Склад,
    рег.ВРезервеСоСклада КАК КоличествоВРезерве
ИЗ
    РегистрНакопления.СвободныеОстатки КАК рег
ГДЕ
    рег.Регистратор = &ЗаказКлиента
    И рег.ВРезервеСоСклада > 0

Пояснение к запросу:

  1. Мы выбираем поля Номенклатура, Характеристика, Склад, а также значение поля ВРезервеСоСклада, которое и будет показывать количество зарезервированного товара.
  2. Источник данных – РегистрНакопления.СвободныеОстатки.
  3. Условие рег.Регистратор = &ЗаказКлиента позволяет отфильтровать движения, которые были созданы конкретным документом ЗаказКлиента. В качестве параметра &ЗаказКлиента необходимо подставить ссылку на ваш документ.
  4. Условие рег.ВРезервеСоСклада > 0 гарантирует, что мы выбираем только те записи, которые реально показывают резерв.

Важное замечание: Этот запрос покажет вам, сколько товара было зарезервировано изначально данным документом. Он не учитывает, сколько товара уже было отгружено по этому заказу или сколько резерва осталось фактически на складе. Если часть товара по заказу уже отгружена, а вы хотите узнать остаток резерва, вам потребуется дополнительно вычесть количество отгруженного товара из другого регистра (например, из регистра, отражающего фактические отгрузки, такие как ТоварыНаСкладах по приходно-расходным движениям, или из специализированных регистров обеспечения, которые мы рассмотрим далее).

Способ 3: Использование регистра сведений "РаспределениеЗапасов" (для обособленного обеспечения)

Для более глубокого и точного анализа резервов, особенно если вы используете механизм обособленного обеспечения с "Назначением", нам потребуется обратиться к регистру сведений РаспределениеЗапасов. Этот регистр является ключевым для работы с обособленным учетом и обеспечения потребностей. Он агрегирует и обрабатывает информацию о запасах и потребностях, группируя записи по их "Назначению" (то есть, по конкретному заказу).

РаспределениеЗапасов является одним из основных источников данных для рабочих мест по обеспечению заказов и позволяет увидеть, какие товары, в каком количестве и под какое "Назначение" (заказ) зарезервированы или ожидают обеспечения. Работа с этим регистром напрямую через запрос может быть более сложной, так как он оперирует состояниями и распределениями, но он предоставляет самую точную картину обособленного учета.

Способ 4: Регистр накопления "ЗапасыИПотребности"

Регистр накопления ЗапасыИПотребности является еще одним важным источником информации, на основе которого формируются многие типовые отчеты системы. Этот регистр позволяет контролировать поставки и обеспечение товаров, агрегируя данные о наличии, резервах и потребностях. Он служит основой для таких мощных инструментов, как "Состояние выполнения документа" и "Товарный календарь". Хотя напрямую запрос к нему для получения "резервов по заказу" может быть менее информативным, чем к РаспределениеЗапасов, он предоставляет общую картину, которая помогает в принятии управленческих решений.

Стандартные отчеты и рабочие места для анализа резервов по заказам

Вместо того чтобы всегда формировать сложные запросы, мы можем эффективно использовать мощные стандартные отчеты и рабочие места, предусмотренные в 1С:ERP 2.4. Они предоставляют детализированную информацию, часто с удобными расшифровками.

Отчет "Остатки и доступность товара"

Этот отчет является одним из наиболее востребованных для анализа складских остатков и резервов. Чтобы его найти, мы переходим в раздел "Склад и доставка" и выбираем пункт "Отчеты по складу". Среди них находим "Остатки и доступность товара".

Этот отчет позволяет нам увидеть:

  1. Общее количество товара на складе: Фактическое наличие.
  2. Сколько доступно для отгрузки: То есть, сколько товара мы можем свободно продать прямо сейчас.
  3. Сколько зарезервировано по конкретным заказам: Самое главное, что нас интересует.

Как использовать:

Рабочее место "Состояние обеспечения заказов"

Это рабочее место является незаменимым инструментом для менеджеров по продажам и специалистов по снабжению. Оно предоставляет всеобъемлющую информацию о состоянии обеспечения каждого заказа и находится в разделе "Склад и доставка", пункт "Обеспечение потребностей" (или "Рабочее место обеспечения потребностей").

Рабочее место "Состояние обеспечения заказов" позволяет нам получить следующую информацию:

  1. Требуется обеспечить: Количество товара, которое необходимо обеспечить по заказу.
  2. Обеспечено: Какое количество товара уже гарантировано, будь то на складе или ожидается к поступлению.
  3. Ожидается по заказу: Сколько товара ожидается по входящим заказам (например, Заказ поставщику), которые обеспечивают данный Заказ клиента.
  4. В резерве на складе: Сколько товара находится в физическом резерве на складе конкретно под этот Заказ клиента.
  5. Связанные документы: Мы можем увидеть, каким именно заказом на поступление (Заказ поставщику, Заказ на производство) обеспечен наш Заказ клиента, что особенно важно при использовании обособленного обеспечения.

Как использовать:

Подводим итоги

Для определения резервов по конкретному заказу клиента в 1С:ERP 2.4, нам необходимо использовать комплексный подход:

  1. Понимать методологию: Разбираться в действиях в строках заказа и механизме обособленного обеспечения с "Назначением".
  2. Использовать регистры для программистов: Для программного получения информации можно обращаться к РегистрНакопления.СвободныеОстатки (для первичного резерва, созданного заказом) и, для более точного учета текущего состояния и обособленного обеспечения, к Регистр сведений "РаспределениеЗапасов" и Регистр накопления "ЗапасыИПотребности".
  3. Активно применять стандартные отчеты и рабочие места: Для пользователей и бизнес-аналитиков наиболее эффективными будут отчет "Остатки и доступность товара" и рабочее место "Состояние обеспечения заказов". Они предоставляют всю необходимую информацию в удобном и наглядном виде, с возможностью детализации до конкретного заказа и назначения.

Сочетая эти подходы, мы сможем получить полную и достоверную картину резервов по любому заказу клиента в системе 1С:ERP 2.4.

← На главную