УМП - Универсальный механизм планирования

Лекарство от боли планирования в 1С.

Арт.: 690271

Лицензии

120000 руб.

Услуги

3500 руб.

Область применения

Универсальный механизм планирования, или УМП – это абстрактный движок, решающий задачи произвольного планирования произвольных потребностей с произвольным учетом произвольных ресурсов. УМП - это инструмент для программиста, а не для пользователя. 

Что такое вообще планирование?

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

Разложим по полкам:

  • Это процесс, или действие;
  • На входе этого процесса есть цели (чего хотим достичь);
  • На входе есть ресурсы, которыми мы располагаем;
  • Внутри процесса цели как-то сопоставляются с ресурсами;
  • На выходе дает, как минимум, два результата:
    • Распределенные ресурсы, т.е. информацию о целях, которые достигаются имеющимися ресурсами;
    • Цели, которых не достичь имеющимися ресурсами, или просто список дефицитных ресурсов;
  • Превращает оба результата в задачи:
    • По освоению/использованию имеющихся ресурсов;
    • По пополнению имеющихся ресурсов, если это возможно.
 
 Пример

 

Алгоритм работы УМП

  1. Берем из информационной базы все, что считаем потребностями;
  2. Берем из информационной базы все, что считаем ресурсами;
  3. Распределяем ресурсы по потребностям так, как сочтем нужным.

Получаем:

  1. Закрытые и незакрытые потребности;
  2. Использованные и неиспользованные ресурсы;
  3. Таблицу распределения ресурсов по потребностям.

Это базовый, описанный крупными мазками алгоритм. Как видите, он очень похож а определение планирования из Вики. Но это – случайное совпадение. Определение из Вики я прочитал месяц назад, а УМП существует уже более 10 лет.

Источники данных

УМП – это инструмент и его настройка основана на схемах компоновки данных (СКД).

С помощью СКД определяются потребности и ресурсы, с помощью СКД они друг с другом сопоставляются.

Для хранения СКД используется справочник «Источники данных».

Для того, чтобы описать, как формируется потребности, достаточно создать элемент справочника «Источники данных», открыть в нем редактор СКД, написать требуемый запрос и заполнить настройки компоновки (выбранные поля, параметры, отбор и т.д.)

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

Если разработчик хочет все потребности описать одним запросом – на здоровье. Если хочет один регистр (заказы покупателей, например) выбирать тремя запросами, меняя только отбор или сортировку – УМП не против.

Главное, что следует помнить при делении источников – в их разрезе настраивается сопоставление. Это станет понятно из дальнейшего изложения.

 
 Требования УМП к схеме компоновки

 

Демонстрация ПО

Видео с встраиванием УМП в УПП, настройкой профиля и ретроспективным пересчетом, создается готовое решение, для простого случая расчета обеспеченности.

Настройки сопоставления

Когда у нас есть источники потребностей и ресурсов, нам нужно их сопоставить. Цель сопоставления – сказать движку, какие строки ресурсов подходят для данной строки потребностей.

Принципиально варианта два: простой и через СКД.

Простой вариант – это равенство некоторых полей потребности и ресурса. Например, равенство номенклатуры и характеристики. Если же при учете по характеристикам оставить только равенство номенклатур, то получится автоподбор характеристики.

Каждая настройка сопоставления хранится в отдельном элементе справочника «Источники данных». Сама по себе настройка – абстрактна, она ничего не знает об источниках потребностей и ресурсов, которые будет сравнивать.

Выбор варианта сопоставления находится в форме элемента источника данных:

Простая настройка сопоставления настраивается на закладке:

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

В схему компоновки данных, которая выполняет сопоставление, передается:

  1. Текущая строка потребностей;
  2. Данные о свободных ресурсах.

На выходе схема должна вернуть строки ресурсов, которые подходят для данной строки потребностей. Дальше движок сам подберет из этих строк нужное количество.

С передачей строки потребностей все просто – передаются значения всех ее полей в виде параметров СКД. Такой подход позволяет избежать использования наборов данных-объектов, которые неудобно соединять с обычными запросами.

Соответственно, нужно лишь написать запрос, который по значениям параметров выберет подходящие ресурсы.

Сопоставление потребностей и ресурсов выполняется многократно, для каждой строки потребностей. При этом свободные ресурсы на каждой итерации могут уменьшаться (если они отдаются под данную потребность). Значит, СКД сопоставления должна получать актуальные данные о ресурсах в ходе выполнения сопоставления.

Передать большую таблицу ресурсов в виде параметра СКД нельзя, наборы-объекты использовать неудобно, поэтому пришлось выкручиваться.

Решение – простое и вроде шуршит с приемлемой скоростью: независимый регистр сведений с коротким набором измерений и ресурсов – «Данные УМП». Запись в него ведется на каждой итерации, в которой был потреблен какой-нибудь ресурс.

Чтобы не таскать с собой сложную структуру данных с восемью Аналитиками, я сделал проще – связь через идентификаторы. Каждая строка ресурсов (впрочем, как и потребностей) при заполнении из источника данных маркируется строковым уникальным идентификатором, те же идентификаторы сохраняются в табличной части «Результаты планирования», что позволяет легко собирать отчеты по таблицам УМП. Когда попробуете, то убедитесь в этом.

Вернемся к регистру сведений «Данные УМП». Каждая итерация сопоставления оставляет в нем след – меняет количества тех ресурсов, которые были потреблены. Теперь понятно, как собрать в запросе сопоставления ресурсы: аналитики взять из документа, а остаток количества из регистра. Документ перед планированием в обязательном порядке записывается, поэтому все данные об аналитиках ресурсов в нем всегда актуальны.

Выглядит страшновато, поэтому я снабдил справочник Источники данных шаблоном настройки, который сделает типовую схему за вас:

Сам запрос не пишу здесь, он длинный из-за полного перечисления всех восьми аналитик. Но в итоге запрос из шаблона содержит готовую настройку сложного сопоставления – нужно только добавить свои условия, которые скажут УМП, какой ресурс подходит для строки потребностей.

Схема компоновки сопоставления так же должна возвращать плоскую таблицу, но колонок требуется всего три:

  1. «ИдентификаторРесурса» (из регистра сведений «Данные УМП»), дальше УМП сам найдет конкретную строку ресурса;
  2. «Количество» - количество ресурса, которое доступно к использованию;
  3. «ЗакрываемоеКоличество» - какое количество потребности закроется указанным количеством ресурса.

Вот это достаточно интересное место, оно позволяет делать пересчет количества. Банальный пример – пересчет количества ресурса в единицу измерения потребности, причем произвольным образом – так, как считаете нужным.

Последнее, что стоит отметить про настройку сопоставления – тип результата, который указывается в источнике данных:

Это простой справочник, который позволяет разделить способы обеспечения, чтобы потом использовать эту информацию в отчетах.

Поясню на примере.

Есть у нас потребности – заказы покупателей, ресурсы – остатки на складах, и две настройки сопоставления – простая по равенству номенклатуры и сложная, с учетом аналогов.

После выполнения сопоставления результат работы обеих настроек будет выглядеть одинаково – такая-то строка потребностей берет такую-то строку ресурсов. Как теперь понять, что подошло один к одному, а что в качестве замен? Ответ – по типу результата.

В первом случае он будет «Взять со склада», во втором – «Взять со склада, оформить замену».

Разумеется, это опциональный механизм: хотите – пользуйтесь, не хотите – оставляйте тип результата пустым, или одинаковым для всех настроек сопоставления.

Профили

Теперь все наши источники данных – потребности, ресурсы, настройки сопоставления – надо собрать в кучу, чтобы получалась общая схема, или профиль планирования. Сборка идет в справочнике «Профили УМП».

Профиль – это основной разделитель УМП, своего рода сценарий и алгоритм планирования в одном лице. Каждый профиль – это отдельный вид планирования, который живет по своим правилам и служит своим целям.

Один профиль может планировать закупки, второй – деньги, третий – работу программистов, четвертый – те же закупки, только в более пессимистичной настройке.

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

Итак, первая закладка профиля – источники потребностей:

 
 Подробно 

 

Документ УМП

Документ УМП выполняет, собственно, планирование.

Структура основных метаданных документа:

  1. В шапке указывается профиль, по которому будет планироваться;
  2. Табличные части «Источники потребностей», «Источники ресурсов», «Настройки сопоставления» - полностью копируются из профиля;
  3. «Потребности» - табличная часть, в которую помещаются все потребности, вычисленные профилем. Тут мы видим, что появляется «Идентификатор потребности». Также видим, что в каждой строке потребностей сохраняется источник данных, который эту строку посчитал;
  4. «Ресурсы» - аналогично. В эту табличную часть помещаются все ресурсы, которые вернул профиль;
  5. «Результаты планирования» - табличная часть, в которую пишется результат сопоставления потребностей и ресурсов. Каждый результат планирования содержит в себе все реквизиты и строки потребностей, и строки ресурсов. Это избыточно, но очень удобно при разработке отчетов.

Видя метаданные документа, вы понимаете, что с ним легко работать. Алгоритм простой:

  1. Указываем профиль, он предлагает заполнить настройки – соглашаемся;
  2. На закладке «Потребности» нажимаем «Заполнить» - заполняется табличная часть «Потребности»;
  3. На закладке «Ресурсы» нажимаем «Заполнить» - заполняется табличная часть «Ресурсы»;
  4. Нажимаем «Выполнить планирование» на основной панели формы – УМП выполняет сопоставление и заполняет табличную часть «Результаты планирования».

Все, можно смотреть результаты. Если что-то не понравилось – смотрим/проверяем профиль, источники данных, снова заполняем документ

Так выполняется отладка профиля. Когда результат вас устроил, можно переводить профиль в автоматическое выполнение.

При выполнении планирования в табличных частях «Потребности» и «Ресурсы» меняются значения только в трех колонках – «Осталось», «Хватает» и «Еще есть». Тут все просто:

  1. При начале планирования «Осталось» устанавливается равным колонке «Количество»;
  2. Когда потребность при сопоставлении уменьшается, это отражается в колонке «Осталось»;
  3. Аналогично, когда ресурс используется, у него «Осталось» тоже уменьшается;
  4. Флаг «Хватает» взводится у потребности, которая закрылась полностью;
  5. Флаг «Еще есть» взводится, если ресурс использован не полностью.

Последние два флага – чисто для отладки, чтобы можно было быстро фильтровать табличные части.

Автоматическое выполнение

Настройка автоматического выполнения находится в профиле:

Просто взводим флаг и настраиваем расписание регламентного задания. Я в своей практике использовал две основные частоты – 15 минут и 1 час. Чаще необходимости не было, т.к. частота изменения данных в источниках была схожей.

Автоматическое выполнение работает просто:

  1. Регламентное задание запускается и ищет документ УМП с нужным профилем за текущий день;
  2. Если документ есть, он перезаполняется;
  3. Если документа нет, он создается и заполняется;
  4. Заполнение документа стандартное:
    1. В документе указывается профиль и перезаполняются настройки;
    2. Заполняются потребности и ресурсы по профилю;
    3. Выполняется планирование (как мы это делали вручную, нажимая на кнопку);
  5. Документ проводится текущей датой и временем.

При проведении документа УМП, в зависимости от настроек, выполняются движения по нескольким регистрам.

Движения УМП

Первый регистр – это регистр сведений «Результаты УМП». В него просто записывается табличная часть «Результаты планирования».

Движения в нем появляются, если в документе УМП стоит флаг «Фиксировать результат». Когда УМП выполняется автоматически, этот флаг взведен всегда.

Второй регистр – самый интересный и полезный, это остаточный регистр накопления «Дефициты УМП». Движения в нем появляются, если взведен флаг «Записывать дефициты в регистр» в профиле.

В этом регистре хранятся остатки и динамика изменения незакрытых потребностей.

Работает он интересно, но просто. Как вы заметили, каждый документ УМП – самодостаточный. Он содержит в себе все текущие потребности, все текущие ресурсы, и все результаты распределения ресурсов по потребностям.

Соответственно, он содержит в себе все дефициты, до единого.

Но документ не может ответить на вопрос – как изменились дефициты со вчерашнего дня, или за месяц. Для ответа на этот вопрос и служит регистр «Дефициты УМП».

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

Например, если проводится первый документ по профилю, то в регистр попадут все дефициты, потому что документ – первый, не с чем сравнивать.

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

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

Если увеличился ресурс – например, появился новый заказ поставщику или был приход на склад – и в нем разместились дефицитные позиции – то появятся расходные движения по регистру.

В итоге:

  1. Если просто взять остатки регистра «Дефициты УМП», то мы всегда видим актуальные дефициты;
  2. Если вы возьмем обороты регистра «Дефициты УМП», то увидим динамику изменения дефицитов.

Динамика изменения дефицитов – это полный кайф, особенно если выводить ее в виде графика.

Но это еще не все. Когда у вас начнут считаться дефициты, у вас появятся правильные вопросы: а как давно эти дефициты возникли? Можно их сгруппировать по срокам возникновения, как мы это делаем с запасами и дебиторской задолженностью?

Регистр «Дефициты УМП» ответит на эти вопросы, потому что в нем реализован партионный учет. Одно из измерений регистра – «Документ дефицита». Когда дефицит возникает в первый раз, делается приход в регистр и документ дефицита становится  равен тому документу УМП, который обнаружил дефицит.

Соответственно, в остатках регистра этот дефицит будет храниться в разрезе партии – документа УМП, который его нашел и плюсанул.

Когда один из последующих УМП обнаружит уменьшение этого дефицита, он сделает расходную запись именно по такой партии, которая была на остатках.

В общем, вы и так знаете, что такое партионный учет, это ровно он.

Последний регистр – «Свободные ресурсы УМП», полный аналог «Дефицитов УМП», только для ресурсов. Хранит в себе те ресурсы, которые не были полностью использованы при распределении по потребностям.

Движения в этом регистре появляются, если взведен флаг «Записывать свободные ресурсы в регистр» в профиле.

Этот регистр появился не так давно, сам я не накопил большой практики его использования. Мне он был нужен для трех целей:

  • Определения ненужных заказов поставщикам – когда снабженцы заказывают что-то, не нужное никому;
  • Чрезмерные заказы поставщикам, когда заказать нужно 100, а заказывают 1000, нарушая бизнес-процесс и замораживая деньги. Партионный учет в свободных ресурсах точно также позволит понять, как давно этот излишек появился. А это уже, ни много ни мало, срок возникновения замороженных денег;
  • Для вычисления неликвидов – позиций на складе, которые долго лежат без движения и никому не нужны.

Последовательное выполнение профилей

Бывает такая ситуация, когда одно планирование зависит от результатов другого планирования. Причем, использоваться может все, что есть в документе УМП – результаты, незакрытые или закрытые потребности, неиспользованные или использованные ресурсы и т.д.

Для разрешения таких ситуаций служит последовательное выполнение профилей. Настраивается в профиле, который будет выполняться первым:

Работает очень просто:

  1. После автоматического выполнения любого профиля система смотрит, нужно ли после него выполнять еще профили;
  2. Если нужно – выполняет их последовательно (как будто его вызвало регл.задание);
  3. Если у какого-то из выполняемых профилей тоже есть последующие, то они выполнятся;
  4. Если встретилось зацикливание, то сработает проверка и второй раз один и тот же профиль планироваться не будет.

Как обращаться к результатам выполнения предыдущих профилей, вы уже понимаете – через СКД. Когда профиль отработал, у нас в информационной базе есть проведенный документ УМП – его можно читать запросом, его движения тоже.

Зачем может понадобиться последовательное выполнение? Когда начнете активно использовать УМП, вам это станет понятно.

Приведу простой пример из своей практики – планирование производства в разрезе заказов на производство. Чтобы запустить заказ на производство в работу, нужно знать, обеспечен он полностью или нет. Получается простая схема. Первый профиль считает обеспеченность заказа на производство материалами на складах. Потребности – это материалы заказа на производство, ресурсы – остатки на складах.

Результат – обеспеченность по каждой позиции заказа на производство. Сворачиваем ее по заказу, и получаем ответ на вопрос – обеспечен заказ на производство целиком, или нет.

Эту информацию используем во втором профиле. Там в качестве потребностей используется уже продукция заказов на производство, которые мы просто фильтруем в запросе – мы ведь знаем, какие заказы на производство обеспечены материалами, а какие нет.

Типы аналитик

 Каждое поле Аналитика имеет один и тот же тип - Характеристика.ВидыАналитикУМП. Это такой план видов характеристик, типы данных которого вы можете менять в конфигураторе так, как вам угодно.

Когда я делал УМП, еще не было определяемых типов, да и не работают они в режиме совместимости (а УПП есть и будет в таком режиме).

Была мысль сразу поставить тип «Любая ссылка», но вы знаете, что это так себе решение – при добавлении или удалении любого объекта метаданных и обновлении конфигурации базы данных будет выполняться реструктуризация документов и регистров УМП, и вас это будет бесить.

Поэтому сразу ставьте в плане видов характеристик «Виды аналитик УМП» те типы, которые вам нужны, а потом всегда можете расширить.

Установка

Устанавливается УМП сравнением/объединением конфигураций. Все объекты УМП объединены в одну подсистему «УМП» - просто ставьте по ней отбор и заливайте.

Никакие объекты типовой конфигурации не затрагиваются.

УМП подходит для любой конфигурации на платформе 8.2.19.130 и старше.

Единственное – для настройки источников данных нужно будет запускать 1С в толстом клиенте, но это вроде не большая проблема. После настройки УМП будет работать на сервере, в регламентных заданиях, визуально с ним работать не нужно будет – только в отчетах.

Отчеты

В УМП никогда не было встроенных отчетов, потому что всякое планирование уникально. Заранее не известно ни количество аналитик, ни их имена, ни профили, ни даже назначение отчетов.

Поэтому мои усилия были сосредоточены на движке, который будет правильно считать, и на структурах данных, по которым другие программисты смогут быстро сделать отчет на СКД.

Но собираясь опубликовать УМП, я решил включить в него один демо-отчет, который наиболее часто требуется в реальной практике – «УМП Дефициты». Отчет рабочий, им можно пользоваться, но я рекомендую сделать свои отчеты (например, скопировав и доработав мой).

Лично я почти все отчеты по УМП делал в справочнике «Произвольные отчеты» в УПП – просто, быстро и можно на этапе разработки использовать данные информационной базы, а не только метаданные, как в конфигураторе. Использование данных крайне важно и полезно при работе с УМП – это ведь кастомизация на лету.

Отчет «УМП Дефициты» показывает незакрытые потребности во всей их аналитике. Вот пример по заказам и номенклатуре:

Если убрать заказы и оставить только номенклатуру, то получится простой плоский список того, что нужно купить:

Отчет «УМП Дефициты» - это просто остатки регистра накопления «Дефициты УМП». Блин, зеркальная тавтология, только сейчас заметил.

У качестве эксперимента я встроил в этот отчет автоматическую деуниверсализацию – избавление от неиспользуемых в профиле.

Когда у вас настроен профиль, вы заходите в отчет, указываете там свой профиль, и жмете кнопку «Все действия» - «Деуниверсализация».

Разумеется, это просто пример. Когда вы начнете работать с УМП, вы сделаете намного более качественные и понятные отчеты.

В своей практике я сделал десятки отчетов по УМП, с самым разным назначением. Наверное, сделаю отдельную публикацию про отчеты по УМП – покажу, какими они бывают, как их использовать, какие приживаются, а какие – нет.

 
 Истроия изменения ПО

 

 
 Кейсы решенные с помощью УМП.

 

Статистика:
Просмотры 40833
Загрузки 54
Рейтинг 105
Создание 11.12.17 11:24
Обновление 23.03.22 20:33
№ Публикации 690271
Характеристики:
Теги

Добавил текста внизу

Рубрики Монитор заказов Производство готовой продукции (работ, услуг) БДР, БДДС
Кому Программист ,
Бизнес-аналитик ,
Руководитель проекта
Тип файла Конфигурация (md, cf)
Платформа Оперативный учет ,
Система компоновки данных ,
Анализ и прогнозирование
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Управленческий учет
Доступ к файлу Платные (руб)
Код открыт Да
1. Denium79 11.12.17 09:34 Сейчас в теме
Очень интересно. Не так давно сделал собственный расчет дефицита с учетом аналогов с приоритетами по датам запуска заказа. Также сделал регистр отслеживающий изменение дефицита ежедневно.
У тебя реализован универсальный расчет - это конечно сильно расширяет горизонт применяемости.
Не очень понял как с помощью твоего инструмента рассчитать дефицит, если есть несколько аналогов с разными приоритетами использования. Видимо, чтобы понять нужно попробовать. Буду ждать примеров реального использования.
4. Техподдержка 11.12.17 15:51
(1)
Не очень понял как с помощью твоего инструмента рассчитать дефицит, если есть несколько аналогов с разными приоритетами использования

Элементарно, см. раздел про сложное сопоставление.
Ты должен написать такой запрос, который соединит ресурсы с регистром аналогов, и отсортирует их по приоритету использования аналога.
Это фишка, которую я хотел раскрыть в следующей публикации - при использовании сложного сопоставления ресурсы можно пересортировывать так, как тебе нужно. Я так сделал когда-то планирования работы программистов в две стороны сразу - asap и alap.
Видимо, чтобы понять нужно попробовать.

да, с УМП это главное.
Светлый ум; +1 Ответить
2. genayo 11.12.17 10:07 Сейчас в теме
Пара вопросов:
1. Почему не пошли по пути ключей аналитики, вместо создания реквизитов типа Аналитика потребности 1, Аналитика потребности 2?
2. Нужно ли что-либо дорабатывать, чтобы учесть нереализованный спрос (например, неотгруженные позиции по уже закрытым заказам, по которым нет остатка на складе)?
5. Техподдержка 11.12.17 15:57
(2)
1. Почему не пошли по пути ключей аналитики

пошел когда-то, было такое заказное ответвление УМП - "Распределение ресурсов". Там не было аналитик, были ключи с жесткими реквизитами - номенклатура, характеристика, чего-то еще.
Отчеты писать проще, но свобода очень сильно ограничена, потому что регулировать состав ключей неудобно, где бы он ни хранился - в реквизитах ключа, в ТЧ ключа, в РС.
В общем, основное - из-за ограничения свободы.
2. Нужно ли что-либо дорабатывать, чтобы учесть нереализованный спрос (например, неотгруженные позиции по уже закрытым заказам, по которым нет остатка на складе)?

Ничего дорабатывать не нужно, нужен лишь запрос, который эти данные достанет. Это вроде несложно - это расход по регистру ЗаказыПокупателей с отбором по типу регистратора (ЗакрытиеЗаказовПокупателей).
Вы хотите это в качестве потребностей использовать? Напрашивается что-то вроде буфера по таким позициям. Задача ровно для УМП, типовые такого не умеют.
7. genayo 11.12.17 16:11 Сейчас в теме
(5) Понятно, тоесть в качестве потребности тоже может выступать любой запрос. Попробую на досуге прикрутить для маленького интернет-магазинчика на УТ 11.3 в качестве бэка.
8. Техподдержка 11.12.17 16:20
(7) любой запрос в качестве потребности, любой запрос в качестве ресурса, любой запрос их соединяющий.

Можно распределять товары по кассе, заказы понедельника по 13-й зарплате, приходы денег больше 100 тыс.р. на женскую часть коллектива и т.д.
3. CheBurator 11.12.17 12:11 Сейчас в теме
эээ... как-то слабо понял (не спец) - планирование - это же оптимизационная задача?
есть вот куча потребнсотей, есть куча ресурсов - как распределить ресурсы на потребности для достижения максимального результата...
?
6. Техподдержка 11.12.17 15:58
(3)
как распределить ресурсы на потребности для достижения максимального результата...

вот тут сразу две задачи - распределить и достичь результата.
В типовых конфигурациях первая задача не решена - распределить. Куда уж до оптимального результата.
11. Goleff74 11.12.17 17:30 Сейчас в теме
(6)
Куда уж до оптимального результата.

Но простейшие варианты возможно тут реализовать - например, рассчитывать маржинальность заказов покупателя на основании плановой себестоимости (или с/с на складе, сумм в заказе поставщика, ценах поставщика и т.п.) и сортировать источники потребностей по этой маржинальности, добавив сроки отгрузки, политических клиентов и т.п. в условия сортировки.
Я верно идею понял?
13. Техподдержка 11.12.17 20:09
(11) верно. Именно с этих идей начинался УМП в далеком 2006 году - "набрать" план производства из заказов на производство, максимизируя прибыльность, сумму реализации и загрузку оборудования.
Уважаемый CheBurator, вероятнее всего, имел в виду задачу оптимизации, когда подбирается оптимальное решение с учетом всех ограничений. Такое делают симплекс-методом или генетикой.
УМП работает проще и, как мне кажется, в итоге эффективнее. Ребята, которые заморачиваются генетикой, когда не умеют еще задницу подтирать, результата не достигают.
Нисколько не умаляю достижения оптимизации, но ее место обычно на цеховом уровне, вроде оптимизации раскроя, а не составления производственной программы в условиях постоянной, ежедневной неопределенности всех видов ресурсов.
31. karimov_m 13.12.17 17:31 Сейчас в теме
(3) Суть решение задачи нахождения локального оптимума =)
https://ru.wikipedia.org/wiki/Область_допустимых_решений
9. karimov_m 11.12.17 17:05 Сейчас в теме
Неплохо. Интересный подход.
Сюда прикрутить еще механизм внешних "внеплановых" событий, которые влияют на логику и приоритеты расчетов (в виде отдельного регистра, например, и отдельный запрос к нему + сложное сопоставление).

Плюс реализовать какой-нибудь движок процессного типа (блок схема, идем от начала до конца, в точках обращаемся к УМП-движку и в зависимости от фактов, делаем дела - стартуем процессы, рассылаем задачи и т.п.)

Получиться автоматическая аналитическая система принятия решений и исполнения на их основе задач (предложения, закупки, резервирования, продажи, пополнение складов и тп.)
12. Техподдержка 11.12.17 20:05
(9)
Сюда прикрутить еще механизм внешних "внеплановых" событий

да, мы так делали. Например, регистр с приоритетами заказов, который Важный Человек мог двигать.
Единственное, что он внешний и внеплановый только для типовых объектов, а для УМП все равны. Она под конец научилась и из внешних источников данных читать.
в точках обращаемся к УМП-движку и в зависимости от фактов, делаем дела - стартуем процессы, рассылаем задачи и т.п.)

да, именно так. Мы делали через автозадачии рабочий стол (не опубликован).
10. karimov_m 11.12.17 17:11 Сейчас в теме
В целом, я например уже вижу, как с помощью этого можно автоматизировать процесс расчета Мотивации сотрудникам.
На входе номинальные цифры, планы на год (месячные), обороты продаж с накоплением в разрезе чего-угодно (филиалы, подразделения, сотрудники) + схемы расчетов (коэффициенты, пороги отношений (план/факт)) + схемы KPI.

На выходе: расчеты из фактических цифр относительно планов и логики расчетов бонусов и автоматические ведомости в бухгалтерию на выплату бонусной части )))

Easy
1c-intelligence; +1 Ответить
14. CheBurator 11.12.17 23:44 Сейчас в теме
Мну мучают задачи распределения складских ресурсов (человеко-время исполнителей) на складские задачи передвижения объектов по складу...
15. Техподдержка 12.12.17 08:01
(14) мучают - в смысле решить не можете?
Можете поподробнее рассказать?
17. genayo 12.12.17 08:29 Сейчас в теме
(15) Например, на разгрузке стоит 10 фур, в них 200 тонн товара, за сколько с таким объемом справится 10 человек.
18. genayo 12.12.17 08:31 Сейчас в теме
(17) Кстати, правильный ответ - какого хрена все эти 10 фур приперлись в одно время :)
CheBurator; TreeDogNight; +2 Ответить
20. CheBurator 12.12.17 20:34 Сейчас в теме
(17) это более-менее тривиальная задача, так как нет конкуренции за ресурсы.

а вот если есть два погрузчика кооторые должны обслужить и фуру и отборы, причем отборы разной важности и разного объема, причем вместо погрузчика если что можно задействовать штабелер, который должен еще и заниматься подпиткой и размещением и все это дышит - тут сразу все непросто становится...
я пробовал решить даже более простую задачу - не сам, а челловека привлек - но заглохло, отчасти и по моей вине.

для начала хорошо бы спланировать возможность выполнения совокупности заказов к установленным временам готовности в условиях появления новых заказов и известной емкости ресурсов на задачу обслуживания заказов...
22. genayo 12.12.17 21:13 Сейчас в теме
(20) Задачи интересные конечно, а если получится, что в результате расчетов при увеличении количества заказов на 10% надо еще один погрузчик покупать - его купят, или нормативы времени на обработку заказов уменьшат?
33. karimov_m 13.12.17 17:40 Сейчас в теме
(17) ну тут простая математика - достаточно знать (замерить тестами) за сколько выполняет одну полную операцию 1 человек над одной (максимально возможной для человека) порцией груза, а также комбинации 2-3 человека совместно за сколько могут выполнить одну полную комбинацию разгрузки. Все это сложить и варианты разделить на общее кол-во груза. и получим ответ =) Но незабываем про обеды, перекуры и передышки..
35. genayo 13.12.17 18:42 Сейчас в теме
(33) Это все в теории просто, на практике все несколько сложнее, и сильно зависит от конкретного склада. Еще раз повторю - этот инструмент не для WMS (и обсуждение не для этой темы соответственно)
16. genayo 12.12.17 08:27 Сейчас в теме
(14) А вы уже отнормировали все складские операции?
19. CheBurator 12.12.17 20:29 Сейчас в теме
(16) отнормировать более-менее правильно - не проблема, статистика есть
21. genayo 12.12.17 21:10 Сейчас в теме
(19) Хорошо вам, а тут пришло 20 тонн конфет 150 наименований и 20 тонн муки в мешках по 50 кг, попробуй отнормируй, чтобы у людей зарплата более-менее одинаковой на сделке получилась...
23. CheBurator 12.12.17 23:29 Сейчас в теме
(21) нормируйтесь по временным затратам.
Внятный механизм и определения стоимости и определения ресурсов - см.у Перова Д.
24. genayo 12.12.17 23:38 Сейчас в теме
(23) Не все так просто, ну да ладно, не для этой темы разговор.
32. karimov_m 13.12.17 17:35 Сейчас в теме
(24) в WMS подход немного другой - там больше комбинаторика нужна + здоровая статистика + фактические свойства склада/варианты отгрузок/единицы хранения
25. German_Tagil 13.12.17 09:22 Сейчас в теме
мда с ходу не осилить .....
Заинтриговало еще больше
37. Техподдержка 13.12.17 20:56
(25) все проще, чем кажется. Главное - начать.
26. German_Tagil 13.12.17 11:36 Сейчас в теме
скачал - для работы Вам требуется платформа не меньше 8.3.9
Текущая версия 8.2.19.90
Печально - а есть ли под 8.2.19.90
27. Техподдержка 13.12.17 12:09
(26) упс, не поставил режим совместимости, когда сохранял УМП отдельно от УПП. Исправлю.
Пока можете поправить сами - загрузить конфигурацию в пустую базу, поставить режим совместимости, сохранить в файл и пользоваться.
28. пользователь 13.12.17 13:54
Сообщение было скрыто модератором.
...
29. пользователь 13.12.17 13:56
Сообщение было скрыто модератором.
...
30. Denium79 13.12.17 16:35 Сейчас в теме
А можно ли сделать так, чтобы УМП кроме изменения дефицита, отслеживала ещё и изменение потребности? Если скажем потребность не статична и может меняться. Например отмена заказа покупателя или изменение норм в результате конструкторских доработок?
34. karimov_m 13.12.17 17:45 Сейчас в теме
(30) суть - внедрение внешних событий, отельный запрос к ним. И "рассмотр" этих событий как таблицу, которая "отдает" изменения в потребностях относительно базового плана (по потребности)
36. karimov_m 13.12.17 19:12 Сейчас в теме
(30) Хотя все зависит от сложности учета. Если отмена Заказа подразумевает Отмену резерва товара (управленческого), отмена движений по запланированным отгрузкам, отмена
складского резервирования. Были ли внедрены по данному заказу Наряды на отгрузку, возможно от этого тронулось перемещение между складами (пополнение под заказ), а также задачи связанные с будущей необходимостью закупки новой партии товара (в заказе).
В общем не всегда все можно просчитать глубоко вперед. Есть "предел видимости" просчета, в которых он точно будет исполнимым до конца. Но есть внешние факторы, не привязанные к ресурсам и/или количественным показателям. Необходимо их во-первых учитывать, во вторых "трансформировать" к вычислимым значениям (в цифры), чтобы система смогла строить по ним связи/сравнения.
39. Denium79 14.12.17 08:00 Сейчас в теме
(36) Я не использую резервирование, остатки при расчете дефицита распределяются динамически. Поэтому мне и необходимо отслеживать изменения потребностей. "Передел видимости" в данном случае - определяется открытыми заказами на производство.
38. Техподдержка 13.12.17 21:08
(30) да, конечно. УМП итак отслеживает именно изменение потребностей.
Дефицитные они или нет - решает разработчик.

Если хочешь именно отслеживать потребности, без учета их обеспеченности - просто скопируй профиль и убери оттуда ресурсы и сопоставление. У тебя будет профиль, который знает только ресурсы. И будет писать их в регистр, и красиво изо дня в день делать приход и расход по регистру, отражая динамику.
40. Denium79 14.12.17 08:07 Сейчас в теме
(38) Тогда получается мне необходимо вести две настройки УМП? Одну для отслеживания обеспеченности, другую для отслеживания изменений базовых потребностей. Именно не остатка потребностей, а прихода.

Также, хочется попробовать эту подсистему для оценки производства. У меня есть план производства, его могу расписать по операциям и трудоемкости. Если завести таблицу доступности фонда рабочего времени для каждой операции, то УМП сможет просчитывать и отслеживать дефицит фонда рабочего времени по открытым заказам.

Это возможно? Вести отслеживание нескольких разных расчетов?
41. Техподдержка 14.12.17 08:14
(40)
Тогда получается мне необходимо вести две настройки УМП?

Да. Одна делается копированием другой.
УМП сможет просчитывать и отслеживать дефицит фонда рабочего времени по открытым заказам

да.
Это возможно? Вести отслеживание нескольких разных расчетов?

да, это одна из главных особенностей УМП - многовариантность. Делаешь сколько надо профилей, каждый живет своей жизнью.
42. German_Tagil 28.12.17 14:47 Сейчас в теме
Впечатляет - наконец-то руки дошли
43. Техподдержка 28.12.17 21:07
(42) по-настоящему впечатлит, когда пользоваться начнете, особенно на реальной бизнес-задаче.
44. minimajack 28.12.17 21:14 Сейчас в теме
(43) применяли для расчета потребностей-обеспечения в производстве?
46. minimajack 28.12.17 21:29 Сейчас в теме
(45) разузлование спецификаций тоже в запросе делали?
47. Техподдержка 28.12.17 21:33
(46) нет. Делал два варианта.
Первый - УМП позволяет после выполнения запроса выполнять произвольный код. Я делал разузлование типовыми средствами, в документ попадало уже разузлованное.
Но это хреновый способ, т.к. требует много времени.

Поэтому придумал второй - кеширование разузлования. В отдельном регистре сведений лежат результаты разузлования по всем номенклатурам, имеющим спецификации. При изменении спецификаций или номенклатур регл.задание делает пересчет.

К такой структуре легко и удобно обращаться запросом. Эту штуку тоже хотел опубликовать, но отдельно, т.к. она только для УПП и КА 1.
48. genayo 28.12.17 21:49 Сейчас в теме
(47) Плох тот программст 1С, который не делал разузлование запросом :). Решение с регистром видел в УПП на предыдущей работе, может, и вашими идеями было вдохновлено.
49. Техподдержка 28.12.17 21:52
(48) возможно и нашими - первый вариант кеширования даже в ПМК 1С:Машиностроение вошел. См слайдик. Я эту какашку делал.
50. Техподдержка 28.12.17 21:57
(48) а если мотнете на слайды 37-38, то увидите первый вариант УМП :)
Эх, ностальгия накатила. 11 лет прошло.
51. minimajack 28.12.17 22:09 Сейчас в теме
(47) нет доверия к перерасчету
таким образом можно и сервер положить
52. genayo 28.12.17 22:12 Сейчас в теме
(51) Именно поэтому перешли на запросы, что в общем стало возможно благодаря тому, что максимальная глубина была известна и не превышала 7...
54. minimajack 28.12.17 22:19 Сейчас в теме
(52) для использования запросов, есть много ограничений (
(53) достаточно поменять несколько раз основную спецификацию - и я не уверен в корректном результате )
53. Техподдержка 28.12.17 22:18
(51) нет, если нормально отрегулировать расписание и очередь пересчета.
НСИ меняется не так часто. Проблема возникает только в том случае, если кто-то перезаписывает всю номенклатуру групповой обработкой. Но это не проблема нагрузки, а проблема длинной очереди. Если очередь обрабатывается не вся сразу, а, например, по 5 позиций, то сервер не ляжет.
55. minimajack 28.12.17 22:23 Сейчас в теме
(53) так и не понял - а причем справочник номенклатура к разузлованию ....
что можно поменять в номенклатуре, что бы пересчитывать разузловку?
56. Техподдержка 28.12.17 22:51
(55) учет по доп.характеристикам, вид воспроизводства, вид номенклатуры.
Но вообще это вроде не важно. Подписаться можно на то, что нравится.
67. rush52 25.10.18 16:52 Сейчас в теме
(43) Иван, а как передать параметры в СКД?
Допустим, у меня потребность - план продаж.
Мне надо выбрать обороты за определенный месяц
68. Техподдержка 25.10.18 17:23
(67) какой-то конкретный месяц? Или типа "следующий", "текущий"?
По логике, такие параметры надо прям в СКД вычислять - либо используя стандартные периоды ("Этот месяц" и т.д.), либо вычисляя значения параметров кодом (типа ТекущаяДата()).
Для крайнего случая есть параметр ДокументПланирования, в него передается ссылка на док, выполняющий расчет.
69. rush52 25.10.18 17:34 Сейчас в теме
(68) Месяц даты документа планирования, например.
70. Техподдержка 25.10.18 17:39
(69) вообще, предполагается, что документ планирования - всегда сегодняшний, поэтому дата всегда известна. Просто используйте тек.дату.
Исключение составляют ретроспективные пересчеты, но у вас, вроде, не тот случай.
71. rush52 25.10.18 17:43 Сейчас в теме
(70)У меня потребность в оборотном регистре (план продаж), поэтому я не могу просто взять текущую дату.
72. Техподдержка 25.10.18 18:01
(71) так вы в запросе к ней НачалоПериода и КонецПериода приделаете, и будет вам текущий месяц.
73. rush52 25.10.18 18:32 Сейчас в теме
57. German_Tagil 07.02.18 11:46 Сейчас в теме
приступил к освоению
потребности, ресурсы заполнил
а вот настройкой сопоставления - встрял
если шаблон указываешь и жмешь выполнить
Справочник.ИсточникиДанныхУМП.Форма.ФормаЭлемента.Форма(73)}: Ошибка при вызове метода контекста (Вывести)
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(8, 35)}: Не задано значение параметра "ДокументПланирования"
ДанныеУМП.ДокументПланирования = <<?>>&ДокументПланирования
а его вроде как и должно быть
58. Техподдержка 07.02.18 21:19
(57) настройку сопоставления выполнять смысла нет - ей нужны на вход данные, которые есть только в момент планирования. Указывайте настройку в профиле и пробуйте запустить планирование.

В частности, параметр ДокументПланирования заполняется при выполнении планирования.
59. German_Tagil 08.02.18 14:33 Сейчас в теме
угу вроде что-то начинает получаться - цифирки только не идут
выборку делал по оборотам
по остаткам не информативно
60. Техподдержка 12.02.18 11:05
Добавил в конце статьи три кейса - стандартные ситуации закупа, и как их решать с помощью УМП.
61. genayo 12.02.18 12:16 Сейчас в теме
(60) Неплохо было бы сделать демобазу с какой-нибудь из этих настроек.
62. Техподдержка 12.02.18 12:23
(61) да, надо.
Сделаю, когда у публикации +100 будет.
63. genayo 12.02.18 12:30 Сейчас в теме
(62) Фи, как меркантильно :)))
64. Техподдержка 06.07.18 09:30
Друзья, прошу прощения за спам - поучаствуйте в голосовании.
65. Confucius 13.08.18 09:53 Сейчас в теме
Можете подсказать можно ли настроить УМП в след ситуации (разделка и продажа мяса): Есть план на неделю какие запчасти туши получить: например вт окорок, лопатка и тд в каких то количествах. Среда тоже какие то материалы. и т/д. Материала из которого будут производить пока нет либо он в заказе поставщику едет. Но хотят уже резервировать заказами покупателя и ставить в резерв (по сути воздух). Но когда будет реальный выпуск (ОПзС) товар появится на складе и в заказах нужно будет подменить склад (с вируального на реальный). Как то так. Понятно что не все можно сделать УМП, но не могу понять нужна ли тут УМП?
66. Техподдержка 14.08.18 06:45
(65) всю задачу УМП не решит, т.к. не лезет в типовые документы и не делает резервирования.
Но задачу распределения между потребителями решит:
1. Покажет, какому заказу покупателя из какого заказа поставщику что достанется;
2. Когда будет ОПзС, и произойдет выпуск, раздаст тем же заказам покупателя остатки склада (только что нарезанные туши);
3. В процессе будет показывать лишние части туши, которые никем не востребованы.

Нужно будет только изготовить обвязку, которая информацию из УМП подставит в резервы. На одном из внедрений местные программисты написали для этих целей обработку - она несложная, т.к. вся информация в УМП есть.

В том числе, резервирование может выступать источником данных для УМП, т.е. получается система с обратной связью:
1. Первый раз, когда резервов нет, а есть только заказы (покупателей и поставщикам), раздаст виртуальные части туши;
2. Вы обработкой раздадите резервы;
3. В следующей итерации УМП эти резервы будут учтены.
Confucius; +1 Ответить
74. rush52 18.01.19 15:09 Сейчас в теме
upd: разобрался. Дата потребности - это параметр
Иван, подскажите еще.
Не понял как сделать сопоставление:
С заказами поставщикам – через СКД, в отборе указать Дата потребности ≥ Даты доступности.

В запросе настройки сопоставления из потребности есть только идентификатор строки.
75. Техподдержка 18.01.19 16:50
(74) так, что в итоге? На какой вопрос ответ нужен?
76. rush52 21.01.19 09:51 Сейчас в теме
(75) пока разобрался, спасибо
77. пользователь 03.10.19 14:20
Сообщение было скрыто модератором.
...
78. German_Tagil 17.03.20 06:44 Сейчас в теме
Можно ли УМП приспособить к бюджетированию?
Может не правильно выразился - идея в том чтобы собрать данные
для АС ФЗД. Вот думаю что можно сделать.
79. Техподдержка 17.03.20 07:02
(78) я слабо представляю, что такое АС ФЗД. Это какая-то штука, в которую вам надо кучу данных отправить?
80. German_Tagil 17.03.20 07:07 Сейчас в теме
это программа разработана 1С для Ростеха. Разработка 500 000 000 рублей внедрение 1 300 000 000 рублей для управления предприятиями холдинга
81. German_Tagil 17.03.20 07:10 Сейчас в теме
Мне-то надо данные подготовить чтобы загрузить туда и соответственно оперативно с ними работать.
82. Техподдержка 17.03.20 07:15
(81) УМП хорошо подойдет, если вам надо собрать кучу данных из разных мест, разными запросами, с разными фильтрами, и сложить в одно место. Ну а потом как-то выгрузить.
83. German_Tagil 17.03.20 07:16 Сейчас в теме
выгружать не надо - она закрыта.
84. Техподдержка 17.03.20 07:27
(83) а, так АС ФЗД - это система на базе 1С? Я подумал, что у вас своя система, из которой надо данные в АС ФЗД отправить.
Давайте тогда поподробнее про задачу.
85. German_Tagil 17.03.20 07:36 Сейчас в теме
дак в том то и дело что пока пытаюсь понять .... и найти с кем бы можно было обсудить
86. Техподдержка 17.03.20 11:06
(85) я в УМП делал бюджетирование, вроде ничего сложного. Правда, и без УМП можно.
87. rush52 07.10.20 15:44 Сейчас в теме
Использую давно УМП, очень круто работает.
Но столкнулся с такой ситуацией, не понимаю как настроить.
Есть оборудование, в которое помещается сразу несколько форм с продукцией.

Допустим, есть печь, в которую помещается 20 форм.
Формы могут быть как для одного вида продукции, так и для нескольких.

У каждой продукции есть свое количество форм для этой печи.
Допустим,
продукция 1 - 5 форм
продукция 2 - 8 форм
продукция 3 - 15 форм
продукция 4 - 12 форм.
Мы можем изготавливать продукцию в любом ассортименте, но не более 20 форм за раз. Т.е. засунули 20 любых форм, через 10 минут получили 20 единиц готовой продукции.

Нам нужно изготовить
продукция 1 - 10 шт
продукция 2 - 18 шт
продукция 3 - 15 шт
продукция 4 - 8 шт.

Как настроить планирование для такой ситуации?
88. Техподдержка 07.10.20 16:23
(87) Руслан, а можете рассказать, как и где используете УМП? Я бы ссылку всем давал на ваш рассказ.
89. rush52 07.10.20 18:00 Сейчас в теме
(88) УМП используется в производственной компании в УПП.
Используется в 2 блоках:
1. Планирование производства.
На входе - даты, когда нужна продукция и количество.
Ресурсы - время работы оборудования.
Отдельно в регистре хранится время обработки продукции по каждому оборудованию.

В цехах, в которых нужно планировать выпуск по цепочке оборудования входом является план выпуска предыдущих участков.


На выходе получаем:
1. график производства.
2. Дефициты мощностей (какую продукцию не успеваем произвести)
3. Свободные мощности (если много, то можно уменьшить количество смен)

2. Распределение продукции на складе
Есть самописный механизм адресного хранения.
Резервирование на данный момент не используется.
Чтобы понимать что кому грузить (в заказах может быть больше продукции, чем есть в наличии), то распределяем остатки на складе и планируемую к выпуску продукцию на заказы покупателей. Плюс заодно склад видит с каких ячеек собирать продукцию под конкретный заказ.
90. rush52 12.10.20 21:08 Сейчас в теме
(88)Может быть у вас есть идеи как такое реализовать?
91. Техподдержка 15.10.20 07:30
(87) интересная задача. Получается, ограничения два: и количество форм для конкретной продукции, и общая вместительность печи по количеству форм?
92. rush52 15.10.20 11:02 Сейчас в теме
93. Техподдержка 15.10.20 18:46
(92) с другой стороны, ресурсы независимые, просто нужны оба - и форма, и печка. Так же, как могут быть нужны два материала одновременно, и при отсутствии одного из них ничего не сделать.

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

Логика подсказывает, что вам нужна аналитика ресурса типа время - например, час, или четверть часа, в разрезе которых доступна печка. Тогда можно ограничить количество изделий в единицу времени. Примерно так же с помощью УМП планируется работа программистов, например.

Если лень возиться с двумя профилями, можно кодом - там в настройке сопоставления код писать, все данные есть на входе. Я пока не сделал использование предыдущих профилей, кодом делал - просто написал цикл распределения ресурсов, и в результат сопоставления отдавал те строки, которые подошли.
94. rush52 16.10.20 13:54 Сейчас в теме
(93)
Логика подсказывает, что вам нужна аналитика ресурса типа время - например, час, или четверть часа, в разрезе которых доступна печка.

Я до этого дошел, но непонятно как их сопоставить. Вместимость печи и формы можно сопоставить на 1 загрузку. А дальше все зависит от количества штук, которые нам надо изготовить. Получается, что штуки мы сразу должны учитывать.

Допустим, есть Изделие 1, нужно изготовить 35 шт, есть 10 форм
Изделие 2, нужно изготовить 20 шт, есть 8 форм
Есть печка на 15 форм.

В потребностях тогда разобьем шт по количеству форм:
Изделие 1 10 шт
Изделие 1 10 шт
Изделие 1 10 шт
Изделие 1 5 шт

Изделие 2 8 шт
Изделие 2 8 шт
Изделие 2 4 шт

Есть одна печка, на 15 форм, цикл 1 час.
Тогда в ресурсах:
10:00 - 15
11:00 - 15
12:00 - 15
13:00 - 15

Дальше нужно подобрать 15 форм, но обязательно разных изделий.
При этом нельзя в потребностях задать порядок:
Изделие 1
Изделие 2
Изделие 1
Изделие 2
Потому что нужно сначала максимально делать изделие 1, потом изделие 2 и т.д.

Получается, нужно запоминать какие изделия уже подобрали в текущий цикл и их больше не добавлять.
Как это сделать - не понимаю(
95. rush52 16.10.20 14:02 Сейчас в теме
(94) Результат должен быть:

10:00 - Изделие 1 10 шт
10:00 - Изделие 2 5 ш
11:00 - Изделие 1 10 шт
11:00 - Изделие 2 5 шт
12:00 - Изделие 1 10 шт
12:00 - Изделие 2 5 шт
13:00 - Изделие 1 5 шт
13:00 - Изделие 2 5 шт
96. rush52 11.11.20 13:18 Сейчас в теме
(95) Не получилось сделать без доработки процедуры распределения.
Изначально пошел по пути, как описано выше:
разбил ресурсы по времени.
Т.е. если 11.11.2020 оборудование работает 12 часов, а время цикла 10 минут, то в таблице ресурсов на каждый день создал строки с интервалом 10 минут:
11.11.2020 08:00:00 (начало смены)
11.11.2020 08:10:00
11.11.2020 08:20:00
11.11.2020 19:50:00
Количество ресурса - количество форм в печи.

В потребностях записаны изделия, количество форм и количество к изготовлению.

Далее надо распределить потребности на ресурсы так, чтобы в одну строку ресурса попадало изделий одного вида не больше, чем есть форм на данное изделие.

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

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

Но у меня работало медленно, т.к. время цикла 7 минут, а в день оборудование работает 22 часа, получалось почти 200 строк в ресурсах на 1 день. Планирование при этом делается на 3 месяца, а это 18000 строк.

Поэтому придумал вариант 2, в нем тоже не обошлось без доработки модуля
97. rush52 11.11.20 13:25 Сейчас в теме
(96) Вариант 2.
Количеством ресурса сделал не количество форм, а количество изделий, которое может быть максимально произведено за день: если вместимость 20 форм, длительность 10 часов, а время цикла 30 минут, то произвести можем максимум 20 * 10 *2 = 400 шт разных изделий.

Сделал таблицу, в которой хранится максимальное количество изделий каждого вида, которое можно произвести за день (количество форм данного изделия * количество производственных циклов день)

И дальше просто проверяем в процессе распределения, чтобы закрываемое количество было не больше, чем максимальное количество изделий за день.

Такой вариант работает быстрее, потому что в ресурсах количество строк равно количеству дней планирования.

Оставьте свое сообщение

См. также

АРМ Начальника производства и АРМ Рабочего цеха для 1С:УНФ. Цифровое производство малого и среднего бизнеса

Расширение для 1С:УНФ с комплектом из двух АРМ: «АРМ для начальника производства» и «АРМ для рабочего цеха». «АРМ Начальника производства» позволяет анализировать общую картину состояния заказов покупателей и наличие конечных комплектующих ...

14400 руб.

Модуль Фонды: Простое управление финансами для УНФ, УТ 10/11, КА, УПП / ERP, КА, БП

Как держать деньги под контролем с помощью 1С УНФ, УТ, КА, ERP или БП и 2 часов в неделю без внедрения бюджетирования и найма финансиста. Дополнение для 1С 8.3 Модуль реализован в виде конфигурации и рассчитан для собственников компаний ...

45000 руб.

УТ 11, КА 2, ERP 2: Настраиваемые под каждую организацию печать и подпись ответственных лиц в печатных формах (ТОРГ-12, Счёт-...

Задайте для каждой организации свою печать и для каждого физического лица свою подпись. Выберите в документе печатную форму "... с печатью и подписью" - и автоматически сформируется табличный документ с печатью и подписями той орг...

12000 руб.

Пульт управления производством для 1С:УНФ

Разработка содержит цифровые инструменты для производственного и технологического обеспечения - подсистему Технологического контроля с АРМ Контролёра, Учет рекламации, АРМ Начальника производства, АРМ Рабочего цеха

36000 руб.

Отчет "Полный анализ себестоимости реализованной продукции" для 1С:ERP (ЕРП), 1С:КА, 1С:ERP УХ

Данный отчет показывает себестоимость реализованной продукции в разузлованном виде, как с выделением входящих в нее полуфабрикатов любых уровней, так и свернутый до статей затрат и материалов, видов работ. Отчет работает независимо от метод...

70000 35000 руб.

SALE! 50%
88005555256
Заказать звонок
support@infostart.ru
Telegram
Чат на сайте