Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
балансировка_запасов [13.08.2019 23:41]
Timur Osmanov [Структура xml файла]
балансировка_запасов [13.12.2019 08:54] (текущий)
Timur Osmanov [Проведение балансировки с учётом многоступенчатой иерархии складов]
Строка 1: Строка 1:
 ======Балансировка====== ======Балансировка======
 <note important>​ <note important>​
-Функционал доступен в следующих версиях:​ Максимальная и Под ключ.+Функционал доступен в следующих версиях: ​ ​Premium (Максимальнаяи Enterprise (Под ключ).
 </​note>​ </​note>​
  
Строка 49: Строка 49:
 1. Нажать кнопку подготовить,​ 1. Нажать кнопку подготовить,​
  
-2. Выбрать фильтр -  какие склады-товары участвуют в балансировке (работа с фильтрами аналогична [[формирование_заказа#​фильтры_автоподготовки_заказа|фильтрам]] в заказе+2. Выбрать фильтр -  какие склады-товары участвуют в балансировке (работа с фильтрами аналогична [[формирование_заказа#​фильтры_автоподготовки_заказа|фильтрам]] в заказе)
  
 3. Нажать подготовить 3. Нажать подготовить
Строка 63: Строка 63:
 =====Правила проведения Балансировки===== =====Правила проведения Балансировки=====
  
-  -Если позиция является [[формирование_заказа&#​нескладская_позиция|нескладской]],​ то спрос на нее считается равным 0 (касается любого склада - как донора,​ так и реципиента +  -Если позиция является [[формирование_заказа&#​нескладская_позиция|нескладской]],​ то спрос на нее считается равным 0 (касается любого склада - как донора,​ так и реципиента) 
-  -Если На складе-доноре позиция является [[параметры:​настройка_параметров#​новый_товар_дней|новым товаром]],​ то она не может быть перевезена с этого склада,​ если используется [[параметры/​настройка_параметров#​способ_расчета_заказа_нового_товара|способ расчета заказа по новому товара]] = по продажам+  -Если На складе-доноре позиция является [[параметры:​настройка_параметров#​новый_товар_дней|новым товаром]],​ то она не может быть перевезена с этого склада,​ если используется [[параметры/​настройка_параметров#​способ_расчета_заказа_нового_товара|способ расчета заказа по новому товара]] = Вручную
   - Если На складе-реципиенте позиция является [[параметры:​настройка_параметров#​новый_товар_дней|новым товаром]],​ то она может быть перевезена на этот склад, если используется [[параметры/​настройка_параметров#​способ_расчета_заказа_нового_товара|способ расчета заказа по новому товара]] = одна кратность или по продажам. При этом учитываются [[акции_новые1#​тип_акции_объем|акции типа Объем]] и [[параметры/​настройка_параметров#​добавлять_к_заказу_ед|добавлять к заказу]]   - Если На складе-реципиенте позиция является [[параметры:​настройка_параметров#​новый_товар_дней|новым товаром]],​ то она может быть перевезена на этот склад, если используется [[параметры/​настройка_параметров#​способ_расчета_заказа_нового_товара|способ расчета заказа по новому товара]] = одна кратность или по продажам. При этом учитываются [[акции_новые1#​тип_акции_объем|акции типа Объем]] и [[параметры/​настройка_параметров#​добавлять_к_заказу_ед|добавлять к заказу]]
   -Если На складе-реципиенте позиция имеет статус [[формирование_заказа&#​недостаточно_данных|Недостаточно данных]],​ то она туда не перевезется   -Если На складе-реципиенте позиция имеет статус [[формирование_заказа&#​недостаточно_данных|Недостаточно данных]],​ то она туда не перевезется
Строка 145: Строка 145:
 ====Норма складского запаса==== ====Норма складского запаса====
  
-норма запаса в днях, до которой происходит пополнение товара. ​+Норма запаса в днях, до которой происходит пополнение товара. ​
 Это число не должно быть меньше плеча поставки и точки заказа,​ если она есть. Это число не должно быть меньше плеча поставки и точки заказа,​ если она есть.
 Выставляется на вкладке «Параметры – Балансировка»:​ Выставляется на вкладке «Параметры – Балансировка»:​
Строка 160: Строка 160:
  
 Варианты отображения: ​ Варианты отображения: ​
-  * Есть свободный остаток на складе доноре - Если на складе доноре есть свободный остаток,​ но количество перемещения=0,​ такое перемещение будет отображаться 
   * Не по расписанию - Если перемещения нет в расписание,​ то отображается   * Не по расписанию - Если перемещения нет в расписание,​ то отображается
   * Есть дефицит - Если есть дефицит,​ то нулевое перемещение отображается.   * Есть дефицит - Если есть дефицит,​ то нулевое перемещение отображается.
-  * Отображать все ​Отображаются все нулевые перемещения+  * Есть свободный остаток на складе доноре - Если на складе доноре есть свободный остаток, но количество перемещения=0,​ такое перемещение будет отображаться 
 +  * Остальное - Будут отображаться нулевые перемещения без дефицита и с нулевым остатком на складе доноре (например ​перемещения ​не рентабельные,​ если не пишется дефицит)
  
 {{ balance: balancezero.png?​600 }} {{ balance: balancezero.png?​600 }}
Строка 178: Строка 178:
 Способы разворота аналогов задаются в настройках балансировки Способы разворота аналогов задаются в настройках балансировки
  
-{{ balance: balanceanalogs.png?600 }}+{{ balance: balanceanalogs.png }}
  
 Механизм разворота Механизм разворота
Строка 187: Строка 187:
   *сначала дешевые,​ потом дорогие - сортировка по цене закупки от меньшей к большей   *сначала дешевые,​ потом дорогие - сортировка по цене закупки от меньшей к большей
   *по приоритету - сортировка по приоритету на вкладке Аналоги от самого высокого до низкого   *по приоритету - сортировка по приоритету на вкладке Аналоги от самого высокого до низкого
 +  *обратно приоритету - сортировка по приоритету на вкладке Аналоги от самого низкого до высокого
  
 2. В том случае если значения равны, то сортировка происходит по артикулу товара 2. В том случае если значения равны, то сортировка происходит по артикулу товара
Строка 250: Строка 251:
  
 ====Расписание для балансировки==== ====Расписание для балансировки====
-Если для проведения балансировки ​Вы используете расписание заказов,​ отличающееся от Заказа,​ то это расписание нужно предварительно задать в [[параметры/​настройка_параметров#​расписание_заказов_балансировка|Параметры - Балансировка]] и выбрать в Настройках Балансировки.+Если для проведения балансировки ​вы используете расписание заказов,​ отличающееся от Заказа,​ то это расписание нужно предварительно задать в [[параметры/​настройка_параметров#​расписание_заказов_балансировка|Параметры - Балансировка]] и выбрать в Настройках Балансировки.
  
-{{ balance:bal_set_16042019 (1).png }}+{{:balance:расписание_балансировки.png}}
  
-Основное - расписание заказов используется из параметра Расписание заказовБалансировка - используется из Расписание заказов (балансировка)+Основное - расписание заказов используется из параметра Расписание заказов ​\\ 
 +Балансировка - используется из Расписание заказов (балансировка) ​\\ 
 +Не учитывать - установленное расписание,​ не будет учитываться при формирование балансировки
  
  
Строка 286: Строка 289:
 В первую очередь будут проводиться перемещения,​ содержащим склады с наибольшим приоритетом при одинаковой рентабельности перемещений (при использовании алгоритма [[балансировка_запасов#​пропорциональное_распределение_остатка_распределительного_центра|пропорционального распределения дефицита]] порядок складов также будет учтен) В первую очередь будут проводиться перемещения,​ содержащим склады с наибольшим приоритетом при одинаковой рентабельности перемещений (при использовании алгоритма [[балансировка_запасов#​пропорциональное_распределение_остатка_распределительного_центра|пропорционального распределения дефицита]] порядок складов также будет учтен)
  
 +====Проводить балансировку по складам или клиентам====
 +Если при работе с программой учитываются клиенты,​ то в настройках балансировки можно выбрать,​ кто будет использоваться в качестве реципиентов,​ при формирование перемещения. Балансировка формируется по общим принципам,​ как по складам,​ так и по клиентам. \\
 +  * Проводить балансировку по складам - перемещение формируется по складам. Донором и реципиентом,​ выступают используемые в программе склады. \\
 +  * Проводить [[балансировка_запасов#​балансировка_по_клиентам|балансировку по клиентам]] - перемещение формируется со складов по клиентам. В качестве донора используются склады,​ в качестве реципиентов - клиенты. Склады,​ с которых разрешено перемещение клиенту,​ стоимости и сроки доставки указываются в [[справочник_клиентов|карточке клиента]].
  
 +Если в программе нет клиентов,​ то данная настройка не отображается.
  
 +{{:​balance:​балансировка_по.png}}
  
  
Строка 309: Строка 318:
 Если доступное для перемещения количество меньше минимальной партии,​ то такое перемещение обнуляется,​ при этом остаток склада-донора становится доступным для перемещения на другие склады Если доступное для перемещения количество меньше минимальной партии,​ то такое перемещение обнуляется,​ при этом остаток склада-донора становится доступным для перемещения на другие склады
 </​note>​ </​note>​
 +
 +====Балансировка по клиентам====
 +Forecast NOW! может решить задачу выбора оптимального склада для отгрузки и распределения товара вашим клиентам. Для этого можно воспользоваться балансировкой по клиентам
 +Для того, чтобы эта балансировка работала нужно: \\
 +1. Задать стоимость,​ сроки доставки и разрешенные направления перемещения до клиентов с разных складов в [[справочник_клиентов|справочнике клиентов]] \\
 +2. Загрузить известный спрос клиентов в будущем на отдельный склад как [[формат_данных_для_загрузки#​формат_файла_для_закупок_клиентов|закупки под клиентов]] (должны попадать только незакрытые потребности клиентов) \\
 +3. Создать направление балансировки,​ где единственным получателем будет склад, на который загружен спрос клиентов в будущем.
 +
 +При проведении балансировки по клиентам,​ клиенты всегда выступают только реципиентами. Загружаться должны только те закупки под клиентов,​ которые ещё не удовлетворены.
 +
 +ОТЗ по клиентам рассчитывается исходя из закупок под клиентов.
 +<​hiddenЛогика расчёта ОТЗ>​Суммируются закупки по клиенту со склада реципиента,​ указанного в направление балансировки по балансируемому товару. \\
 +
 +Период за который суммируются закупки клиентов = От - текущая дата в базе + 1 день; До - текущая дата в базе + 1 день + Норма складского запаса,​ дней, склада реципиента с которого берутся закупки клиентов + срок доставки до клиента. \\
 +
 +Текущий остаток товара по клиентам = 0.
 +
 +При проведении балансировки учитываются сроки и стоимости доставки указанные в карточке клиентов.</​hidden> ​
 +
 +**Пример использования**
 +
 +Клиент1 присылает информацию о необходимом количестве товара. Эта информация загружается в программу,​ на отдельный склад.
 +
 +Необходимо отгрузить товар, под заказ клиенту,​ на определённые даты. \\
 +Товар клиенту можно переместить только со склада №2 и склада №3. Срок доставки до клиента = 1 день. Стоимость доставки со склада №2 = 2, со склада №3 = 10. \\
 +Эта информация указывается в карточке клиента:​
 +{{:​balance:​клиент_для_балансировки.png}}
 +
 +При формирование балансировки,​ в настройках указываем соответствующее направление балансировки и выбираем "​Проводить балансировку по клиентам"​. Добавляем товар со склада на который загружены закупки под клиента и формируем балансировку. \\
 +
 +В сформированной балансировке видим, что товар перемещается клиенту1 с двух складов. Стоимость доставки со склада №2 ниже, но так как свободного остатка не хватает чтобы удовлетворить потребность клиента,​ так же перемещается товар со склада №3.
 +{{:​balance:​примера_балансировка_по_клиентам.png}}
 +
 +
 +
  
 ====Учет ограничений на перемещение==== ====Учет ограничений на перемещение====
Строка 366: Строка 410:
  
 **В** - название склада- реципиента (куда перевозится товар). ​ **В** - название склада- реципиента (куда перевозится товар). ​
-**В(код)** - код склада-реципиента (куда перевозится товар). ​+**В (код)** - код склада-реципиента (куда перевозится товар). ​
  
 **Количество для перемещения** - объем оптимального внутреннего перемещения **Количество для перемещения** - объем оптимального внутреннего перемещения
Строка 382: Строка 426:
 **Комментарий В** - является ли товар новым, не складским и т.п. на складе-реципиенте,​ если сработала [[параметры/​настройка_параметров#​точка_запаса_дней_балансировка|точка заказа]] или уставновлен параметр [[параметры/​настройка_параметров#​не_балансировать_товар|не балансировать товар = да]] **Комментарий В** - является ли товар новым, не складским и т.п. на складе-реципиенте,​ если сработала [[параметры/​настройка_параметров#​точка_запаса_дней_балансировка|точка заказа]] или уставновлен параметр [[параметры/​настройка_параметров#​не_балансировать_товар|не балансировать товар = да]]
  
-**Дефицит** - разница между потребностью реципиента в товаре и количеством перемещаемого товара (может быть вызван недостатком товара на РЦ или необходимостью ​удовлетворения ​удовлетворения собственного спроса склада-донора)+**Дефицит** - разница между потребностью реципиента в товаре и количеством перемещаемого товара (может быть вызван недостатком товара на РЦ или необходимостью удовлетворения собственного спроса склада-донора)
  
 **Причина дефицита** - в столбце объясняется,​ почему возник дефицит:​ **Причина дефицита** - в столбце объясняется,​ почему возник дефицит:​
Строка 468: Строка 512:
  
 {{ balance:​balanceviewcells.png }} {{ balance:​balanceviewcells.png }}
 +
 +
 +Так же, закреплять столбцы,​ можно при помощи контекстного меню, вызванного на названии столбца
 +
 +{{ balance: balancehold.png?​700 }}
  
 ==Единицы измерения== ==Единицы измерения==
Строка 482: Строка 531:
 Выбранные единицы измерения отразятся в [[балансировка_запасов#​статус-строка_в_балансировке|статус-строке]] балансировки Выбранные единицы измерения отразятся в [[балансировка_запасов#​статус-строка_в_балансировке|статус-строке]] балансировки
  
-==Закрепление столбцов== 
  
-При помощи контекстного меню, вызванного на названии столбца,​ можно закреплять столбцы (при передвижении по таблице направо,​ закрепленные столбцы будут оставаться слева) 
- 
-{{ balance: balancehold.png?​700 }} 
  
 ==Отображение свойств,​ параметров и полей для товаров== ==Отображение свойств,​ параметров и полей для товаров==
Строка 500: Строка 545:
 Считывание результатов анализов происходит во время проведения балансировки,​ поэтому если балансировка проведена,​ то добавляемые в балансировку результаты анализов будут содержать значения "​-" ​ Считывание результатов анализов происходит во время проведения балансировки,​ поэтому если балансировка проведена,​ то добавляемые в балансировку результаты анализов будут содержать значения "​-" ​
  
 +==Отображение продаж предыдущих периодов в Балансировке==
 +
 +С помощью Вид-Данные о продажах,​ в таблицу балансировки можно вывести продажи товаров за выбранный период.
 +
 +{{:​balance:​продажи_в_балансировке.png}}
 +
 +Для отображения продаж нужно задать необходимый период и срок отображения данных (периоды ограничены - Дней - 1095,​недель 156, месяцев 36).
  
 +Продажи отображаются с учетом иерархии складов,​ в соответствие со значением параметра [[параметры:​настройка_параметров#​учет_продаж_дочерних_складов|Учитывать продажи дочерних складов]].
 ===Поиск и фильтрация в балансировке=== ===Поиск и фильтрация в балансировке===
  
Строка 570: Строка 623:
  
 ====Логика алгоритма пропорционального распределения==== ====Логика алгоритма пропорционального распределения====
-1. Рассчитывается суммарная потребность филиалов в товарах. ​+1. Рассчитывается суммарная потребность ​в товарах,​ складов участвующих в балансировке(РЦ и филиалов). 
 + 
 +2. Текущий остаток РЦ делится на суммарную потребность складов – получается коэффициент удовлетворения спроса
 + 
 +3.     ​Рассчитывается доступный остаток для ​распределения с РЦ: \\ 
 +Макс(0, Текущий остаток РЦ - Мин(Потребность РЦ * Коэффициент удовлетворения спроса,​ Потребность РЦ)) 
 + 
 +4. Потребность каждого филиала умножается на коэффициент удовлетворенного спроса. 
 + 
 +5.     ​Перемещение корректируется по остаточному количеству на РЦ, после перемещения на филиал. 
 + 
 +6.     ​Если количество,​ доступное для перемещения на склад, меньше минимальной партии,​ то количество перемещения округляется до 0 (т.к нет смысла перемещать меньше минимальной партии). При этом в расшифровке отобразится Округление по минимальной партии,​ текущее доступное количество для перемещения и значение минимальной партии. В таком случае доступное количество для перемещения станет 0 
 + 
 + 
 +=====Проведение балансировки с учётом многоступенчатой иерархии складов===== 
 +Если в программе используется иерархия складов,​ с глубинной вложенности больше двух уровней,​ то при формирование балансировки,​ можно учитывать особенности такой иерархии.  
 +{{:​balance:​1v2.png}} 
 + 
 +При перемещение с Главного распределительного центра,​ на Региональный склад №1, будет так же учтена потребность Розничной сети и Магазина №1. Так как дальше товар переместится на склады Розничной сети и Магазина №1. 
 + 
 +Чтобы это учитывалось,​ необходимо выполнение двух условий:​ \\ 
 +1. У балансируемых товаров должна быть установлена одна [[параметры/​настройка_параметров#​иерархия_складов|иерархия складов]],​ глубиной не меньше трёх уровней. \\ 
 +2. В настройках балансировки,​ должно быть выбрано [[балансировка_запасов#​разрешенные_направления_балансировки|направление балансировки]],​ в котором разрешено перемещение только по всей иерархии (от склада самого верхнего уровня на склады самого нижнего уровня,​ через склады промежуточных уровней). Эти склады должны принадлежать иерархии из п.1.
  
-2. Доступный для ​распределения остаток РЦ делится на потребность филиалов – получается коэффициент удовлетворения ​спроса.+**Пример использования:**
  
-3. Потребность ​каждого ​филиала умножается на коэффициент удовлетворенного спроса.+Необходимо переместить товар с распределительного ​центра, Основной склад(первый ​уровень иерархии), через промежуточный склад, Склад №1(второй уровень иерархии) на филиалы, Склад №2 и Склад №3(третий уровень иерархии),​ . \\ 
 +Создаём структуру складов ​с соответствующей иерархией и устанавливаем её товарам. \\ 
 +{{:​balance:​иерархия_для_примера.png}}
  
-4. Если количество, ​доступное для ​перемещения на склад, меньше минимальной партии, то количество перемещения округляется до 0 (т.к нет смысла ​перемещать меньше минимальной партии). При этом в расшифровке отобразится Округление по минимальной партиитекущее ​доступное количество ​для перемещения и значение ​минимальной партии. В таком случае доступное количество ​для перемещения станет 0+Создаём ​направление балансировки, в котором разрешено перемещение товара с Основного склада ​на Склад №1со Склада №1 на Склад №2 и Склад №3. Выбираем это ​направление ​в настройках балансировки. \\ 
 +{{:​balance:​направление_для_примера.png}}
  
 +При перемещении с распределительного центра на промежуточные склады,​ количество перемещения будет учитывать продажи самого склада и его филиалов. При дальнейшем распределение с промежуточного склада на филиалы,​ будет рассчитываться потребность каждого склада в отдельности и на промежуточном складе,​ останется количество необходимое для самого склада.
  
 +{{:​balance:​многоуровневая_балансировка.png}}
 =====Учет балансировки при последующих операциях===== =====Учет балансировки при последующих операциях=====
  
Строка 709: Строка 789:
  ​  ​   isShowZeroMovements - отображать нулевые перемещения  ​  ​   isShowZeroMovements - отображать нулевые перемещения
  ​  ​   globalBalancingDestination - направление балансировки. Может принимать значения -  '​Использовать из значений параметров'​ и пользовательские значения из Настройки->​Направления балансировки  ​  ​   globalBalancingDestination - направление балансировки. Может принимать значения -  '​Использовать из значений параметров'​ и пользовательские значения из Настройки->​Направления балансировки
- ​  ​   analogsDeploymentMode - метод разворота аналогов. Может принимать значения - BY_RESTS_DATE(Сначала старые запасы,​ потом новые),​ BY_PRICE(Сначала дешевые,​ потом дорогие),​ BY_PRIORITY(По приоритету)+ ​  ​   analogsDeploymentMode - метод разворота аналогов. Может принимать значения - BY_RESTS_DATE(Сначала старые запасы,​ потом новые),​ BY_PRICE(Сначала дешевые,​ потом дорогие),​ BY_PRIORITY(По приоритету),​ BY_REV_PRIORITY(Обратно приоритету)
  ​  ​   StoragesRelationships - cтоимости и Сроки доставки  ​  ​   StoragesRelationships - cтоимости и Сроки доставки
  ​  ​       StoragesRelationship - cтоимости и cроки доставки для отношения складов  ​  ​       StoragesRelationship - cтоимости и cроки доставки для отношения складов