Запрос выводит неверное значение поля тариф (в котором условие)

1. one_strannik 1 25.02.24 22:52 Сейчас в теме
Всем доброго времени суток!
1) Делаю отчет на СКД, в результате должна выводить таблица с итогом по полю ВремяВыполнения. В зависимости от этого итога нужно выводить значение для "Тариф". Значение Итога равно 4,78, а в тариф проставляется ТП1. Пробовал изменять условие, все равно выводится только, то значение, которое стоит после первого ТОГДА
Пробовал добавлять условие в вычисляемое поле - не помогло.

2) Также, нужно чтобы Тариф принимало значение только если Контрагент = ЗНАЧЕНИЕ(Справочники.Контрагенты.НайтиПоНаименованию("РогаИКопыта")) - в вычисляемом поле при таком условии всегда ошибка "Ожидается ) " - но количество скобок верное.

Просьба подсказать, как исправить. Заранее спасибо за помощь.

ВЫБРАТЬ
	ВыполнениеРаботУслуги.Ссылка КАК Ссылка,
	ВыполнениеРаботУслуги.ДатаЗавершения КАК ДатаЗавершения,
	ВыполнениеРаботУслуги.Номенклатура КАК Номенклатура,
	ВыполнениеРаботУслуги.ВремяВыполнения КАК ВремяВыполнения,
	ВыполнениеРаботУслуги.Ссылка.Дата КАК Дата,
	ВыполнениеРаботУслуги.Ссылка.Контрагент КАК Контрагент,
	ВЫБОР
		КОГДА 0 < СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 2.5
			ТОГДА "ТП1"
		КОГДА 2.5 < СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 6.5
			ТОГДА "ТП2"
		КОГДА 6.5 < СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 10
			ТОГДА "ТП3"
		КОГДА 10 < СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 15
			ТОГДА "ТП4"
	КОНЕЦ КАК Тариф
ИЗ
	Документ.ВыполнениеРабот.Услуги КАК ВыполнениеРаботУслуги
ГДЕ
	ВыполнениеРаботУслуги.ДатаЗавершения МЕЖДУ &НачалоПериода И &КонецПериода
	И (ВыполнениеРаботУслуги.Ссылка.Контрагент = &Контрагент
			ИЛИ ВыполнениеРаботУслуги.Ссылка.Контрагент.Родитель = &Контрагент)

СГРУППИРОВАТЬ ПО
	ВыполнениеРаботУслуги.Ссылка,
	ВыполнениеРаботУслуги.ДатаЗавершения,
	ВыполнениеРаботУслуги.Номенклатура,
	ВыполнениеРаботУслуги.ВремяВыполнения,
	ВыполнениеРаботУслуги.Ссылка.Дата,
	ВыполнениеРаботУслуги.Ссылка.Контрагент
Показать
По теме из базы знаний
Найденные решения
12. Sashares 35 26.02.24 10:22 Сейчас в теме
(11)
ЗНАЧЕНИЕ(Справочники.Контрагенты.НайтиПоНаименованию("Тест"))

Вот это не верно.
1) ЗНАЧЕНИЕ() тут не нужно.
2) сравнивайте с параметром, а параметру уже в выражении вычисления напишите
Справочники.Контрагенты.НайтиПоНаименованию("Тест")
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 26.02.24 00:44 Сейчас в теме
(1)
КОГДА 0 < СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 2.5

Так нельзя.
Переписывайте условия сравнения на "А< B И B<=C".
one_strannik; +1 Ответить
3. YNik 26.02.24 00:56 Сейчас в теме
(1) Или так переписать:
    ВЫБОР
        КОГДА СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 0
            ТОГДА ""
        КОГДА СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 2.5
            ТОГДА "ТП1"
        КОГДА СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 6.5
            ТОГДА "ТП2"
        КОГДА СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 10
            ТОГДА "ТП3"
        КОГДА СУММА(ВыполнениеРаботУслуги.ВремяВыполнения) <= 15
            ТОГДА "ТП4"
        ИНАЧЕ ""
    КОНЕЦ КАК Тариф
Показать
one_strannik; +1 Ответить
4. one_strannik 1 26.02.24 08:45 Сейчас в теме
Проверил оба предложенных варианта - результат не изменился, выводится значение ТП1, хотя Итог (СУММА) по полю ВыполнениеРаботУслуги.ВремяВыполнения = 4,78
Получается условие отрабатывает на значение в ячейке, а не на Итог (СУММА) - проверил это изменив значение поля ВыполнениеРаботУслуги.ВремяВыполнения.
5. one_strannik 1 26.02.24 09:29 Сейчас в теме
(2)(3)Условие для поля Тариф разместил в области ИТОГИ - работает. Теперь осталось сделать еще одно Условие для этого поля (пункт 2 темы). Пробую добавить, выдает ошибку "Ожидается ) "
Прикрепленные файлы:
6. Sashares 35 26.02.24 09:38 Сейчас в теме
Не верный текст выражения - после "Тогда" идет сразу "Когда".
7. one_strannik 1 26.02.24 09:47 Сейчас в теме
(6) По задаче нужно сделать вложенное условие, подскажите пожалуйста, как исправить? Добавил ВЫБОР перед первым КОГДА вложенного условия - ошибка та же
8. Sashares 35 26.02.24 10:01 Сейчас в теме
(7)Добавляя "Выбор", надо еще добавлять "Конец".
9. one_strannik 1 26.02.24 10:02 Сейчас в теме
(8) Есть (на скриншоте выше присутствует)
10. Sashares 35 26.02.24 10:12 Сейчас в теме
(9)Не верная у вас логика, еще раз повторяю.
Вложенное условие начинается не с "Когда", оно начинается с "Выбор".
Если данное условие с Выбор надо поместить во вложенное, то помещается вся конструкция.
Выбор Когда А Тогда
  Выбор Когда Б 
  Тогда С 
   Иначе Д 
  Конец
Иначе Е
Конец
11. one_strannik 1 26.02.24 10:17 Сейчас в теме
(10) не могу найти отличий в Вашем примере...
Также, проверил без вложенного,
ВЫБОР КОГДА Контрагент = ЗНАЧЕНИЕ(Справочники.Контрагенты.НайтиПоНаименованию("Тест")) ТОГДА "123123" ИНАЧЕ "99999"  КОНЕЦ

В результате получаю ошибку, показанную на сриншоте "Ожидается )"

Мое полное условие:
ВЫБОР КОГДА Контрагент = ЗНАЧЕНИЕ(Справочники.Контрагенты.НайтиПоНаименованию("Тест")) ТОГДА 
       ВЫБОР
		КОГДА 0 < СУММА(ВремяВыполнения)
				И СУММА(ВремяВыполнения) <= 2.5
			ТОГДА "ТП1"
		КОГДА 2.5 < СУММА(ВремяВыполнения)
				И СУММА(ВремяВыполнения) <= 6.5
			ТОГДА "ТП2"
		КОГДА 6.5 < СУММА(ВремяВыполнения)
				И СУММА(ВремяВыполнения) <= 10
			ТОГДА "ТП3"
		КОГДА 10 < СУММА(ВремяВыполнения)
				И СУММА(ВремяВыполнения) <= 15
			ТОГДА "ТП4" 
     КОНЕЦ
  ИНАЧЕ "13123123"
КОНЕЦ
Показать
12. Sashares 35 26.02.24 10:22 Сейчас в теме
(11)
ЗНАЧЕНИЕ(Справочники.Контрагенты.НайтиПоНаименованию("Тест"))

Вот это не верно.
1) ЗНАЧЕНИЕ() тут не нужно.
2) сравнивайте с параметром, а параметру уже в выражении вычисления напишите
Справочники.Контрагенты.НайтиПоНаименованию("Тест")
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот