Имя: Пароль:
1C
1С v8
Нужна помощь с СКД
0 vineda
 
28.12.12
13:26
Тяпница началась еще вчера, по этому даже не знаю, как толком спросить, но все же по пробую:

Есть отчет на СКД, в нем группировки:
Номенклатура.[ГруппаПродукции](ГруппаПродукция)
  Номенклатура.[МаркаСтали](ГруппаСталь)
     Номенклатура(Номенклатура)

Данные в отчет тянутся запросом, результат которого примерно в следующем виде:

Номенклатура  СерияНоменклатуры  КоличествоПроизводство  КоличествоПереданная  НоменклатураПереданная

Номенклатура<>НоменклатураПереданная

Вопрос в чем: как можно на уровне группировки Номенклатура.[ГруппаПродукции](ГруппаПродукция) от КоличествоПроизводство отнять КоличествоПереданная ?
1 vineda
 
28.12.12
13:26
Сам запрос:

ВЫБРАТЬ
   СУММА(ПартииТоваровНаСкладахБухгалтерскийУчет.Количество) КАК КоличествоБрак,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Организация,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Номенклатура,
   ПартииТоваровНаСкладахБухгалтерскийУчет.СчетУчета,
   ПартииТоваровНаСкладахБухгалтерскийУчет.НалоговоеНазначение,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Склад,
   ПартииТоваровНаСкладахБухгалтерскийУчет.ДокументОприходования,
   ПартииТоваровНаСкладахБухгалтерскийУчет.ХарактеристикаНоменклатуры,
   ПартииТоваровНаСкладахБухгалтерскийУчет.СерияНоменклатуры,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Заказ,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Качество,
   ЗначенияСвойствОбъектов.Значение КАК МаркаСтали,
   ПартииТоваровНаСкладахБухгалтерскийУчет.КорСубконто1 КАК Подразделение
ПОМЕСТИТЬ КоличествоБрака
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет КАК ПартииТоваровНаСкладахБухгалтерскийУчет
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
       ПО ПартииТоваровНаСкладахБухгалтерскийУчет.Номенклатура = ЗначенияСвойствОбъектов.Объект
ГДЕ
   ПартииТоваровНаСкладахБухгалтерскийУчет.Период МЕЖДУ &НачалоПериода И &КонецПериода
   И ПартииТоваровНаСкладахБухгалтерскийУчет.КодОперации = &КодОперации
   И ЗначенияСвойствОбъектов.Свойство = &Свойство

СГРУППИРОВАТЬ ПО
   ПартииТоваровНаСкладахБухгалтерскийУчет.Номенклатура,
   ПартииТоваровНаСкладахБухгалтерскийУчет.НалоговоеНазначение,
   ПартииТоваровНаСкладахБухгалтерскийУчет.ДокументОприходования,
   ПартииТоваровНаСкладахБухгалтерскийУчет.СчетУчета,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Организация,
   ПартииТоваровНаСкладахБухгалтерскийУчет.СерияНоменклатуры,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Заказ,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Качество,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Склад,
   ПартииТоваровНаСкладахБухгалтерскийУчет.ХарактеристикаНоменклатуры,
   ЗначенияСвойствОбъектов.Значение,
   ПартииТоваровНаСкладахБухгалтерскийУчет.КорСубконто1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   СУММА(ВЫБОР
           КОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.КоличествоРасход = 0
               ТОГДА 0
           ИНАЧЕ КоличествоБрака.КоличествоБрак / ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.КоличествоРасход * ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.СтоимостьРасход
       КОНЕЦ) КАК СтоимостьБрак,
   ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура,
   ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.СерияНоменклатуры,
   СУММА(КоличествоБрака.КоличествоБрак) КАК КоличествоБрак,
   КоличествоБрака.МаркаСтали,
   КоличествоБрака.Подразделение
ПОМЕСТИТЬ Брак
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Обороты(, , , ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ КоличествоБрака КАК КоличествоБрака
       ПО ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Организация = КоличествоБрака.Организация
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура = КоличествоБрака.Номенклатура
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.СчетУчета = КоличествоБрака.СчетУчета
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.НалоговоеНазначение = КоличествоБрака.НалоговоеНазначение
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Склад = КоличествоБрака.Склад
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ДокументОприходования = КоличествоБрака.ДокументОприходования
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.ХарактеристикаНоменклатуры = КоличествоБрака.ХарактеристикаНоменклатуры
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.СерияНоменклатуры = КоличествоБрака.СерияНоменклатуры
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Заказ = КоличествоБрака.Заказ
           И ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Качество = КоличествоБрака.Качество

СГРУППИРОВАТЬ ПО
   ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.Номенклатура,
   ПартииТоваровНаСкладахБухгалтерскийУчетОбороты.СерияНоменклатуры,
   КоличествоБрака.МаркаСтали,
   КоличествоБрака.Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВыпускПродукцииБУ.Номенклатура,
   ВыпускПродукцииБУ.СерияНоменклатуры,
   ВыпускПродукцииБУ.КоличествоВыпуск - ЕСТЬNULL(ЗатртатыНаВЫпускБУ.КоличествоЗатраты, 0) КАК КоличествоПроизводство
ПОМЕСТИТЬ ОбъемПроизводства
ИЗ
   (ВЫБРАТЬ
       ВыпускПродукцииБухгалтерскийУчетОбороты.Подразделение КАК Подразделение,
       ВыпускПродукцииБухгалтерскийУчетОбороты.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
       ВыпускПродукцииБухгалтерскийУчетОбороты.Продукция КАК Номенклатура,
       ВыпускПродукцииБухгалтерскийУчетОбороты.ХарактеристикаПродукции КАК ХарактеристикаНоменклатуры,
       ВыпускПродукцииБухгалтерскийУчетОбороты.СерияПродукции КАК СерияНоменклатуры,
       ВыпускПродукцииБухгалтерскийУчетОбороты.Заказ КАК Заказ,
       СУММА(ВыпускПродукцииБухгалтерскийУчетОбороты.КоличествоОборот) КАК КоличествоВыпуск
   ИЗ
       РегистрНакопления.ВыпускПродукцииБухгалтерскийУчет.Обороты(, , , Продукция В ИЕРАРХИИ (&СписокПродукции)) КАК ВыпускПродукцииБухгалтерскийУчетОбороты
   
   СГРУППИРОВАТЬ ПО
       ВыпускПродукцииБухгалтерскийУчетОбороты.Подразделение,
       ВыпускПродукцииБухгалтерскийУчетОбороты.Продукция,
       ВыпускПродукцииБухгалтерскийУчетОбороты.ХарактеристикаПродукции,
       ВыпускПродукцииБухгалтерскийУчетОбороты.НоменклатурнаяГруппа,
       ВыпускПродукцииБухгалтерскийУчетОбороты.СерияПродукции,
       ВыпускПродукцииБухгалтерскийУчетОбороты.Заказ) КАК ВыпускПродукцииБУ
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.Затрата КАК Номенклатура,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.ХарактеристикаЗатраты КАК ХарактеристикаНоменклатуры,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.СерияЗатраты КАК СерияНоменклатуры,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.НоменклатурнаяГруппаНЗП КАК НоменклатурнаяГруппа,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.ЗаказНЗП КАК Заказ,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.ПодразделениеНЗП КАК Подразделение,
           СУММА(ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.КоличествоОборот) КАК КоличествоЗатраты
       ИЗ
           РегистрНакопления.ЗатратыНаВыпускПродукцииБухгалтерскийУчет.Обороты(, , , Затрата В ИЕРАРХИИ (&СписокПродукции)) КАК ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты
       
       СГРУППИРОВАТЬ ПО
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.Затрата,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.ХарактеристикаЗатраты,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.СерияЗатраты,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.НоменклатурнаяГруппаНЗП,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.ЗаказНЗП,
           ЗатратыНаВыпускПродукцииБухгалтерскийУчетОбороты.ПодразделениеНЗП) КАК ЗатртатыНаВЫпускБУ
       ПО ВыпускПродукцииБУ.Подразделение = ЗатртатыНаВЫпускБУ.Подразделение
           И ВыпускПродукцииБУ.НоменклатурнаяГруппа = ЗатртатыНаВЫпускБУ.НоменклатурнаяГруппа
           И ВыпускПродукцииБУ.Номенклатура = ЗатртатыНаВЫпускБУ.Номенклатура
           И ВыпускПродукцииБУ.ХарактеристикаНоменклатуры = ЗатртатыНаВЫпускБУ.ХарактеристикаНоменклатуры
           И ВыпускПродукцииБУ.СерияНоменклатуры = ЗатртатыНаВЫпускБУ.СерияНоменклатуры
           И ВыпускПродукцииБУ.Заказ = ЗатртатыНаВЫпускБУ.Заказ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ПартииТоваровНаСкладахБухгалтерскийУчет.Количество КАК Количество,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Номенклатура,
   ПартииТоваровНаСкладахБухгалтерскийУчет.КорСубконто2 КАК СкладПолучатель
ПОМЕСТИТЬ Переданные
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет КАК ПартииТоваровНаСкладахБухгалтерскийУчет
ГДЕ
   ПартииТоваровНаСкладахБухгалтерскийУчет.Период МЕЖДУ &НачалоПериода И &КонецПериода
   И ПартииТоваровНаСкладахБухгалтерскийУчет.Склад = &Склад
   И ПартииТоваровНаСкладахБухгалтерскийУчет.КорСубконто2 В(&СписокСкладов)

СГРУППИРОВАТЬ ПО
   ПартииТоваровНаСкладахБухгалтерскийУчет.Номенклатура,
   ПартииТоваровНаСкладахБухгалтерскийУчет.Количество,
   ПартииТоваровНаСкладахБухгалтерскийУчет.КорСубконто2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЕСТЬNULL(ОбъемПроизводства.Номенклатура, Брак.Номенклатура) КАК Номенклатура,
   ЕСТЬNULL(ОбъемПроизводства.СерияНоменклатуры, Брак.СерияНоменклатуры) КАК СерияНоменклатуры,
   ОбъемПроизводства.КоличествоПроизводство КАК КоличествоПроизводство,
   Брак.КоличествоБрак КАК КоличествоБрак,
   Брак.СтоимостьБрак КАК СтоимостьБрак,
   Брак.МаркаСтали,
   Брак.Подразделение,
   Переданные.Количество КАК КоличествоПереданных,
   Переданные.Номенклатура КАК ПереданнаяНоменклатура,
   Переданные.СкладПолучатель
ИЗ
   ОбъемПроизводства КАК ОбъемПроизводства
       ПОЛНОЕ СОЕДИНЕНИЕ Брак КАК Брак
       ПО ОбъемПроизводства.Номенклатура = Брак.Номенклатура
           И ОбъемПроизводства.СерияНоменклатуры = Брак.СерияНоменклатуры
       ПОЛНОЕ СОЕДИНЕНИЕ Переданные КАК Переданные
       ПО ОбъемПроизводства.Номенклатура = Переданные.Номенклатура
2 NcSteel
 
28.12.12
13:42
Пользовательское поле теяб спасет.
3 LehhaK
 
28.12.12
13:48
или вычисляемое
4 vineda
 
28.12.12
14:05
не пойму, каким образом спасет((

Поле, от которого нужно отнимать - ресурс, описан так:

Сумма(КоличествоПроизводство) - ВЫЧИСЛИТЬ("КоличествоПереданных", "ГруппаПродукция")

но фигня в том, что КоличествоПереданных никак не связано с остальными данными, СКД не хочет его ниоткуда отнимать
5 vineda
 
28.12.12
14:06
ой, точнее описан так

ВЫБОР КОГДА Сумма(КоличествоБрак) <> 0 ТОГДА Сумма(КоличествоПроизводство) - Сумма(КоличествоБрак) ИНАЧЕ
Сумма(КоличествоПроизводство) КОНЕЦ

а то, что в (4) пробую туда дописать
6 vineda
 
28.12.12
16:03
шо за бред я пишу?(