Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 03:34

Запрос с конструкцией Выбор Когда

Автор Artem2015, 04 фев 2015, 10:31

0 Пользователей и 1 гость просматривают эту тему.

Artem2015

Речь идёт о  реализации , 90 счёт.
На форме стоит галка выбирать ИЛИ нет  с детализацией по контрагентам, но устанавливаю  я флажок или нет детализация не происходит и не уходит  , помогите чем могите

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

дфтын

А параметр в запрос как устанавливаете?

has

Еще как вариант можно так сделать, к примеру у Вас флажок имеет идентификатор ПоКонтрагентам и Вам не нужен в дальнейшем пустой контрагент в запросе

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

Artem2015

   Запрос.УстановитьПараметр("ДатаКон", Отчет.КонецПериода);
   Запрос.УстановитьПараметр("ДатаНач", Отчет.НачалоПериода);
   Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
   Запрос.УстановитьПараметр("НоменклатурнаяГруппа", НоменклатурнаяГруппа);
   Запрос.УстановитьПараметр("СчетРеализации", СчетРеализации);
   Запрос.УстановитьПараметр("Организация", Организация);
   Запрос.УстановитьПараметр("ВидВзаиморасчетов", ВидВзаиморасчетов);
   Запрос.УстановитьПараметр("ПустойВидВзаиморасчетов", Справочники.ВидыВзаиморасчетов.ПустаяСсылка());
   Запрос.УстановитьПараметр("ПоКонтрагентам", ПоКонтрагентам);
   Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка());
   Запрос.УстановитьПараметр("ПустаяСтрока", "");

has

Зачем вот эта строка, если не нужна детализация по Контрагенту?
|   ХозрасчетныйДвиженияССубконто.СубконтоДт1.Наименование КАК КонтрагентНаименование,

LexaK

сделайте ДВА запроса!
один с детализацией
второй - без
и в зависимости от галочки выполняйте тот или другой
(очень полезно для тех кто путается в написании запросов)
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск