Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
10 апр 2025, 01:09

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

Автор 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

Поиск