В ЕРП 2.5, если в спецификации есть полуфабрикат, который получается производством на стороне, то он не разворачивается до материалов при расчете плановой калькуляции.
Например, есть спецификация, в которой вал обрабатывается на стороне:
Если по такой спецификации рассчитать плановую калькуляция, и вывести отчет "Плановая себестоимость продукции", то в нем полуфабрикат "вал" будет представлен одной строкой:
Отладчиком видно, что это приходит из-за того, что в функции модуля менеджера справочника спецификаций ТекстПодстановкиПоляЗапланировать(...) не учитывается тип обеспечения "Производство на стороне".
Полуфабрикат разворачивается, если с помощью, например, расширения внести такое изменение в функцию:
&ИзменениеИКонтроль("ТекстПодстановкиПоляЗапланировать")
Функция ПроизводствоНаСторонеВПлановыхКалькуляциях_ТекстПодстановкиПоляЗапланировать(ИсточникПодразделенияДиспетчера, ИсточникНоменклатуры, ИсточникПолученияПолуфабриката)
ТекстПоля = "
| ВЫБОР
| КОГДА (&ПодразделениеДиспетчер = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)
| ИЛИ ЕСТЬNULL(СпрСпособОбеспечения.ИсточникОбеспеченияПотребностей, ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка))
| В (&ПодразделениеДиспетчер,
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)))
#Удаление
| И ЕСТЬNULL(СпрСпособОбеспечения.ТипОбеспечения, ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Производство)
#КонецУдаления
#Вставка
// учитываем производство на стороне
| И ЕСТЬNULL(СпрСпособОбеспечения.ТипОбеспечения, ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПустаяСсылка))
| В (ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Производство),ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПроизводствоНаСтороне))
#КонецВставки
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ";
Если НЕ ПустаяСтрока(ИсточникНоменклатуры) Тогда
ТекстПоля = СтрЗаменить(ТекстПоля, "МатериалыИУслуги.Номенклатура", ИсточникНоменклатуры);
КонецЕсли;
Если НЕ ПустаяСтрока(ИсточникПолученияПолуфабриката) Тогда
ТекстПоля = СтрЗаменить(ТекстПоля, "МатериалыИУслуги.ИсточникПолученияПолуфабриката", ИсточникПолученияПолуфабриката);
КонецЕсли;
Если НЕ ПустаяСтрока(ИсточникПодразделенияДиспетчера) Тогда
ТекстПоля = СтрЗаменить(ТекстПоля, "&ПодразделениеДиспетчер", ИсточникПодразделенияДиспетчера);
КонецЕсли;
Возврат ТекстПоля;
КонецФункции
Отчет, после применения расширения и пересчета плановой калькуляции, разворачивает полуфабрикат, производимый на стороне, до материалов:
Готовое расширение можно скачать ниже.