Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
балансировка_запасов [13.08.2019 23:41]
Timur Osmanov [Структура xml файла]
балансировка_запасов [28.11.2019 04:48] (текущий)
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}}
  
-Основное - расписание заказов используется из параметра Расписание заказовБалансировка - используется из Расписание заказов (балансировка)+Основное - расписание заказов используется из параметра Расписание заказов ​\\ 
 +Балансировка - используется из Расписание заказов (балансировка) ​\\ 
 +Не учитывать - установленное расписание,​ не будет учитываться при формирование балансировки
  
  
Строка 366: Строка 369:
  
 **В** - название склада- реципиента (куда перевозится товар). ​ **В** - название склада- реципиента (куда перевозится товар). ​
-**В(код)** - код склада-реципиента (куда перевозится товар). ​+**В (код)** - код склада-реципиента (куда перевозится товар). ​
  
 **Количество для перемещения** - объем оптимального внутреннего перемещения **Количество для перемещения** - объем оптимального внутреннего перемещения
Строка 382: Строка 385:
 **Комментарий В** - является ли товар новым, не складским и т.п. на складе-реципиенте,​ если сработала [[параметры/​настройка_параметров#​точка_запаса_дней_балансировка|точка заказа]] или уставновлен параметр [[параметры/​настройка_параметров#​не_балансировать_товар|не балансировать товар = да]] **Комментарий В** - является ли товар новым, не складским и т.п. на складе-реципиенте,​ если сработала [[параметры/​настройка_параметров#​точка_запаса_дней_балансировка|точка заказа]] или уставновлен параметр [[параметры/​настройка_параметров#​не_балансировать_товар|не балансировать товар = да]]
  
-**Дефицит** - разница между потребностью реципиента в товаре и количеством перемещаемого товара (может быть вызван недостатком товара на РЦ или необходимостью ​удовлетворения ​удовлетворения собственного спроса склада-донора)+**Дефицит** - разница между потребностью реципиента в товаре и количеством перемещаемого товара (может быть вызван недостатком товара на РЦ или необходимостью удовлетворения собственного спроса склада-донора)
  
 **Причина дефицита** - в столбце объясняется,​ почему возник дефицит:​ **Причина дефицита** - в столбце объясняется,​ почему возник дефицит:​
Строка 468: Строка 471:
  
 {{ balance:​balanceviewcells.png }} {{ balance:​balanceviewcells.png }}
 +
 +
 +Так же, закреплять столбцы,​ можно при помощи контекстного меню, вызванного на названии столбца
 +
 +{{ balance: balancehold.png?​700 }}
  
 ==Единицы измерения== ==Единицы измерения==
Строка 482: Строка 490:
 Выбранные единицы измерения отразятся в [[балансировка_запасов#​статус-строка_в_балансировке|статус-строке]] балансировки Выбранные единицы измерения отразятся в [[балансировка_запасов#​статус-строка_в_балансировке|статус-строке]] балансировки
  
-==Закрепление столбцов== 
  
-При помощи контекстного меню, вызванного на названии столбца,​ можно закреплять столбцы (при передвижении по таблице направо,​ закрепленные столбцы будут оставаться слева) 
- 
-{{ balance: balancehold.png?​700 }} 
  
 ==Отображение свойств,​ параметров и полей для товаров== ==Отображение свойств,​ параметров и полей для товаров==
Строка 500: Строка 504:
 Считывание результатов анализов происходит во время проведения балансировки,​ поэтому если балансировка проведена,​ то добавляемые в балансировку результаты анализов будут содержать значения "​-" ​ Считывание результатов анализов происходит во время проведения балансировки,​ поэтому если балансировка проведена,​ то добавляемые в балансировку результаты анализов будут содержать значения "​-" ​
  
 +==Отображение продаж предыдущих периодов в Балансировке==
 +
 +С помощью Вид-Данные о продажах,​ в таблицу балансировки можно вывести продажи товаров за выбранный период.
 +
 +{{:​balance:​продажи_в_балансировке.png}}
 +
 +Для отображения продаж нужно задать необходимый период и срок отображения данных (периоды ограничены - Дней - 1095,​недель 156, месяцев 36).
  
 +Продажи отображаются с учетом иерархии складов,​ в соответствие со значением параметра [[параметры:​настройка_параметров#​учет_продаж_дочерних_складов|Учитывать продажи дочерних складов]].
 ===Поиск и фильтрация в балансировке=== ===Поиск и фильтрация в балансировке===
  
Строка 570: Строка 582:
  
 ====Логика алгоритма пропорционального распределения==== ====Логика алгоритма пропорционального распределения====
-1. Рассчитывается суммарная потребность филиалов в товарах+1. Рассчитывается суммарная потребность ​в товарах,​ складов участвующих в балансировке(РЦ и филиалов). 
 + 
 +2. Текущий остаток РЦ делится на суммарную потребность складов – получается коэффициент удовлетворения спроса
 + 
 +3.     ​Рассчитывается доступный остаток для ​распределения с РЦ: \\ 
 +Макс(0, Текущий остаток РЦ - Мин(Потребность РЦ * Коэффициент удовлетворения спроса,​ Потребность РЦ)) 
 + 
 +4. Потребность каждого филиала умножается на коэффициент удовлетворенного спроса. 
 + 
 +5.     ​Перемещение корректируется по остаточному количеству на РЦ, после перемещения на филиал. 
 + 
 +6.     ​Если количество,​ доступное для перемещения на склад, меньше минимальной партии,​ то количество перемещения округляется до 0 (т.к нет смысла перемещать меньше минимальной партии). При этом в расшифровке отобразится Округление по минимальной партии,​ текущее доступное количество для перемещения и значение минимальной партии. В таком случае доступное количество для перемещения станет 0 
  
-2. Доступный для ​распределения остаток РЦ делится ​на потребность филиалов ​– получается коэффициент ​удовлетворения спроса.+=====Проведение балансировки с учётом многоступенчатой иерархии ​складов===== 
 +Если в программе используется иерархия складов, с глубинной вложенности больше двух уровней,​ то при ​формирование балансировки, можно учитываться особенности такой иерархии. При расчёте перемещение товара, со склада верхнего уровня, на склады нижнего уровня, но через промежуточные склады,​ будет учитываться потребность необходимых складов.
  
-3. Потребность каждого филиала умножается на коэффициент удовлетворенного спроса.+Чтобы это учитывалось, необходимо выполнение двух условий: \\ 
 +1. У балансируемых товаров должна быть установлена одна ​иерархия складов,​ глубиной не меньше ​трёх ​уровней. \\ 
 +2. В настройках балансировки, ​должно быть выбрано направление балансировки,​ в котором разрешено перемещение только по всей иерархии (от склада самого верхнего уровня на склады самого ​нижнего уровня,​ через ​склады ​промежуточных уровней). Эти ​склады должны принадлежать иерархии из п.1.
  
-4. Если количество,​ доступное для перемещения на склад, ​меньше минимальной партии, то количество ​перемещения ​округляется до 0 (т.к нет смысла перемещать меньше минимальной партии). При этом в расшифровке отобразится Округление по минимальной партии,​ текущее доступное количество для перемещения и значение минимальной партии. В таком случае доступное количество для перемещения станет 0+**Пример использования:**
  
 +Необходимо переместить товар с РЦ(первый уровень иерархии),​ на филиалы(третий уровень иерархии),​ через промежуточные склады(второй уровень иерархии). \\
 +При перемещение с РЦ на промежуточные склады,​ количество перемещения будет учитывать продажи самого склада и его филиалов. При дальнейшем распределение с промежуточного склада на филиалы,​ будет рассчитываться потребность каждого склада в отдельности и на промежуточном складе,​ останется количество необходимое для самого склада.
  
 =====Учет балансировки при последующих операциях===== =====Учет балансировки при последующих операциях=====
Строка 709: Строка 738:
  ​  ​   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роки доставки для отношения складов