Имя: Пароль:
1C
1С v8
Проблема с отчетом
0 Renat11111
 
17.07.13
15:53
Есть запрос

ВЫБРАТЬ РАЗЛИЧНЫЕ
   ПродажиОбороты.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВТПродажиНоменклатура
{ВЫБРАТЬ
   Номенклатура.*}
ИЗ
   РегистрНакопления.Продажи.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, , ) КАК ПродажиОбороты
{ГДЕ
   ПродажиОбороты.Номенклатура.*}
;

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

СГРУППИРОВАТЬ ПО
   ЦеныНоменклатурыКонтрагентов.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВТМаксимальныйПериод.Номенклатура,
   ЦеныНоменклатурыКонтрагентов.Валюта,
   ЦеныНоменклатурыКонтрагентов.Цена
ПОМЕСТИТЬ ЦеныНоменклатурыКонтрагентовСрезПоследних
ИЗ
   ВТМаксимальныйПериод КАК ВТМаксимальныйПериод
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов
       ПО ВТМаксимальныйПериод.Номенклатура = ЦеныНоменклатурыКонтрагентов.Номенклатура
           И ВТМаксимальныйПериод.Период = ЦеныНоменклатурыКонтрагентов.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   МАКСИМУМ(КурсыВалют.Период) КАК Период,
   КурсыВалют.Валюта
ПОМЕСТИТЬ ВТМаксимумВалюты
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
   КурсыВалют.Период <= &КонецПериода

СГРУППИРОВАТЬ ПО
   КурсыВалют.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВТМаксимумВалюты.Валюта,
   КурсыВалют.Курс
ПОМЕСТИТЬ ВТКурсыВалют
ИЗ
   ВТМаксимумВалюты КАК ВТМаксимумВалюты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
       ПО ВТМаксимумВалюты.Период = КурсыВалют.Период
           И ВТМаксимумВалюты.Валюта = КурсыВалют.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   АналитикаВидаУчета.Ссылка
ПОМЕСТИТЬ АналитикаВыпуска
ИЗ
   РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчета
ГДЕ
   АналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Выпуск)
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ПродажиОбороты.Номенклатура КАК Товар,
   ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК КоличествоПродажа,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.ВидВоспроизводства = &Производство
           ТОГДА ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ВТСебестоимость.Себестоимость, 0)
       ИНАЧЕ ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена, 0) * ЕСТЬNULL(ВТКурсыВалют.Курс, 0)
   КОНЕЦ КАК Себестоимость,
   ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) КАК СуммаПродажа,
   ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) - ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.ВидВоспроизводства = &Производство
           ТОГДА ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ВТСебестоимость.Себестоимость, 0)
       ИНАЧЕ ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена, 0) * ЕСТЬNULL(ВТКурсыВалют.Курс, 0)
   КОНЕЦ КАК ВаловаяПрибыль,
   100 * ВЫБОР
       КОГДА ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) <> 0
           ТОГДА (ПродажиОбороты.СтоимостьОборот - ВЫБОР
                   КОГДА ПродажиОбороты.Номенклатура.ВидВоспроизводства = &Производство
                       ТОГДА ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ВТСебестоимость.Себестоимость, 0)
                   ИНАЧЕ ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена, 0) * ЕСТЬNULL(ВТКурсыВалют.Курс, 0)
               КОНЕЦ) / ВЫБОР
                   КОГДА ВТСебестоимость.Себестоимость = 0
                       ТОГДА 1
                   ИНАЧЕ ПродажиОбороты.КоличествоОборот * ВТСебестоимость.Себестоимость
               КОНЕЦ
   КОНЕЦ КАК Рентабельность,
   ВТКурсыВалют.Курс КАК Курс,
   ВТКурсыВалют.Валюта КАК Валюта
{ВЫБРАТЬ
   Товар.*,
   КоличествоПродажа,
   Себестоимость,
   СуммаПродажа,
   ВаловаяПрибыль,
   Рентабельность,
   Курс,
   Валюта.*}
ИЗ
   РегистрНакопления.Продажи.Обороты(, , , ) КАК ПродажиОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ ВТСебестоимость КАК ВТСебестоимость
       ПО ПродажиОбороты.Номенклатура = ВТСебестоимость.Продукция
       ЛЕВОЕ СОЕДИНЕНИЕ ЦеныНоменклатурыКонтрагентовСрезПоследних КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
       ПО ПродажиОбороты.Номенклатура = ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалют КАК ВТКурсыВалют
       ПО (ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта = ВТКурсыВалют.Валюта)
ГДЕ
   ПродажиОбороты.КоличествоОборот > 0
{ГДЕ
   ПродажиОбороты.Номенклатура.*,
   ВТКурсыВалют.Курс,
   ВТКурсыВалют.Валюта.*,
   ПродажиОбороты.Номенклатура.ВидВоспроизводства.*,
   ПродажиОбороты.Организация.*}
1 Mitriy
 
17.07.13
15:54
хвастаешься?
2 Renat11111
 
17.07.13
15:54
когда продукция выпускается в разных организациях задваивает количество продаж
3 Renat11111
 
17.07.13
15:55
когда делаю фильтр по организации вот тут

ВЫБРАТЬ РАЗЛИЧНЫЕ
   АналитикаВидаУчета.Ссылка
ПОМЕСТИТЬ АналитикаВыпуска
ИЗ
   РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчета
ГДЕ
   АналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Выпуск)
;

То количество продаж не задваивает, зато не считает себестоимсть ))))
4 Renat11111
 
17.07.13
15:56
запись в РС  по этой организации есть.... Уже сам утомился может есть идеи у кого сходу
5 Renat11111
 
17.07.13
15:59
Тоесть получается что у меня... ВТСебестоимость продукция попадает дважды, фильтр по организации для этой таблицы приводит к тому что себестоимость вообще не считается
6 Renat11111
 
17.07.13
16:09
..
7 Renat11111
 
17.07.13
16:25
усреднил себестоимсоть по всем организациям
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан