Показать сообщение отдельно
Старый 07.03.2014, 10:56   #4  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Цитата:
Сообщение от fed Посмотреть сообщение
В поздних сервис-паках к 2009ой приделали параллельный рассчет спецификаций. То есть - если запускаешь на пакетном сервере полный рассчет всех спецификаций в одноуровневом режиме, то у тебя система рожает n-хелперов (где помнится - по 4 хелпера на каждый сервер, обслуживающий пакетную группу). Хелперы внутри каждого уровня вложенности BOM работают в параллель. После того как просчитаны цены уровня n+1, начинается расчет цен уровня n.
Из всего этого можно сделать параллельный пересчет цены для конкретной спецификации. Надо просто сделать свой клон этого класса, который в табличку заданий для рассчета (BOMCalcItemTask/BOMCalcItemInventoryDimensionTask) пишет только те номенклатуры и аналитики, которые входят в данную спецификацию. (Ну то есть - классическое развертывание спецификации).
Кроме того, надо будет дописывать какой-то механизм автоматической активации цены, чтобы цены, рассчитанные на уровне n+1 немедленно активировались, чтобы рассчет на уровне n прочитал уже их, а не предыдущие значения. (Хотя в режиме стандартной себестоимости, автоматическая активация весьма чревата). На моем проекте это было сделано до меня, но дописка там не очень сложная. У нас на контрольных примерах время рассчета сложной спеки упала с 10-12 часов до 20-30 минут... Это конечно сильно зависит от размера ваших спек и режима их обсчета (может у вас там фантомов много, например), но в целом на 2-3 раза увеличения производительности можно надеятся даже в тяжелых случаях.
P.S. Есть альтернативный подход: Вместо автоматической активации свежепосчитанной цены, можно просто подломать сам рассчет, чтобы при включении определенной галочки, он бы сначала искал цену в pending prices (InventItemPriceSim) и только если там ничего нету - искал бы в обычных местах.
Добрый день. Я тут приболел потому не мог подробно расмотреть Ваш ответ. Сейчас вот начинаю разбираться и у меня стали возникать вопросы.
Первое, насчёт хелперов (помощников). Как я могу их увидеть? К примеру в Сводном планирование на форме запуска расчёта есть закладка "Помощники по планированию", задав их там я очень здорово могу ускорить расчёт. Тут же этого нет.