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

Почему исполняется не то условие в Запросе при значение 1

Автор Vasylii, 26 окт 2023, 05:12

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

Vasylii

Есть запрос, если менджер у которого больше 2 кол-во групп то условия отрабатывают правильно если меньше то нет, скрины прикрепил
ВЫБРАТЬ
ЗаказКлиентаТовары.Количество КАК Количество,
ЕСТЬNULL(ЗаказКлиентаТовары.СуммаСНДС, 0) КАК СуммаСНДС,
ЗаказКлиентаТовары.Ссылка КАК СсылкаЗаказ,
ЗаказКлиентаТовары.Номенклатура.Ссылка КАК НоменклатураСсылка
ПОМЕСТИТЬ ТоварыЗаказы
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары

СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Количество,
ЕСТЬNULL(ЗаказКлиентаТовары.СуммаСНДС, 0),
ЗаказКлиентаТовары.Ссылка,
ЗаказКлиентаТовары.Номенклатура.Ссылка
;

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

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

СГРУППИРОВАТЬ ПО
Основной.Менеджер
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ГруппыПоМеджеру.Менеджер КАК Менеджер,
Бит_Бонусы.Бит_КоэфБонусЕдТехники КАК Бит_КоэфБонусЕдТехники,
Бит_Бонусы.Бит_КоэфБонусЕдТехникиФикс КАК Бит_КоэфБонусЕдТехникиФикс,
СУММА(ГруппыПоМеджеру.КолВоГрупп) КАК КолВоГрупп
ПОМЕСТИТЬ РегистрБонус
ИЗ
ГруппыПоМеджеру КАК ГруппыПоМеджеру
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Бит_Бонусы КАК Бит_Бонусы
ПО (Бит_Бонусы.Сотрудникс = ГруппыПоМеджеру.Менеджер)

СГРУППИРОВАТЬ ПО
ГруппыПоМеджеру.Менеджер,
Бит_Бонусы.Бит_КоэфБонусЕдТехники,
Бит_Бонусы.Бит_КоэфБонусЕдТехникиФикс
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Основной.Менеджер КАК Менеджер,
Основной.ЗаказКлиента КАК ЗаказКлиента,
Основной.Контрагент КАК Контрагент,
Основной.Организация КАК Организация,
Основной.НоменклатураСсылка КАК НоменклатураСсылка,
Основной.НоменклатураСсылка.Родитель КАК НоменклатураСсылкаРодитель,
Основной.СуммаСНДС КАК СуммаСНДС,
Основной.Сумма КАК Сумма,
Основной.Оплачено КАК Оплачено,
Основной.Отгружено КАК Отгружено,
Основной.СостояниеОплаты КАК СостояниеОплаты,
Основной.СостояниеОтгрузки КАК СостояниеОтгрузки,
РегистрБонус.Бит_КоэфБонусЕдТехники КАК Бит_КоэфБонусЕдТехники,
РегистрБонус.Бит_КоэфБонусЕдТехникиФикс КАК Бит_КоэфБонусЕдТехникиФикс,
РегистрБонус.Бит_КоэфБонусЕдТехники / 100 * Основной.СуммаСНДС КАК ЗаЕдиницуТовара,
РегистрБонус.Бит_КоэфБонусЕдТехникиФикс * Основной.СуммаСНДС КАК ЗаЕдиницуТовараФикс,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп < 3
ТОГДА 0
ИНАЧЕ 0
КОНЕЦ КАК До3,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп < 4
ТОГДА Основной.СуммаСНДС * 0.1
ИНАЧЕ 0
КОНЕЦ КАК От3до4,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп < 6
ТОГДА Основной.СуммаСНДС * 0.3
ИНАЧЕ 0
КОНЕЦ КАК От5до6,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп >= 7
ТОГДА Основной.СуммаСНДС * 0.5
ИНАЧЕ 0
КОНЕЦ КАК От7,
РегистрБонус.КолВоГрупп КАК КолВоГрупп,
Основной.НоменклатураСсылкаРодитель КАК НоменклатураСсылкаРодитель1
ИЗ
Основной КАК Основной
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБонус КАК РегистрБонус
ПО Основной.Менеджер = РегистрБонус.Менеджер
ГДЕ
Основной.СостояниеОплаты = "Оплачено полностью"
И Основной.СостояниеОтгрузки = "Отгружено полностью"
И Основной.Менеджер = &Менеджер

СГРУППИРОВАТЬ ПО
Основной.Менеджер,
Основной.ЗаказКлиента,
Основной.Контрагент,
Основной.Организация,
Основной.СуммаСНДС,
Основной.Сумма,
Основной.Оплачено,
Основной.Отгружено,
Основной.СостояниеОплаты,
Основной.СостояниеОтгрузки,
РегистрБонус.Бит_КоэфБонусЕдТехники,
РегистрБонус.Бит_КоэфБонусЕдТехникиФикс,
Основной.НоменклатураСсылка,
Основной.НоменклатураСсылка.Родитель,
Основной.НоменклатураСсылкаРодитель,
РегистрБонус.КолВоГрупп,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп < 3
ТОГДА 0
ИНАЧЕ 0
КОНЕЦ,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп < 4
ТОГДА Основной.СуммаСНДС * 0.1
ИНАЧЕ 0
КОНЕЦ,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп < 6
ТОГДА Основной.СуммаСНДС * 0.3
ИНАЧЕ 0
КОНЕЦ,
ВЫБОР
КОГДА РегистрБонус.КолВоГрупп >= 7
ТОГДА Основной.СуммаСНДС * 0.5
ИНАЧЕ 0
КОНЕЦ

Максим75

Vasylii, ну меньше 2, это значит 1.
по вашему запросу значение 1 попадет и под условие меньше 3, и под условие меньше 4 и под условие меньше 6.
Вам принцип условий надо переделывать, использовать аналог Если условие то ... ИнчаеЕсли условие то ... ИначеЕсли условие то ...  Иначе...
В Вашем случае надо проверять на меньше 3, потом на равно 3, потом на равно 4 или 5, потом на больше или равно 7, вот с 6 не понятно...

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

Рейтинг@Mail.ru

Поиск