Имя: Пароль:
1C
 
Алгоритм для резервирования ТМЦ
,
0 bahtik
 
24.08.14
10:30
Здравствуйте!
Помогите, пожалуйста, решить задачу. За готовый рабочий код код готов заплатить 100 у.е.

Самописная конфигурация, платформа 8.3.5. В конфигурации есть такие справочники:
1. Справочник "Номенклатура ТМЦ". В моей когфигурации он выполняет роль именно классификатора номенклатуры ТМЦ, а не справочника самих ТМЦ, как в типовых. Например, "Ботинки защитные", "Освежитель воздуха" и т.п.
2. Справочник "ТМЦ" - подчинен справочнику "Номенклатура ТМЦ", в котором хранится информация о конкретных ТМЦ. Например: "Ботинки защитные Wurth", "Ботинки защитные Red Wing", "Освежитель воздуха AirWick", "Освежитель воздуха Glade" и т.п.
3. Справочник "Варианты ТМЦ" - также подчинен справочнику "Номенклатура ТМЦ", и предназначен для хранения различных вариантов номенклатурных позиций. Например, для ботинок это могут быть "Размер 41", "Размер 42" и т.п. Для освежителей воздуха - "Запах лаванды", "Запах Лимона" и т.п.

Есть регистр остатков "ТМЦнаСкладах", с измерениями "Склад" (СправочникСсылка.Склады), "НоменклатурнаяПозиция" (СправочникСсылка.НоменклатураТМЦ), "ТМЦ" (СправочникСсылка.ТМЦ) и "ВариантТМЦ" (СправочникСсылка.ВариантыТМЦ, может быть пустым) и ресурсом "Количество".

Есть регистр "Резервы ТМЦ", с измерениями "Склад", "ЦелевоеНазначение", "НоменклатурнаяПозиция", "ТМЦ", "ВариантТМЦ" и ресурсом "Количество".

Ну и соответственно есть документ "Резервирование ТМЦ", с табличной частью с реквизитами "НоменклатурнаяПозиция", "ТМЦ", "ВариантТМЦ", "Количество".

Сложность состоит в том, что при резервировании в этом документе можно не указывать ТМЦ либо ВариантТМЦ (либо ни то, ни другое). Т.е пользователь может оформить резерв в 4 вариантах: "Освежитель воздуха Glade с запахом лимона", или "Освежитель воздуха с запахом лимона" или "Освежитель воздуха Glade" или просто "Освежитель воздуха".

Два дня пытаюсь написать соответствующий код, но получается уж очень сложный алгоритм, который кучу раз обращается к данным. Кто может подсказать, как это сделать правильно? Повторяю, за готовый код заплачу 100 у.е.
215 bahtik
 
26.08.14
22:23
(212) Зачем ТЗ характеристики в Номенклатуре? Я же четко описал, как сделано. И с характеристиками там проблем нет.
216 vde69
 
26.08.14
22:24
(214) это решение которое можно реализовать, которое будет работать БЫСТРО и вполне потянет сотню активных юзеров
217 vde69
 
26.08.14
22:25
(215) это шаблон характеристик на все подчиненные элементы.
согласись характеристики освежителей и ботинок разные....
218 Злопчинский
 
26.08.14
22:25
(211) это почему он не решает задачи: поступили две заявки, под них успешно разлеглись "резервы", по сделанным резервам успешно отгрузились заявки. Я как-то считаю, что задача выполнена.
219 vde69
 
26.08.14
22:25
(216)я не настаиваю, можно и в регистре
220 Злопчинский
 
26.08.14
22:26
(215) если у тебя все работает - что ты ищешь здесь в нашем убогом местечке..? ;-)
221 bahtik
 
26.08.14
22:27
(217) Соглашусь, что разные, но я уже писал, что для этого есть справочник "Варианты ТМЦ". Для элементов этого справочника можно определять любые характеристики в любом количестве с помощью планов видов характеристик.
222 bahtik
 
26.08.14
22:28
(220) Где ты взял, что все работает? Прекрати писать ерунду.
223 Злопчинский
 
26.08.14
22:28
(212) вон даже vde69 описывает конкретное решение практически уже - почти то что я изложил. По крайне мере мне понятен ход мыслей vde69
224 bahtik
 
26.08.14
22:28
(218) Считай дальше.
225 bahtik
 
26.08.14
22:29
(223) Тебе не понятно главное. Суть моей задачи. И я уже уверен, что до тебя никогда не допрет.
226 Злопчинский
 
26.08.14
22:31
(22) еще раз: по варианту Б) описан вариант реализации. которы йрешает твою задачу. на складе есть две номенклатуры. Поступили 2 заявки, в однйо из которых номенклатура не совпадает ни с однйо из конкретных номенклатур. далее показа вариант "резервирования", который при отгрузке позволяет удовлетворить хотелку клиента.
227 bahtik
 
26.08.14
22:31
(226) Прекрати писать ерунду и позориться.
228 vde69
 
26.08.14
22:31
в моем решении
в первом регистре храним остатки
во втором регистре храним все возможные варианты заказа для конкретного документа
в третьем регистре храним текущие (максимально подходящие под остатки) варианты резервов
229 bahtik
 
26.08.14
22:32
(226) Ладно, ты все решил, молодец. Только успокойся, прошу тебя. ))
230 Злопчинский
 
26.08.14
22:33
(225) снизрйди господи до нас смертных, нарисуй для варианта

остаток на складе:
- Освежитель лемон аурум = 1шт
- освежитель лемон Глейд = 1 шт.
.
заявка клиента1: освежитель лемон = 1шт.
заявка клиент2: освежитель лемон глейд = 1шт.
.
ход расчетов вплоть до проведени яотгрузки - в том числе какие расчеты нужны (если нужны) непосредственно в самой отгрузке..
231 Злопчинский
 
26.08.14
22:34
(228) - второй регистр для ускорения нахождения решения при поступлении новых заявок..?
232 bahtik
 
26.08.14
22:38
Ладно, снизойду и попробую последний раз вразумить тебе, в чем суть. Давай пошагово:

Есть остатки:
Освежитель воздуха, Глейд, Лимон - 10 шт.
Освежитель воздуха, Глейд, Роза - 10 шт.

Поступает заявка:
Освежитель воздуха, Глейд, <Пусто> - 15 шт.

Что ты будешь резервировать?
233 vde69
 
26.08.14
22:38
(231) да, это самая главная фишка, промежуточное хранение плюс быстрое проведение (отсутствие блокировок).

кроме того в этом регистре можно сделать что-то типа "активен".

по идее если удастся прикрутить последовательность для регламентного расчета конкретного документа.
234 Злопчинский
 
26.08.14
22:44
(232) Просчет1
Резервирую:
"Освежитель воздуха, Глейд" (Освежитель воздуха Глейд Лемон) - 10 шт
"Освежитель воздуха, Глейд" (Освежитель воздуха Глейд Роза) - 5 шт
.
Следующий вопрос..? (заметь - я стараюсь быть как можно более конкретным)
235 vde69
 
26.08.14
22:45
(233) правда количество вариантов следует ограничить разумным количеством
236 Злопчинский
 
26.08.14
22:45
(233) угу, понятно
237 bahtik
 
26.08.14
22:47
(234) Молодец, зарезервировал! Идем дальше... Приходит Клиент №2 и говорит: "Дайте мне один освежитель воздуха с запахом лимона". Твои действия?
238 Злопчинский
 
26.08.14
22:49
Просчет2

Резервирую:
Заявка1, "Освежитель воздуха, Глейд" (Освежитель воздуха Глейд Лемон) - 5 шт
Заявка1, "Освежитель воздуха, Глейд" (Освежитель воздуха Глейд Роза) - 10 шт
.
Заявка2, "Освежитель воздуха, Лемон" (Освежитель воздуха Глейд Лемон) - 1 шт
239 Злопчинский
 
26.08.14
22:50
Следующий вопрос..?
Топичи клаву быстрее мне на автобус бежать...
240 bahtik
 
26.08.14
22:51
(238) И как это у тебя так зарезервировалось? Ты же уже 10 лимонов зарезервировал )))
241 bahtik
 
26.08.14
22:53
(238) Теперь подумай сам, какой смысл в этом резервировании-перерезервировании? И попробуй ка написать процедуру, которая будет делать то, что ты тут написал.
242 Злопчинский
 
26.08.14
22:53
(240) ОЧЕНЬ ПРОСТО ЗАРЕЗАЕРВИРОВАЛ - У МЕНЯ НЕТ СТАТСИЧЕСКИХ РЕЗЕРВОВ.
.
взял наличные заявки в составе
Освежитель воздуха, Глейд, <Пусто> - 15 шт.
Освежитель воздуха, <Пусто>, Лемон - 1 шт.
.
и "разнес" их на складские остатки.
.
243 bahtik
 
26.08.14
22:55
(242) Ты же сам себе противоречишь. Что значит "разнес их на складские остатки"? Это и есть твои "статические резервы", как ты выражаешься.
244 Злопчинский
 
26.08.14
22:55
(241) ну по крайне мерея я написал что нужен некий алгоритм, который будет делать таое "резервирование".
.
от тебя пока что не дождался раскладки - по товему примеру - распиши, как ты будешь резервировать.
.
у меня Просчет1 и просчет2 - это "процедура", которая возвращает нужджный ОПТИМАЛЬНЫЙ результат.
.
жду от тебя варианта товего
245 bahtik
 
26.08.14
22:56
(242) И повторяю - напиши ка процедуру, которая будет это делать. Тогда до тебя точно должно дойти, в чем проблема.
246 bahtik
 
26.08.14
22:57
(244) Ты вообще соображаешь, что пишешь? )))) Я эту тему начал с вопроса: "подскажите, какой должен быть алгоритм, чтобы это реализовать". А ты мне отвечаешь: "Должен быть какой-то алгоритм ))))
247 bahtik
 
26.08.14
23:01
В общем, вопрос ты уже, кажется, начинаешь понимать. Я надеюсь. Если напишешь процедурку, то еще и 100 баксов заработаешь ))
248 bahtik
 
26.08.14
23:02
Но лучше беги на автобус, а то опоздаешь ;)
249 roman52
 
26.08.14
23:33
а хорошо ведь вбросил, вон сколько алгоритмов предложили )))

по теме: время жизни у резерва какое?
250 Злопчинский
 
27.08.14
00:32
(245) фигли тебе подсказывать - когд анаичнешь тебе верхние слои алгоритма разъяснять - ты орешь что мы все тупые и нихрена не понимаем... ;-)
251 Злопчинский
 
27.08.14
00:39
у тебя в (63) написано: "Задача в том, что мы не ставим в резерв конкретных ТМЦ.."
.
ну и у меня так же:
Заявка1, "Освежитель воздуха, Глейд" - 05 шт
Заявка1, "Освежитель воздуха, Глейд" - 10 шт
Заявка2, "Освежитель воздуха, Лемон" - 01 шт
.
то что я к этим НЕКОНКРЕТНЫМ тмц в скобочках указал наши конкретные ТМЦ - так это просто полезный бонус, который мне облегчит жизнь...
.
и то что у тебя описывается словами типа "...мы понимаем, что можем обеспечить заявку клиента" - у меня "реализует" процедура "Пересчет".
.
Я надеюсь ты как-то предполагаешь/предполагал фиксировать то, что ты "понял, что способны удовлетворить заявку"..? - да, каким-то способом скорее всего делаешь это. Я тоже такое "понимание" фиксирую - так как это описано в (234). С каждой пришедшей заявкой я снова делаю попытку понять, могу ли я удовлетворить новую пришедшую заявку - и снова такое понимание "фиксирую". если таковое "понимание" тем или иным образом не фиксировать - придется делать как минимум на один расчет больше - придется делать расчет при оформлении отгрузки - тогда ведь какими-то общими резервами не обойдешься - придется грузить вполне конкретную номенклатуру. а опыт показывает что клиентура ждать вообще не любит - ни 5 минут, не 10, ни вообще даже 2 минуты. ей возьми и положь прямо сейчас...
.

.
252 Злопчинский
 
27.08.14
00:43
(247) 100 убитых енотов мне погоды не делают, я такие суммы трачу обычно не глядя... так что за тарелку супа - ты вон к vde69 стучись - он в теме, сделает тебе за 100 бакинских...
.
или вот rsergio обещал по быстрому запросец наклепать...
.
а если не осилишь - тады уже стучись... будет время - повертим задачу (хотя я сильно осмневаюсь что уменя будет свободного времени, своей работы хватает).
.
Но такие задачки - интересные, оживляют нашу серую 1сную жизнь...
253 Злопчинский
 
27.08.14
00:46
(249) гораздо интереснее -
1. каково среднее суммарное количество позиций всех активных заявок клиентов, которые одновременно могут стоять в у нас в "резерве" и
2. каков средний размер в строках одной заявки клиента...?
3. каков средний темп поступления заявок клиентов (считаем что совпадает с темпом отгрузок) и поступленйи товаров..?
254 vde69
 
27.08.14
08:22
(252) примерную оценку я озвучил в начале ветки, это от 50 до 100 тр, так, что 100 бакинских тут катит только если есть чисто спортивный интерес....

(253) о чем я твержу уже 3 дня, конкретика решения СИЛЬНО будет зависить от предпологаемых объемов. Например ту-же задачу рюкзака (которую хдесь обязательно нужно решать) для 100 заявок можно решать перебором, а для 10 000 перебор поставит базу колом...
255 rsergio
 
27.08.14
08:41
Когда я писал, что сделаю одним запросом, то не осознал еще суть задачи, когда осознал было уже поздно :)

Решил все-таки попробовать решить задачку т.к. было немного свободного времени. Разложив все на листочке и понял, что запросом точно не решить т.к. нужна вариативность, что никакими соединениями не решить.

Далее прикинул как решать задачу математически. Берем остатки, откидываем точные резервы (где указан ТМЦ и ВариантТМЦ), откидываем общие резервы (где ничего не указано) и строим таблицу пересечений ТМЦ и ВариантаТМЦ.
Далее задача сводится в нахождении таких резервов, которые решает задачу локально без отрицательных остатков.

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

На этом моменте я понял:
- Задача не решается ни за 10, ни за 100$.
- Вроде как основную массу кода написал и уже осталось совсем немного, но предположил что это "совсем немного" может затянутся на несколько дней отладки
- Согласен с Злопчинским, что резервы нужно считать сразу же. Почему? Потому что если мы просто ответим при резервировании "Можно!", то при отгрузке не понятно "А что можно то?" И задачу нужно будет решать повторно по тому же алгоритму. С учетом, что это практическая модель, а не логическая, то думаю таких вот хитрых резервов в базе не должно быть слишком много.
- Задача изначально не жизненная. Зачем нужны такие хитрые резервы и зачем их решать именно таким способом? Я не нашел примеров из жизни когда это нужно, вернее когда без этого обойтись совсем нельзя.

В общем немного напряг мозги, за что отдельное спасибо. Но дальше лезть и добивать код уже нет мотивации :)
256 vde69
 
27.08.14
08:56
что-бы не мусолить сабж может кто попробует описать математическую модель нахождения варианта резервирования по условиям в сабже?
257 sf
 
27.08.14
09:11
(256) математическую модель? да ораторы тут на личности уже переходят, поэтому и не видят очевидного:
типовая УТ, регистр свободные остатки.
Можно делать резерв по товар+серия, Товар + <пустая серия>

Сделать контроль остатков по Количеству и Количеству по сериям сводно.
Задача в сабже отличается только тем, что надо будет добавить ресурс "сводно по виду ТМЦ"

p.s. как работает регистр "Свободные остатки" описывать не надо? )
258 vde69
 
27.08.14
09:23
(257) да пофигу на регистр, ты скажи чего ты писать будешь в резерв при таком заказе

ВидТмц=Шампунь
Номенклатура=Неопределено
Количество=100

и после записи как будешь расчитывать сколько какого шампуня свободно????
259 sf
 
27.08.14
09:36
(258) не поверишь так и запишу)
хватит мыслить шаблонами. открой УТ - посмотри как сделан регистр свободные остатки и как сделан контроль.
260 John83
 
27.08.14
09:49
(5) т.е. за день работы ты готов заплатить только 100$?
261 sf
 
27.08.14
09:49
движения по регистру СвободныеОстатки (вид ТМЦ / Номенклатура):

поступление товаров - запись приход :
"Освежитель" - "Glade" - 100 шт - 100 шт


резервирование (допустим нам не важно, любой освежитель). Запись расход:
"Освежитель" - "Неопределено" - 20 шт - 0 шт

Резервирование конкретного освежителя: Запись расход:
"Освежитель" - "Glade" - 30 шт - 30 шт

Итого имеет итоговую таблциу остатков

"Освежитель" - <пусто> - 50 шт - 70 шт
"Освежитель" - "Glade" - 70 щт - 70 шт

Это значит, что мы можем зарезервировать не более 50 шт (Сводно по освежителю)

Как проверять остатки при резервировании и запросы, надеюсь не попросите писать?
262 vde69
 
27.08.14
09:51
(259) то есть ты зарезервируеш пустую номенклатуру? и как будешь получать свободный от резерва остаток если у тебя 10 разных шампуней? Ты для каждого уменьшишь остаток на 100 или еще как?

Просто опиши как это будет выглядеть в форме подбора, выбрал я любой шампунь а там факт-100 ????

Просто словами опиши что будет видеть пользователь, что-бы ему было понятно, что резерв есть, но он зависит от наличия на складе других шампуней....
263 vde69
 
27.08.14
09:56
(262)+ кстати этот вопрос относится и к автору, интересно услышать его мнение
264 fmrlex
 
27.08.14
09:57
Тут думается мне не надо хранить абстрактные заказы, а нужно сделать систему принятия решения.
Т.е. поступает заявка "Любых освежителей с запахом лимона", нужно автоматом принять решение о резерве и зарезервировать конкретный товар. Ну и приделать в форме заказа кнопку с различными стратегиями принятия решения.
265 vde69
 
27.08.14
10:00
кстати я наконец понял почему нет решения задачи, все ее пытаются решить с головы (с документа резерва), а ее нужно решать с хвоста (с пользовательского отображения резервов при подборе, отчетов по остаткам и документам списания).

автору следует продумать сначало хвост, тогда будут видны решения....
266 fmrlex
 
27.08.14
10:02
(265) "с пользовательского отображения резервов при подборе, отчетов по остаткам и документам списания"
Если хранить абстрактные заказные позиции, то там черти-что будет.
267 vde69
 
27.08.14
10:37
(266) вот это и нужно решить сначала. Без решения этой задачи в теории все остальное бесполезно.
268 fmrlex
 
27.08.14
10:40
(267) Ну вот поэтому и я предлагаю не хранить абстрактные позиции, а на этапе заказа автоматом подбирать РЕАЛЬНЫЕ позиции. Т.е. просто сделать помощник выбора по абстрактному запросу. Этим самым мы не поломаем все остальные механизмы и удовлетворительно решим задачу.
269 fmrlex
 
27.08.14
10:48
(0) Кстати, эта (268)  идея как раз и стоит 100$.
270 akronim
 
27.08.14
11:32
(268) Возможно, удовлетворительно. Но не полностью. Пример:
Освежитель Лимон 100шт
Освежитель Апельсин 100шт
Пришел заказ на 100 освежителей любых. Зарезервировалось, например:
Освежитель Лимон остаток-100шт; резерв-100шт; своб.остаток-0шт
Освежитель Апельсин остаток-100шт; резерв-0шт; своб.остаток-100шт
Пришел второй заказ Освежитель Лимон 50шт. Пересчитываем текущие заказы. Граничные два случая (между ними возможны промежуточные случаи, но к ним тот же вопрос):
А)
Освежитель Лимон остаток-100шт; резерв-100шт (по 50 шт на первый и второй заказы); своб.остаток-0шт
Освежитель Апельсин остаток-100шт; резерв-50шт (на первый заказ); своб.остаток-50шт
Б)
Освежитель Лимон остаток-100шт; резерв-50шт (на 2-й заказ); своб.остаток-50шт
Освежитель Апельсин остаток-100шт; резерв-100шт (на 1-й заказ); своб.остаток-0шт

А теперь вопрос - какие свободные остатки у нас сейчас на складе после двух резервов? Иными словами - как ответить на вопрос клиента "а какие освежители у вас сейчас доступны"?
Если резервировать РЕАЛЬНЫЕ позиции, то в случае А не увидим остаток лимонного, в Б - апельсинового. Несмотря на то, что правильный ответ (что в резерв сможем поставить) - либо 50шт одного либо 50шт другого (или 49шт одного и 1шт другого; или 48 одного и 2 другого).

В общем случае получаем, что у нас свободные остатки - не одно число на каждый товар, а хренова гора комбинаций. И, как верно тут уже заметили, начинать думать надо с этого; рассматривать какие-то частные случаи.
271 fmrlex
 
27.08.14
13:10
(270) Ну это да. Решение не идеально.
Тогда либо придется формировать заказ поставщику (в этом случае мы оставляем на складе то, что могли бы продать), либо производим переформирование заказов при поступлении заявки, что приведет к прогрессирующему усложнению пересчета при поступлении новых заявок. В любом случае нечеткие потребности это мощное усложнение алгоритмов, что будет нагружать все что можно.
Поэтому надо думать в направлении формирования четких заказов (отослали прайс покупателю, он понаделал отметок, скинул обратно, загрузили посчитали) А вот колхозные заказы по телефону: "дай мне чего-нибудь того и потом того" - это муторно и очень неоптимально.
272 fmrlex
 
27.08.14
13:12
+(271) Лучше сделать сайт с прайсиком и корзиной и плясать от этого.
273 Torquader
 
27.08.14
13:33
(270) А для этого есть система характеристик - у нас Освежитель - это товар и его у нас 200 на складе и 150 в резерве. А требует ли резерв точного указания характеристики или нет - это уже вопрос к реализации.
Просто, если мы вводим аналоги, характеристики и т.п., то потом может оказаться, что для кого-то кипятильник и утюг - это аналоги.
Поэтому, или точный резерв по конкретным позициям, а в случае приближённого - списание "по среднему", то есть чтобы конечные резервы всех аналогов оказывались наиболее близки друг другу, или использование характеристик и аналогов и куча головной боли с проверкой доступности товара.
274 Злопчинский
 
27.08.14
14:28
(255) спсб, я рад что наши оценки совпадают
275 Злопчинский
 
27.08.14
14:36
(254) тут не столько количество заявок, скольок суммарное количество строк в живых заявках
276 akronim
 
27.08.14
14:39
(273) "у нас Освежитель - это товар"
Ненене. По условию задачи у нас Освежитель - это номенклатурная группа, а Лимон и Апельсин - это разные товары. С разными ценами, производителями, поставщиками, артикулами, фасовкой, объемом, еще один из них - российского производства, а другой - ЕС. И у каждого из них еще по нескольку характеристик.
"его у нас 200 на складе и 150 в резерве"
Ага. Вот только как без точного резерва точно сказать, какие запахи доступны для продажи у этих 50 свободных штук?
Как-то не вижу я решения без точного резерва. Надо у того товарища спросить, который ут 10 предлагал.
277 Злопчинский
 
27.08.14
14:39
(268) не прокатит. если не "хранить "где-то абстрактные позиции - не удастся выполнить максимальное обеспечение отгрузок или таковое обеспечение сожрет существенно больше ресурсов
278 Злопчинский
 
27.08.14
14:49
(270) > А теперь вопрос - какие свободные остатки у нас сейчас на складе после двух резервов?
.
Свободные остатки у нас на складе - ответ на этот вопрос несущественен в рамках рассматриваемой задачи. Так как клиента интересуют не конкретные позиции, а "обощенные" хотелки...
.
> "Иными словами - как ответить на вопрос клиента "а какие освежители у вас сейчас доступны"
- в рамках того как я описывал (с фиксацией к обощенной хотелке клиента конкретной номенклатуры, закрепившейся к обобщенной) - ответ дается практически мгновенно - достаточно снять обычный отчет по свободным остаткам - только потому что в вопросе максимальная степень обобщенности "Освежители".
.
А вот ответ на вопрос "у вас есть освежители Глайд" - потребует пересчета "резервов" (без запоминания варианта расчета) - потому что это даже не фиксация хотелки клиента. И если через 5 минут клиент созреет для заказа - может оказаться что фиг вам - "Освежитель Глейд" - уже будет недоступен для этого клиента (как в ситуации с обычными резервами на обычные товары)
279 Torquader
 
27.08.14
14:49
(276) Если товары разные, то поставить в резерв "сферического коня в вакууме" нельзя, даже если у них одинаковая цена.
Просто тогда задача похожа на "у меня есть 3 тыс.рублей - поставьте мне что-нить в резерв на эту сумму - я приеду и заберу" - для конечного покупателя, конечно, абсурдно, а для оптовиков - вполне себе.

Не забываем, также, что резервы бывают "мягкие" и "жёсткие" - если выставлен счёт, то всё, что по счёту должно быть в жёстком - если резерв ещё до выставления счёта, то он "мягкий" - так сказать - меняемый.

А если выставляется счёт, то в нём должны быть конкретные позиции.
280 Злопчинский
 
27.08.14
14:58
(271) > Поэтому надо думать в направлении формирования четких заказов
.ясен пень - клиен прислала какие-то общие хотелки, а мы зарезервировали конкретные номенклатуры - так бы было зашибись... Однако у топикстартера - одно из требований к алгоритму - максимальное удовлетворение заявок, а это можно обеспечить только при полном пересчете всех текущих "резервов" при поступлении новых заявок.
.
Вдобавок надо иметь в виду - клиент прислал заявку, мы ее обощенно зарезервировали - ага... 30 тыс (если танцевать от фиксированных позиций, соответсвующих обобщенным). Клиент приезжает - оказывается что нифига не 30 тыс, а 40 - потому что пока ехал - куча заявок пришла от клиентов и вся ситуация с резервирвоанием обобщенных - поменядась... Такой вариант может быть неудовлетворительным. А это значит, что после соглдасования суммы - обобщенный заказ превращается в менее обощенный - при пересчете позиции можно менять примерно на такие же по цене.
.
ясен пень, если клиента сумма заказа как таковая не волнует вообще, вплоть до момента получения товара - все гораздо проще - считаем сумму по факту отгрузки... но тут ооооо!!! открывается море перспектив - клиенту сразу втюхиваем максимально дорогой/с наибольшим доходом товар (это второе условие оптимизации после макисмального обеспечени язаявки)...
.
;-)
281 Злопчинский
 
27.08.14
15:00
(279) я думаю что до счетов у ТС вряд ли дело доходит.. ;-) скорее всего  это "большой ларек" куда приезжают затариваться всякие ларечники/ипшники... по факту...
282 fmrlex
 
27.08.14
15:04
(279) Поэтому пусть делают сайт или пускают в базу покупателей и пусть себе набирают чего хотят.
283 Ненавижу 1С
 
гуру
27.08.14
15:05
1. Выкинуть первый справочник нах
2. Третий подчинить второму
3. У второго добавить булев реквизит: УчетПоВариантам, если Истина, то вариант указывать обязательно
284 fmrlex
 
27.08.14
15:06
(283) Ну все. 100 баксов теперь точно твои.
285 akronim
 
27.08.14
15:09
(278) Читая твои посты, я ощущаю себя сказочно тупым.
"ответ дается практически мгновенно - достаточно снять обычный отчет по свободным остаткам - только потому что в вопросе максимальная степень обобщенности "Освежители""
Вот у меня в 270 маленький пример. Какой отчет может показать доступные для покупки освежители в разрезе запахов - учитывая 51 разную комбинацию ??
286 Torquader
 
27.08.14
15:23
На самом деле, все "замечательные" рассуждения - только на тот случай, когда работает один (или несколько менеджеров) - если их становится много, то может получаться так, что на этапе добавления в документ товар был, а на этапе проведения резерва - уже нет.
И решение проблемы как сделать так, чтобы максимально соответствовать реальным остаткам на момент подбора - тоже не очень простая.
287 Злопчинский
 
27.08.14
15:25
(285)не гони волну ;-) в твоем вопросе изначально было ""а какие освежители у вас сейчас доступны"? - про "в разрезе запахов ничего сказано не было...
.
> "Какой отчет может показать доступные для покупки освежители в разрезе запахов" ?? - тривиальный отчет: "выдергиваем" все наши конкретные существующие товары, которые подходят под шаблон "Освежитель+Запах", сворачиваем их до уникальных кортежей "Освежитель+Запах", из полученного перечня формируем псевдозаявку клиента, натравливаем на нее наш красивый алгоритм "пересчета/резервирования" - получаем ответ в виде аналогичном проводящемуся штатно резеривроанию.
288 Злопчинский
 
27.08.14
15:30
(286) угу, тут извините от ЧЕТКИХ подборов и ручных действий манагеров придется отказаться. Тем или иным образом "вколотили" заявку клиенат в обобщенном виде - запулили в очередь на проведение/расчет. получили результат. Через 5 минут клиент звонит - эээ там я просил 6 освежителей.. вы это.. ну там.. вычеркните - мне надо 3 лимона + 2 яблока и обязательно один Глейд - вколотили - ушло в очередь - все "резервы" переколбасились - удалось удовлетворить - зашибись... не удалось - извините.. единсевенный выход удовлетворить клиента - предложить ему увеличит порог обобщенности - вместо 3+2+обязательно глейд" снова вернуться к "просто 6 освежителей"... или посчитать возможные варианты, близкие к затребованным кдиентом - вместо лемона - грейпфруты.. ;-)
289 Torquader
 
27.08.14
15:31
И ещё не забываем случаи, когда пересчёт одного в другое идёт не 1 к 1, например, изделие в упаковке 2, 3 или 4 (как обычно батарейки продаются).
290 Torquader
 
27.08.14
15:33
(288) Все обобщения могут быть только на стадии формирования заявки, а когда выставлен счёт, то там не может быть "шесть освежителей" - там должны быть перечислены все позиции.
291 Torquader
 
27.08.14
15:34
А вот то, что система резервирования будет показывать менеджеру аналоги существующего товара - это должно быть - иначе выбор очень сложный.
И не забываем, что склад может быть не один - поступление товара от поставщика через два дня, например, идёт в резервирование или ждём, когда товар реально приедет ?
292 vde69
 
27.08.14
15:42
(291) резиновые сапоги и калоши это аналоги???

тут вопрос сложный ними :)
293 Злопчинский
 
27.08.14
15:50
Фигли тут обсуждать...
ждем когда ТС сумку с баблом из кабинета гендира принесет..
294 fmrlex
 
27.08.14
16:01
(293) ТС похоже в срочном порядке место работы меняет.
295 akronim
 
27.08.14
17:07
(287) "в твоем вопросе изначально было ""а какие освежители у вас сейчас доступны"? - про "в разрезе запахов ничего сказано не было... "
Ах ты к словам придираешься?! Тогда я... тогда я... тоже начну, вот!
Всего два разных освежителя; разные они - запахами. Т.о. "какие" - может означать только "какие в разрезе запахов", ибо других разрезов освежителей в моем выдуманном простом примере нет.
Далее.
Ты продолжаешь заставлять меня чувствовать себя тупым. Где в процессе "выдергивания" на менеджера выскочит 51 вариант доступных товаров? При "из полученного перечня формируем псевдозаявку клиента"?
Лично мое мнение, что если эти варианты в какой-то момент на менеджера выскочат, то это будет пример решения математически верного, но в прикладном плане бесполезного. А без этого я совсем не понимаю, как реализовать подбор по свободным остаткам.
(293) Не принесет ТС от гендира ничего, кроме жалостливой истории.
296 sf
 
27.08.14
17:25
(262) (263)

да легко. форма подбора в виде:
"Товар" "запах" "Остаток своб" "остаток"
"Освежитель " "<все сорта>" 50 шт (100шт)
"Освежитель" "glade" - 50 шт (50 шт)
"Освежитель" "glade2" - 50 шт (50шт)
297 Злопчинский
 
27.08.14
18:51
(295) ямщик, не гони лошадей... ;-)
если "какие освежители доступны" - то достаточно штатный отчет по свободным остаткам с фильтром по группе/свойству "Освежитель" - тупо берем наши конкретные номенклатуры, имеющиеся на свободном остатке (куда не входят наши конкретные номенклатуры, закрепленные под резервы общих товарных позиций из заявок клиентов).
.
а если надо в "разрезе запахов" - то ответ имеет больше одного решения в общем случае (см. выше vde69 пример нескольких вариантов "общего" резервирования удовлетворяющих заявкам клиентов, но с разными нашими товарными позициями под обеспечение общих резервов) - вам какое решение вывести в ответ? есть решение которое полуучается быстро - будет один расклад по освежителям-запахам, возможны другие варианты ответов - они потребуют пересчет текущих "резервов" - вам что надо..?
298 Злопчинский
 
27.08.14
18:53
(295) на менеджера - ничего не будет "выскакивать" (если бы я делал). Потому что ненужная эта инфа.. тем более в виде "51 варпианта" - нахрена ему что-то выскакивать/показывать..? оно что будет делать - считать быстрее и лучше чем комп? - полностью уверен что нет. все что манагеры делают ручками - все криво и косячно в мегаподавляющем колве случаев. особенно при большом потоке инфы.
299 Злопчинский
 
27.08.14
18:56
.. поэтому (296) - абсолютно бесполезная инфа для манагеров, и может прокатить когда заявки состоят из 1-3 строк... при суммарном количестве "резервов" строк примерно до 15-20. да и это количество не осилят.
300 Злопчинский
 
27.08.14
18:57
Готов получить 100$ - прямо в тему обсуждения:
.
http://infostart.ru/public/295343/
301 Злопчинский
 
28.08.14
18:33
ну что там? как дела? ТС где-то потерялся...
302 Garykom
 
гуру
28.08.14
18:49
(301) и ... с ним лучше с Алгоритм нахождения подстрок в строке помогите ))
303 bahtik
 
28.08.14
19:44
(276) Совсем не так. Изначально Шампунь - это да, что-то вроде номенклатурной группы (если выражаться правильным языком, то это номенклатурная позиция). Но Лимон и Апельсин - это не разные Товары. Разные товары - это:
...
- Шампунь Лореаль Мультивитаминный 0.2 л.
- Шампунь Лореаль Мультивитаминный 0.5 л.
- Шампунь Лореаль Восстановление волос 0.2 л.
- Шампунь Лореаль Блестящие волосы 0.2 л.
...

И еще есть варианты товаров. С шампунями реального примера не приведешь, но вот, например с обувью это будет:
...
- 41 размер черные
- 41 размер коричневые
- 41 размер синие
- 42 размер черные
- 42 размер коричневые
- 42 размер синие
- 43 размер черные
- 43 размер коричневые
- 43 размер синие
...

И нет никаких "других характеристик", о которых ты говоришь.
304 bahtik
 
28.08.14
19:46
(278) Вообще ничего подобного
305 bahtik
 
28.08.14
19:47
(280) Ужасная логика.
306 bahtik
 
28.08.14
19:54
(283) Ну это стандартная структура справочников. Раньше в конфигурации именно так все и было, но понадобилось изменить структуру именно до того вида, как это сейчас (справочник "НоменклатураТМЦ" и два подчиненных ей справочника: "ТМЦ" и "ВариантыТМЦ").
307 bahtik
 
28.08.14
19:58
(292) Нет, не аналоги.
308 bahtik
 
28.08.14
20:02
(293) А ты что, решил задачу? Давай код, для тебя мне и 300 не жаль. Только вот видя твои рассуждения очевидно, что ты никогда эту задачу не решишь. Вот rsergio уже все понял. Ты пока нет.
309 bahtik
 
28.08.14
20:03
(294) С какого перепугу мне это делать?
310 Злопчинский
 
28.08.14
20:21
(305) согласен.. в (280) - можно сказать домыслы.. размышления. я такое называю "в порядке дежурного бреда".. ;-)
311 Злопчинский
 
28.08.14
20:22
(304) ничего подобного - чего именно ничего подобного?
312 Злопчинский
 
28.08.14
20:29
(308) ну-ну... мне вот понятно, что rsergio и я "думаем" эту задачу примерно одинаково... Пока что мне понятно, что ты задачу сам не понял.. бо у тебя в голове вертятся некие общие соображения по этой задаче. а конкретики - нет.
.
Задача сложности - выше средней, где-то примерно 0.75 по моей оцценке на шкале сложности. Но вполне решаема. Суперсложной математики там не будет. даже примерно понятно как ее решать. но стоит это решение не 100 и 300 бачинских - так что - как-нить без меня.. за тарелку супа трудитесь...
.
слава богу, все задачи разной сложности, которые передо мной стояли - более-менее успешно решал. надо будет мне - и эту решу.
.
А пока, вьюноша, трудитесь! труд - он облагораживает... ;-)
313 thezos
 
28.08.14
20:34
до тысячи добить решили?)
314 akronim
 
29.08.14
11:26
(303) "Я тебя полюбил - я тебя научу" (Кин-Дза-Дза, да?)
Ты придумал много собственных названий для определенных и всем известных вещей. Так вот, выражаясь ОБЩЕУПОТРЕБИТЕЛЬНЫМ языком: "Шампунь" - это номенклатурная группа; конкретный товар "Шампунь вкусный витаминный арт.7123789/123" - это и есть товар (номенклатура); а "41 размер черные" - это характеристика (справочник, подчиненный товарам). Любой, кто хоть раз открывал типовую, понимает разговор в таких терминах. Так что все у меня правильно написано.

Ты лучше на (270) ответь, на элементарном примере - как ты хочешь видеть свободные остатки после двух резервов?