Имя: Пароль:
1C
1С v8
Линейный тетрис. Посоветуйте алгоритм заполнения.
0 Румата
 
03.07.18
12:26
Доброго времени суток. Есть табличное поле, по горизонтали количество колонок в табличном поле - количество дней между начальной и конечной датой. Начальную и конечную дату выбирает пользователь. По вертикали количество строк всегда одинаковое - 120.
120 - 12-ть 5-ти секундных интервалов (минута) в периодичности 10 минут.
===============================
Есть документ с подчиненным ему регистром сведений, который закрашивает клетки. В регистре хранится дата, и координата по вертикали, которую надо закрасить. Один документ закрашивает ни одну клетку, а временные интервалы. При чем высота закрашиваемой полоски может быть больше одной клетки (1 клетка - 5 секунд, 2 клетки - 10 секунд и т.д.). Так же в документе прописывается частота выхода (1 раз в минуту, 1 раз в 2 минуты, 1 раз в 5 минут и 1 раз в 10 минут). Исходя из частоты выхода полоски повторяются, если например 1 раз в минуту, то будет 10 полосок, если 1 раз в 5 минут, то две и т.д.
==============================
Задача стоит чтобы оптимальным образом расположить закрашенные полоски, чтобы при попытке добавить ещё один документ алгоритм постарался передвинуть интервалы, не нарушая логики и воткнул на отображаемую диаграмму новый документ.
==============================
Есть мысли ? ) Спасибо заранее... ;)
1 Зуекщмшср
 
03.07.18
12:34
Линии погрузки/разгрузки автоматизируете, что ли?
2 Вафель
 
03.07.18
12:35
рисунок чтоли бы нарисовал
3 Румата
 
03.07.18
12:35
Нет, размещение рекламы. Продолжительность ролика - 5, 10, 15, 20 и т.д. секунд.
4 Румата
 
03.07.18
12:36
(Вафель) Рисунок есть, как его сюда кинуть ?
5 Вафель
 
03.07.18
12:37
(4) кинь куданибудь, а сюда ссылку
6 Румата
 
03.07.18
12:38
7 Вафель
 
03.07.18
12:39
(6) Это то что должно быть?
8 Румата
 
03.07.18
12:45
(Вафель) Все что на рисунке уже реализовано в 1С. Теперь если звонит клиент менеджеру и говорит что он хочет разместить рекламу с такой-то то даты по такую и продолжительностью ролика например 10 секунд (2 клетки по вертикали) программа должна проанализировать свободные клетки, если надо передвинуть полоски с учетом периодичности выхода в эфир (1 раз в минуту, 1 раз в 2 минуты) и нарисовать ещё одну полоску для нового ролика, если его размещение возможно ...
9 Малыш Джон
 
03.07.18
12:47
(0) условия противоречивые

если группировать так, чтобы в случае добавления нового, можно было просто сдвинуть старое, тогда старое изначально нужно группировать с учетом "резерва" места под новое, а это уже не оптимально на этапе формирования старого. Т.е. с каждым новым документом оптимальная конфигурация будет всякий раз разная, что не позволит её изменять просто сдвиганием.
10 Румата
 
03.07.18
13:13
(Малыш Джон) Нельзя изначально правильно сгруппировать, т.к. не понятно какой интервал по времени, какой продолжительностью и с какой периодичностью следующий клиент закажет ролик. По логике вроде надо все занятый полоски рисовать без пропуска, чтобы осталось больше места для размещения следующего контента , но может случится так, что полоски надо будет передвинуть, чтобы следующий ролик поместился. Если надо могу пример придумать когда должна сработать логика размещения, а не просто их все вместе группировать без пропусков и все будет хорошо )
11 Малыш Джон
 
03.07.18
13:26
(10) так я ж тебе это и написал. У тебя же не останавливается процесс. Поэтому и подобрать оптимальный вариант нельзя. Сейчас подберешь, а следующий ролик будет такой, что тебе весь оптимальный вариант придется переделывать.

у тебя критерии задачи не определены. тебе надо сформулировать точнее(для себя, в первую очередь), что именно надо, а потом уже пытаться придумать алгоритм. А сейчас ты время просто теряешь.
12 Румата
 
03.07.18
15:33
(Малыш Джон) Я уже сформулировал. Надо чтобы при попытке засунуть новый ролик программа автоматически подбирала не занятое место для него, передвигая остальные, если это необходимо. И говорила о невозможности размещения ролика, если размещение его не удалось.
13 Малыш Джон
 
03.07.18
15:48
(12)  ну это же не критерий - расположить так, чтоб меньше двигать.
Распределяй значит разные куски как можно равномернее между вертикальными строками, тогда по горизонтали будет свободного места больше оставаться, далее сможешь кусок побольше впихнуть.
14 Румата
 
03.07.18
15:52
Начальник отдела просит автоматизацию процесса ) А я пока не понимаю какой алгоритм использовать ) На словах оно вроде не сложно, а вот на деле - другое дело.