Здравствуйте, есть задачка:
- имеется БД с данными: рабочий, скорость сборки детали, номер конвеера (1-100), количество деталей на конвеере и 2 ТЗ - кто работает и какие конвееры работают.
- надо оптимально распределить рабочих по конвеерам, чтобы максимально быстро все собрали
пока делаю так:
Но это не оптимальное распределение, а просто распределение по скорости сборки. Т.е. просто равномерно распределит всех работников по всем конвеерам с учетом скорости.
Предложения?
- имеется БД с данными: рабочий, скорость сборки детали, номер конвеера (1-100), количество деталей на конвеере и 2 ТЗ - кто работает и какие конвееры работают.
- надо оптимально распределить рабочих по конвеерам, чтобы максимально быстро все собрали
пока делаю так:
Запрос = Новый Запрос ("ВЫБРАТЬ ПЕРВЫЕ 1
| РабСрезПоследних.Раб КАК Рабочий,
| РабСрезПоследних.Конвеер КАК Конвеер
|ИЗ
| РегистрСведений.Раб.СрезПоследних(
| &Период,
| Конвеер = &Конвеер
| И НЕ Раб В (&ЗанРаботники)) КАК РабСрезПоследних
|
|УПОРЯДОЧИТЬ ПО
| РабСрезПоследних.СкоростьСборки");
ТЗРабЗаняты = Новый СписокЗначений;
ТЗРабЗаняты.Очистить();
СчРаб = 0;
Пока СчРаб<ТЗРаб.Количество() Цикл
Для Каждого ТекКовнвеер из ТЗКонвееры Цикл
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Конвеер", ТекКонвеер.Конвеер);
Запрос.УстановитьПараметр("ЗанРаботники", ТЗРабЗаняты);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщить("Для конвеера: " + ТекКонвеер.Конвеер +" не подобрали Работника!");
Продолжить;
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Сообщить("Для Конвеера: " + ТекКонвеер.Конверр + " подобрали работника: " + Выборка.Рабочий);
ТЗРабЗаняты.Добавить(Выборка.Рабочий);
СчРаб = СчРаб+1;
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Рабочий",Выборка.Рабочий);
НайденныеСтроки = Текущий.НайтиСтроки(ПараметрыОтбора);
Если НайденныеСтроки.Количество()>0 Тогда
Для Каждого ТекСтр из НайденныеСтроки Цикл
ТекСтр["Место"+ДеньМесяца] = ТекКонвеер.Конвеер;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
ПоказатьНо это не оптимальное распределение, а просто распределение по скорости сборки. Т.е. просто равномерно распределит всех работников по всем конвеерам с учетом скорости.
Предложения?
По теме из базы знаний
- Понимание и использование параллелизма в SQL Server
- 1С:Управление металлургическим комбинатом 2. Модуль для 1С:ERP
- 1С:Хлебобулочное и кондитерское производство. Модуль для 1С:ERP и 1С:КА
- 1С:Бухгалтерия птицефабрики
- 1С:Управление строительной организацией. 1С:ERP Управление строительной организацией 2
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот