8.х помогите с запросом

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем step86, 25 июл 2012.

  1. TopicStarter Overlay
    step86
    Offline

    step86 Опытный в 1С

    Регистрация:
    22 май 2009
    Сообщения:
    137
    Симпатии:
    0
    Баллы:
    26
    В конфигурации УТ11 есть типовой отчет по валовой прибыли, так вот нужно добавить туда колонку остаток номенклатуры, ну что то не могу победить запрос выдает ошибку
    Код:
    Ошибка обработки представления "РегистрНакопления.ТоварыНаСкладах.Остатки:Несоответствие типов (Параметр номер ""1"")"
    ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрНакопления.ТоварыНаСкладах.Остатки(&П3) КАК ТоварыНаСкладахОстатки
    вот код запроса

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

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Какой параметр передаете в ПЗ ?
  3. TopicStarter Overlay
    step86
    Offline

    step86 Опытный в 1С

    Регистрация:
    22 май 2009
    Сообщения:
    137
    Симпатии:
    0
    Баллы:
    26
    Никакой, а какой параметр

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристика

    ругается 1с у меня на вот этот участок кода
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    А в запросе у вас параметр стоит &ПЗ, вот его и нужно заполнить.
  5. TopicStarter Overlay
    step86
    Offline

    step86 Опытный в 1С

    Регистрация:
    22 май 2009
    Сообщения:
    137
    Симпатии:
    0
    Баллы:
    26
    А чем его заполнить, я туда никакого параметра не передаю
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Параметры заполняются так:
    Код:
    Запрос.УстановитьПараметр("ПЗ", ВашПараметр);
    Ваш параметр - это то что нужно передать. В виртуальной таблице остатков, обычно первым параметром идет дата среза, на которую необходимо получить остаток.
    Вы откуда этот код слизали ?
  7. TopicStarter Overlay
    step86
    Offline

    step86 Опытный в 1С

    Регистрация:
    22 май 2009
    Сообщения:
    137
    Симпатии:
    0
    Баллы:
    26
    я просто соединяю таблицу продажи с остатками по полям

    В УТ11 отчет ВыручкаИСебестоимостьПродаж
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Тогда либо уберите этот параметр, либо заполняйте его.
  9. TopicStarter Overlay
    step86
    Offline

    step86 Опытный в 1С

    Регистрация:
    22 май 2009
    Сообщения:
    137
    Симпатии:
    0
    Баллы:
    26
    не стоит вот фрагмент
    Код:
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    ПО Продажи.АналитикаУчетаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    И Продажи.АналитикаУчетаНоменклатуры.Характеристика = ТоварыНаСкладахОстатки.Характеристика
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    У вас отчет отваливается с ошибкой:
    Вы видите что у вас в виртуальной таблице стоит параметр ?????????????
  11. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    просто кажется ошибка и код запроса немного не вяжутся
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну походу ТС вообще не осознает что делает:))
  13. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    :)))))))))))))))))))))))))))))))))))))
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну я ни в коем случае не хотел задеть или обидеть этого человека, так что извиняюсь заранее.
  15. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Доброго Всем,

    Этот запрос для построителя

    если написать "ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ОкончаниеПериода)" то построитель будет брать параметр из формы, где отображается выбор периода, на отображение выбора периода влияет гл.переменная "УниверсальныйОтчет.мРежимВводаПериода", внизу текста модуля есть описание.

    Для того чтобы добавить колонку нужно немного переписать не только запрос, в процедуре "УстановитьНачальныеНастройки", но и ту часть котороя идет после него -
    "УниверсальныйОтчет.ДобавитьПоказатель(..."
    согласно описанию в самой процедуре

    В самом запросе в секции выбора полей построителя (начинается с фигурных скобок), так же нужно указать поля которые хотите показать

Поделиться этой страницей