База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить колонку «Доп расходы и отклонения» из отчета «Валовая прибыль» в за › Ответ в теме: Как добавить колонку «Доп расходы и отклонения» из отчета «Валовая прибыль» в за
Добавлю в ваш запрос колонку «Доп расходы и отклонения» по аналогии с типовой логикой КА 2.5.
В КА 2.5 «Доп. расходы и отклонения» обычно берутся из регистра накопления «РаспределениеРасходов» (или аналогичного), где аккумулируются дополнительные расходы и отклонения по номенклатуре и подразделению.
Для примера добавим левое соединение с регистром «РаспределениеРасходов» (замените на актуальное имя регистра в вашей базе, если отличается) и посчитаем сумму по статьям затрат, относящимся к доп. расходам и отклонениям.
Пример доработанного запроса:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
ВЫБРАТЬ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.ГруппаАналитическогоУчета КАК ГруппаАналитическогоУчета, ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура, ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад, ВыручкаИСебестоимостьПродажОбороты.Менеджер КАК Менеджер, ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента КАК ЗаказКлиента, ВыручкаИСебестоимостьПродажОбороты.Подразделение КАК Подразделение, ВыручкаИСебестоимостьПродажОбороты.Регистратор КАК Регистратор, ВыручкаИСебестоимостьПродажОбороты.ПериодСекунда КАК ПериодСекунда, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена, ВЫБОР КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения В (ВЫБРАТЬ ЕдиницаИзмеренияВеса.Значение КАК Значение ИЗ Константа.ЕдиницаИзмеренияВеса КАК ЕдиницаИзмеренияВеса) ТОГДА ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот ИНАЧЕ 0 КОНЕЦ КАК КоличествоКг, ВЫБОР КОГДА ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения В (ВЫБРАТЬ ЕдиницаИзмеренияКоличестваШтук.Значение КАК Значение ИЗ Константа.ЕдиницаИзмеренияКоличестваШтук КАК ЕдиницаИзмеренияКоличестваШтук) ТОГДА ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот ИНАЧЕ 0 КОНЕЦ КАК КоличествоШт, ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиСНДСРеглОборот КАК Выручка, ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиБезНДСОборот КАК ВыручкаБезНДС, ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Себестоимость, ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиСНДСРеглОборот - ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ВаловаяПрибыль, ЕСТЬNULL(ДопРасходы.Сумма, 0) КАК ДопРасходыИОтклонения, ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК Количество, ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Организация КАК Организация, ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам, ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Партнер КАК Партнер, ВЫРАЗИТЬ(ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Контрагент КАК Справочник.Контрагенты) КАК Контрагент ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Авто, ) КАК ВыручкаИСебестоимостьПродажОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры25.СрезПоследних({(&КонецПериода)}, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних ПО ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ РаспределениеРасходов.Номенклатура КАК Номенклатура, РаспределениеРасходов.Подразделение КАК Подразделение, СУММА(РаспределениеРасходов.Сумма) КАК Сумма ИЗ РегистрНакопления.РаспределениеРасходов.Остатки(&КонецПериода, Номенклатура, Подразделение) КАК РаспределениеРасходов ГДЕ РаспределениеРасходов.СтатьяЗатрат В (&СписокДопРасходов) СГРУППИРОВАТЬ ПО РаспределениеРасходов.Номенклатура, РаспределениеРасходов.Подразделение ) КАК ДопРасходы ПО ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ДопРасходы.Номенклатура И ВыручкаИСебестоимостьПродажОбороты.Подразделение = ДопРасходы.Подразделение ГДЕ ВЫБОР КОГДА &ПоказыватьПередачиМеждуОрганизациями = ИСТИНА ТОГДА ИСТИНА ИНАЧЕ НЕ ВыручкаИСебестоимостьПродажОбороты.Регистратор ССЫЛКА Документ.ПередачаТоваровМеждуОрганизациями КОНЕЦ |
Объяснения:
— Добавлен левый джойн с регистром накопления «РаспределениеРасходов» по номенклатуре и подразделению.
— В условии отбора регистра «РаспределениеРасходов» фильтруем статьи затрат по параметру &СписокДопРасходов — это список статей, которые относятся к доп. расходам и отклонениям (нужно передавать в запрос).
— В выборке добавлена колонка ЕСТЬNULL(ДопРасходы.Сумма, 0) КАК ДопРасходыИОтклонения.
— В условии соединения по номенклатуре и подразделению.
Параметры, которые нужно передать в запрос:
— &КонецПериода — дата конца периода
— &ВидЦены — вид цены для получения цены номенклатуры
— &СписокДопРасходов — список статей затрат, относящихся к доп. расходам и отклонениям (например, можно получить из справочника «Статьи затрат» с нужным признаком)
Если в вашей базе регистр «РаспределениеРасходов» называется иначе, замените имя на актуальное.
Такой подход максимально близок к типовой логике КА 2.5 для формирования колонки «Доп расходы и отклонения» в отчёте «Валовая прибыль предприятия».