Имя: Пароль:
1C
1С v8
Отбор в построителе отчета
0 thomY100
 
01.08.11
13:41
Привет, есть такая проблема.

Отчет выводится с помощью построителя отчета, отчет содержит поля
"Организация", "Подразделение", "Контрагент", "Номенклатура", "Количество", "Стоимость", если в настройках задать отбор по организации или по номенклатуре или по контрагенту, то все выводится нормально, а если делаю отбор по подразделению, то поле "Стоимость" выводится пустым, в чем может быть причина?
1 Ахиллес
 
01.08.11
13:44
В ДНК?
Пока не будет текста запроса, ответ будет именно такой.
2 thomY100
 
01.08.11
13:47
отбор идет через построительотчета.отбор, в запрос не передается, разве может дело быть в запросе?
3 Ахиллес
 
01.08.11
13:50
Как ты себе это представляешь "отбор не передаётся в запрос"?
Труба канализационная, что ли засорилась по которой отборы в запрос попадают?
4 Ахиллес
 
01.08.11
13:52
Либо сам запрос бредовый либо с параметрами напутал, либо... всё работает правильно, просто не соответствует твоим ожиданиям.
5 thomY100
 
01.08.11
13:55
вот сам запрос
типовой из отчета УПП "Валовая прибыль", убрал только связь регистров по заказу покупателя из него

ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ВложенныйЗапрос.Организация КАК Организация,
   ВложенныйЗапрос.Подразделение КАК Подразделение,
   ВложенныйЗапрос.Покупатель КАК Покупатель,
   ВложенныйЗапрос.Номенклатура КАК Номенклатура,
   ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   ВложенныйЗапрос.Регистратор КАК Регистратор,
   ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Организация) КАК ОрганизацияПредставление,
   ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Подразделение) КАК ПодразделениеПредставление,
   ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Покупатель) КАК ПокупательПредставление,
   ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Номенклатура) КАК НоменклатураПредставление,
   ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатурыПредставление,
   ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Регистратор) КАК РегистраторПредставление,
   ВложенныйЗапрос.Период КАК Период,
   ВложенныйЗапрос.ПериодДень КАК ПериодДень,
   ВложенныйЗапрос.ПериодНеделя КАК ПериодНеделя,
   ВложенныйЗапрос.ПериодДекада КАК ПериодДекада,
   ВложенныйЗапрос.ПериодМесяц КАК ПериодМесяц,
   ВложенныйЗапрос.ПериодКвартал КАК ПериодКвартал,
   ВложенныйЗапрос.ПериодПолугодие КАК ПериодПолугодие,
   ВложенныйЗапрос.ПериодГод КАК ПериодГод,
   ВложенныйЗапрос.Количество КАК Количество,
   ВложенныйЗапрос.КоличествоЕдиницОтчетов КАК КоличествоЕдиницОтчетов,
   ВложенныйЗапрос.КоличествоБазовыхЕдиниц КАК КоличествоБазовыхЕдиниц,
   ВложенныйЗапрос.СтоимостьБезНДС КАК СтоимостьБезНДС,
   ВложенныйЗапрос.НДС КАК НДС,
   ВложенныйЗапрос.Стоимость КАК Стоимость,
   ВложенныйЗапрос.Себестоимость КАК Себестоимость,
   ВложенныйЗапрос.ВаловаяПрибыль КАК ВаловаяПрибыль,
   ВложенныйЗапрос.Эффективность КАК Эффективность,
   ВложенныйЗапрос.Рентабельность КАК Рентабельность
{ВЫБРАТЬ
   Организация.*,
   Подразделение.*,
   Покупатель.*,
   Номенклатура.*,
   ХарактеристикаНоменклатуры.*,
   Регистратор.*,
   Период,
   ПериодДень,
   ПериодНеделя,
   ПериодДекада,
   ПериодМесяц,
   ПериодКвартал,
   ПериодПолугодие,
   ПериодГод,
   Количество,
   КоличествоЕдиницОтчетов,
   КоличествоБазовыхЕдиниц,
   СтоимостьБезНДС,
   НДС,
   Стоимость,
   Себестоимость,
   ВаловаяПрибыль,
   Эффективность,
   Рентабельность}
ИЗ
   (ВЫБРАТЬ
       ВложенныйЗапрос.Организация КАК Организация,
       ВложенныйЗапрос.Проект КАК Проект,
       ВложенныйЗапрос.Подразделение КАК Подразделение,
       ВложенныйЗапрос.Покупатель КАК Покупатель,
       ВложенныйЗапрос.ДоговорПокупателя КАК ДоговорПокупателя,
       ВложенныйЗапрос.Номенклатура КАК Номенклатура,
       ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
       ВложенныйЗапрос.ЗаказПокупателя КАК ЗаказПокупателя,
       ВложенныйЗапрос.Регистратор КАК Регистратор,
       ВложенныйЗапрос.Период КАК Период,
       НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕНЬ) КАК ПериодДень,
       НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, НЕДЕЛЯ) КАК ПериодНеделя,
       НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕКАДА) КАК ПериодДекада,
       НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ) КАК ПериодМесяц,
       НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, КВАРТАЛ) КАК ПериодКвартал,
       НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
       НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД) КАК ПериодГод,
       СУММА(ВложенныйЗапрос.Количество) КАК Количество,
       СУММА(ВложенныйЗапрос.КоличествоЕдиницОтчетов) КАК КоличествоЕдиницОтчетов,
       СУММА(ВложенныйЗапрос.КоличествоБазовыхЕдиниц) КАК КоличествоБазовыхЕдиниц,
       СУММА(ВложенныйЗапрос.СтоимостьБезНДС) КАК СтоимостьБезНДС,
       СУММА(ВложенныйЗапрос.НДС) КАК НДС,
       СУММА(ВложенныйЗапрос.Стоимость) КАК Стоимость,
       СУММА(ВложенныйЗапрос.Себестоимость) КАК Себестоимость,
       ВЫБОР
           КОГДА &НеВключатьНДСВСтоимостьПартий
               ТОГДА СУММА(ВложенныйЗапрос.СтоимостьБезНДС)
           ИНАЧЕ СУММА(ВложенныйЗапрос.Стоимость)
       КОНЕЦ - СУММА(ВложенныйЗапрос.Себестоимость) КАК ВаловаяПрибыль,
       100 * ВЫБОР
           КОГДА &НеВключатьНДСВСтоимостьПартий
               ТОГДА ВЫБОР
                       КОГДА СУММА(ВложенныйЗапрос.Себестоимость) <> 0
                           ТОГДА (СУММА(ВложенныйЗапрос.СтоимостьБезНДС) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Себестоимость)
                       ИНАЧЕ 0
                   КОНЕЦ
           ИНАЧЕ ВЫБОР
                   КОГДА СУММА(ВложенныйЗапрос.Себестоимость) <> 0
                       ТОГДА (СУММА(ВложенныйЗапрос.Стоимость) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Себестоимость)
                   ИНАЧЕ 0
               КОНЕЦ
       КОНЕЦ КАК Эффективность,
       100 * ВЫБОР
           КОГДА &НеВключатьНДСВСтоимостьПартий
               ТОГДА ВЫБОР
                       КОГДА СУММА(ВложенныйЗапрос.СтоимостьБезНДС) <> 0
                           ТОГДА (СУММА(ВложенныйЗапрос.СтоимостьБезНДС) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.СтоимостьБезНДС)
                       ИНАЧЕ 0
                   КОНЕЦ
           ИНАЧЕ ВЫБОР
                   КОГДА СУММА(ВложенныйЗапрос.Стоимость) <> 0
                       ТОГДА (СУММА(ВложенныйЗапрос.Стоимость) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Стоимость)
                   ИНАЧЕ 0
               КОНЕЦ
       КОНЕЦ КАК Рентабельность
   {ВЫБРАТЬ
       Организация,
       Проект,
       Подразделение,
       Покупатель,
       ДоговорПокупателя,
       Номенклатура,
       ХарактеристикаНоменклатуры,
       ЗаказПокупателя,
       Регистратор,
       Период,
       ПериодДень,
       ПериодНеделя,
       ПериодДекада,
       ПериодМесяц,
       ПериодКвартал,
       ПериодПолугодие,
       ПериодГод}
   ИЗ
       (ВЫБРАТЬ
           ПродажиОбороты.Проект КАК Проект,
           ПродажиОбороты.Подразделение КАК Подразделение,
           ПродажиОбороты.Контрагент КАК Покупатель,
           ПродажиОбороты.ДоговорКонтрагента КАК ДоговорПокупателя,
           ПродажиОбороты.Номенклатура КАК Номенклатура,
           ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
           ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
           ПродажиОбороты.Организация КАК Организация,
           ПродажиОбороты.Регистратор КАК Регистратор,
           ПродажиОбороты.Период КАК Период,
           ПродажиОбороты.КоличествоОборот КАК Количество,
           ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетов,
           ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) КАК КоличествоБазовыхЕдиниц,
           ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот КАК СтоимостьБезНДС,
           ПродажиОбороты.НДСОборот КАК НДС,
           ПродажиОбороты.СтоимостьОборот КАК Стоимость,
           ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0) КАК Себестоимость
       ИЗ
           РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {(Организация).* КАК Организация, (Проект).* КАК Проект, (Подразделение).* КАК Подразделение, (Контрагент).* КАК Покупатель, (ДоговорКонтрагента).* КАК ДоговорПокупателя, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ЗаказПокупателя).* КАК ЗаказПокупателя}) КАК ПродажиОбороты
               ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   ПродажиСебестоимость.Номенклатура КАК Номенклатура,
                   ПродажиСебестоимость.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                   ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя,
                   ВЫБОР
                       КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
                           ТОГДА ПродажиСебестоимость.ДокументДвижения
                       ИНАЧЕ ПродажиСебестоимость.Регистратор
                   КОНЕЦ КАК Регистратор,
                   СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот
               ИЗ
                   РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
               ГДЕ
                   ПродажиСебестоимость.Период МЕЖДУ &ДатаНачала И &ДатаКонца
               {ГДЕ
                   ПродажиСебестоимость.Проект.* КАК Проект,
                   ПродажиСебестоимость.Подразделение.* КАК Подразделение,
                   ПродажиСебестоимость.Номенклатура.* КАК Номенклатура,
                   ПродажиСебестоимость.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
                   ПродажиСебестоимость.ЗаказПокупателя.* КАК ЗаказПокупателя}
               
               СГРУППИРОВАТЬ ПО
                   ПродажиСебестоимость.Номенклатура,
                   ПродажиСебестоимость.ХарактеристикаНоменклатуры,
                   ПродажиСебестоимость.ЗаказПокупателя,
                   ВЫБОР
                       КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
                           ТОГДА ПродажиСебестоимость.ДокументДвижения
                       ИНАЧЕ ПродажиСебестоимость.Регистратор
                   КОНЕЦ) КАК ТаблицаРегистраПродажиСебестоимость
               ПО (ТаблицаРегистраПродажиСебестоимость.Номенклатура = ПродажиОбороты.Номенклатура)
                   И (ТаблицаРегистраПродажиСебестоимость.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры)
                   И (ТаблицаРегистраПродажиСебестоимость.Регистратор = ПродажиОбороты.Регистратор)) КАК ВложенныйЗапрос
   
   СГРУППИРОВАТЬ ПО
       ВложенныйЗапрос.Организация,
       ВложенныйЗапрос.Проект,
       ВложенныйЗапрос.Подразделение,
       ВложенныйЗапрос.Покупатель,
       ВложенныйЗапрос.ДоговорПокупателя,
       ВложенныйЗапрос.Номенклатура,
       ВложенныйЗапрос.ХарактеристикаНоменклатуры,
       ВложенныйЗапрос.ЗаказПокупателя,
       ВложенныйЗапрос.Регистратор,
       ВложенныйЗапрос.Период
   
   ИМЕЮЩИЕ
       (СУММА(ВложенныйЗапрос.Количество) <> 0
           ИЛИ СУММА(ВложенныйЗапрос.Стоимость) <> 0
           ИЛИ СУММА(ЕСТЬNULL(ВложенныйЗапрос.Себестоимость, 0)) <> 0)) КАК ВложенныйЗапрос
ГДЕ
   ВложенныйЗапрос.Подразделение = &Подразделение
{ГДЕ
   ВложенныйЗапрос.Регистратор.*,
   ВложенныйЗапрос.Период,
   ВложенныйЗапрос.ПериодДень,
   ВложенныйЗапрос.ПериодНеделя,
   ВложенныйЗапрос.ПериодДекада,
   ВложенныйЗапрос.ПериодМесяц,
   ВложенныйЗапрос.ПериодКвартал,
   ВложенныйЗапрос.ПериодПолугодие,
   ВложенныйЗапрос.ПериодГод,
   ВложенныйЗапрос.Количество,
   ВложенныйЗапрос.КоличествоЕдиницОтчетов,
   ВложенныйЗапрос.КоличествоБазовыхЕдиниц,
   ВложенныйЗапрос.СтоимостьБезНДС,
   ВложенныйЗапрос.НДС,
   ВложенныйЗапрос.Стоимость,
   ВложенныйЗапрос.Себестоимость,
   ВложенныйЗапрос.ВаловаяПрибыль,
   ВложенныйЗапрос.Эффективность,
   ВложенныйЗапрос.Рентабельность}
{УПОРЯДОЧИТЬ ПО
   Организация.*,
   Подразделение.*,
   Покупатель.*,
   Номенклатура.*,
   ХарактеристикаНоменклатуры.*,
   Регистратор.*,
   Период,
   ПериодДень,
   ПериодНеделя,
   ПериодДекада,
   ПериодМесяц,
   ПериодКвартал,
   ПериодПолугодие,
   ПериодГод,
   Количество,
   КоличествоЕдиницОтчетов,
   КоличествоБазовыхЕдиниц,
   СтоимостьБезНДС,
   НДС,
   Стоимость,
   Себестоимость,
   ВаловаяПрибыль,
   Эффективность,
   Рентабельность}
ИТОГИ
   СУММА(Количество),
   СУММА(КоличествоЕдиницОтчетов),
   СУММА(КоличествоБазовыхЕдиниц),
   СУММА(СтоимостьБезНДС),
   СУММА(НДС),
   СУММА(Стоимость),
   СУММА(Себестоимость),
   ВЫБОР
       КОГДА &НеВключатьНДСВСтоимостьПартий
           ТОГДА СУММА(СтоимостьБезНДС)
       ИНАЧЕ СУММА(Стоимость)
   КОНЕЦ - СУММА(Себестоимость) КАК ВаловаяПрибыль,
   100 * ВЫБОР
       КОГДА &НеВключатьНДСВСтоимостьПартий
           ТОГДА ВЫБОР
                   КОГДА СУММА(Себестоимость) <> 0
                       ТОГДА (СУММА(СтоимостьБезНДС) - СУММА(Себестоимость)) / СУММА(Себестоимость)
                   ИНАЧЕ 0
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА СУММА(Себестоимость) <> 0
                   ТОГДА (СУММА(Стоимость) - СУММА(Себестоимость)) / СУММА(Себестоимость)
               ИНАЧЕ 0
           КОНЕЦ
   КОНЕЦ КАК Эффективность,
   100 * ВЫБОР
       КОГДА &НеВключатьНДСВСтоимостьПартий
           ТОГДА ВЫБОР
                   КОГДА СУММА(СтоимостьБезНДС) <> 0
                       ТОГДА (СУММА(СтоимостьБезНДС) - СУММА(Себестоимость)) / СУММА(СтоимостьБезНДС)
                   ИНАЧЕ 0
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА СУММА(Стоимость) <> 0
                   ТОГДА (СУММА(Стоимость) - СУММА(Себестоимость)) / СУММА(Стоимость)
               ИНАЧЕ 0
           КОНЕЦ
   КОНЕЦ КАК Рентабельность
ПО
   ОБЩИЕ
{ИТОГИ ПО
   Организация.*,
   Подразделение.*,
   Покупатель.*,
   Номенклатура.*,
   ХарактеристикаНоменклатуры.*,
   Регистратор.*,
   Период,
   ПериодДень,
   ПериодНеделя,
   ПериодДекада,
   ПериодМесяц,
   ПериодКвартал,
   ПериодПолугодие,
   ПериодГод}
АВТОУПОРЯДОЧИВАНИЕ


при настройке отбора по полю подразделение в отчете поле себестоимость пустое, если явно в запросе создать условие где подразделение=&подразделение, то всё нормально отрабатывает
6 hhhh
 
01.08.11
14:03
так стоимость или себестоимость? Ты сфокусируй мозг на чем-нибудь одном.
7 thomY100
 
01.08.11
14:05
себестоимость, опечатка вышла
8 hhhh
 
01.08.11
14:12
ну может тогда

        ПО (ТаблицаРегистраПродажиСебестоимость.Номенклатура = ПродажиОбороты.Номенклатура)
                   И (ТаблицаРегистраПродажиСебестоимость.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры)
                   И (ТаблицаРегистраПродажиСебестоимость.Регистратор = ПродажиОбороты.Регистратор

       И (ТаблицаРегистраПродажиСебестоимость.Подразделение = ПродажиОбороты.Подразделение


)) КАК ВложенныйЗапрос
9 thomY100
 
01.08.11
14:22
Выдает ошибку

Поле не найдено "ТаблицаРегистраПродажиСебестоимость.Подразделение"
И (ТаблицаРегистраПродажиСебестоимость.<<?>>Подразделение = ПродажиОбороты.Подразделение)
10 thomY100
 
01.08.11
14:22
а нет, это я туплю
11 thomY100
 
01.08.11
14:29
хотя нет, не туплю, выскакивет ошибка что поле не найдено
12 thomY100
 
01.08.11
14:35
так вообще себестоимость в запросе не выбирается
13 thomY100
 
01.08.11
14:51
поле подразделение в регистре ПродажиСебестоимость при проведение документов не заполняется, так что предложенный способ не помогает
14 Ахиллес
 
01.08.11
15:02
(13) Тогда чего же ты хочешь?
Строки в запросе как бэ намекают...
               ИЗ
                   РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
               ГДЕ
                   ПродажиСебестоимость.Период МЕЖДУ &ДатаНачала И &ДатаКонца
               {ГДЕ
                   ПродажиСебестоимость.Проект.* КАК Проект,
                   ПродажиСебестоимость.Подразделение.* КАК Подразделение,

что ты сравниваешь пустое незаполненное подразделение с подразделением в отборе и совершенно логично получаешь шишь с маслом.
15 hhhh
 
01.08.11
15:03
(13) ну тогда какой смысл в твоем запросе, если по любому подразделению он вытаскивает из регистра Продажи себестоимость одну и ту же сумму? Бред. Лучше выбросить этот запрос.
16 thomY100
 
01.08.11
15:45
ну в том то и странность, что в регистре ПродажиСебестоимость поле организация тоже не заполнено, а отбор по ней срабатывает
17 Ахиллес
 
01.08.11
16:55
(16) Бредишь? Сам то прочти, что написал.
Ты наверно вручную отбор ставил на регистр "продажи", а отчет тебе отбор сразу на два регистра делает, "продажи" и "ПродажиСебестоимость". Блин, всё де разжевали уже...