Имя: Пароль:
1C
1С v8
Формула в типе цен
,
0 Z2020
 
07.08.20
15:27
Добрый день! Помогите найти ошибку в формуле

?([Розничные]*100/[Закупочные]-100 < 25,[Розничные]*97/100,
?([Розничные]*100/[Закупочные]-100 >= 25 и [Розничные]*100/[Закупочные]-100 < 30,[Розничные]*96/100,
?([Розничные]*100/[Закупочные]-100 >= 30 и [Розничные]*100/[Закупочные]-100 < 35,[Розничные]*95/100,
?([Розничные]*100/[Закупочные]-100 >= 35 и [Розничные]*100/[Закупочные]-100 < 45,[Розничные]*94/100,
?([Розничные]*100/[Закупочные]-100 >= 45 и [Розничные]*100/[Закупочные]-100 < 60,[Розничные]*93/100,
?([Розничные]*100/[Закупочные]-100 >= 60 и [Розничные]*100/[Закупочные]-100 < 65,[Розничные]*90/100,
?([Розничные]*100/[Закупочные]-100 >= 65 ,[Розничные]*88/100)))))))
1 lamme
 
07.08.20
15:32
кажись, с кавычками намудрил
2 lamme
 
07.08.20
15:33
если такие вещи сложные - то делай через

Если тогда
иначе
  Если тогда
  иначе
  конецесли;

конецесли;
3 Z2020
 
07.08.20
15:39
может со скобками?
4 FIXXXL
 
07.08.20
16:01
(0) ошибка в чем выражается?
5 Z2020
 
07.08.20
16:02
В формуле обнаружены ошибки
6 acht
 
07.08.20
16:06
Ошибка в последеней строке
7 lamme
 
07.08.20
16:15
(4)
в несоблюдении пунктуации.

если вообще лень и хочется быть крутым - то сделай это условие по шагам
те сначала одно ?()
потом вкладывай еще одно  ?(?())
и тд = и так - найдешь на каком этапе буксует.

за тебя это никто делать не будет
и готового решения тут тебе не выдадут.
8 lamme
 
07.08.20
16:16
а по факту - смотри внимательно на (6)
9 vova1122
 
07.08.20
16:17
?([Розничные]*100/[Закупочные]-100 < 25,[Розничные]*97/100,
?([Розничные]*100/[Закупочные]-100 < 30,[Розничные]*96/100,
?([Розничные]*100/[Закупочные]-100 < 35,[Розничные]*95/100,
?([Розничные]*100/[Закупочные]-100 < 45,[Розничные]*94/100,
?([Розничные]*100/[Закупочные]-100 < 60,[Розничные]*93/100,
?([Розничные]*100/[Закупочные]-100 < 65,[Розничные]*90/100,[Розничные]*88/100))))))

как-то так можно упростить
10 lamme
 
07.08.20
16:18
это твое последнее условие
?([Розничные]*100/[Закупочные]-100 >= 65 ,[Розничные]*88/100)
ничего не видишь ,
11 lamme
 
07.08.20
16:18
?
12 ГоловуСломала
 
07.08.20
16:32
(0) У вас просто нет общего условия, ну т.е вы пишите что если условия такие-то то считать вот так, а если условия не выполнились? Вот он и ждет что вы ему пропишите еще условие общее.. вот  vova1122 правильную наводку дал...в последней строке добавьте...
13 ГоловуСломала
 
07.08.20
16:35
ну вот так например
?([Розничные]*100/[Закупочные]-100 < 25,[Розничные]*97/100,
?([Розничные]*100/[Закупочные]-100 >= 25 и [Розничные]*100/[Закупочные]-100 < 30,[Розничные]*96/100,
?([Розничные]*100/[Закупочные]-100 >= 30 и [Розничные]*100/[Закупочные]-100 < 35,[Розничные]*95/100,
?([Розничные]*100/[Закупочные]-100 >= 35 и [Розничные]*100/[Закупочные]-100 < 45,[Розничные]*94/100,
?([Розничные]*100/[Закупочные]-100 >= 45 и [Розничные]*100/[Закупочные]-100 < 60,[Розничные]*93/100,
?([Розничные]*100/[Закупочные]-100 >= 60 и [Розничные]*100/[Закупочные]-100 < 65,[Розничные]*90/100,
?([Розничные]*100/[Закупочные]-100 >= 65 ,[Розничные]*2,[Розничные]*88/100)))))))
14 vova1122
 
07.08.20
16:40
(13) и что ты напридумала тут? С синтаксисом наверное правильно, но с логикой нет ("Иначе" в последней строке никогда не отработает). Ну и как я написал Все условия до "И" лишние в данном случае.
15 ГоловуСломала
 
07.08.20
16:40
(14) А вы попробуйте
16 vova1122
 
07.08.20
16:46
Даже пробовать ненужно. Такой примитивный код глазами отрабатывается. 1. В последнюю строку попадаем, когда и так будет только больше 65. И еще раз проверяем действительно ли больше 65 (а тут никаких других значений и небудет. Так как все меньшне 25 будут в первой строке, от 25 до 65 распределяться в середине. И на "Иначе" в последней строке просто нет больше чисел. Или использовать Комплексные числа)
17 ГоловуСломала
 
07.08.20
17:09
(16) Ну просто вы человек и конечно логически можете предположить что условие больше 65 исключает дальнейшие действия, но программа этого не знает, и поэтому (как вы сами выше писали) должно сохраниться условие ЕСЛИ ТОГДА ИНАЧЕ.... Автор правильно расписал ЕСЛИ ТОГДА,но не закончил ИНАЧЕ у него в формуле нет... И да, я там копировала и неправильно вставила в итоге должно получиться так
?([Розничные]*100/[Закупочные]-100 < 25,[Розничные]*97/100,
?([Розничные]*100/[Закупочные]-100 >= 25 и [Розничные]*100/[Закупочные]-100 < 30,[Розничные]*96/100,
?([Розничные]*100/[Закупочные]-100 >= 30 и [Розничные]*100/[Закупочные]-100 < 35,[Розничные]*95/100,
?([Розничные]*100/[Закупочные]-100 >= 35 и [Розничные]*100/[Закупочные]-100 < 45,[Розничные]*94/100,
?([Розничные]*100/[Закупочные]-100 >= 45 и [Розничные]*100/[Закупочные]-100 < 60,[Розничные]*93/100,
?([Розничные]*100/[Закупочные]-100 >= 60 и [Розничные]*100/[Закупочные]-100 < 65,[Розничные]*90/100,
?([Розничные]*100/[Закупочные]-100 >= 65 ,[Розничные]*88/100,[Розничные]*2)))))))
ну просто он никогда не будет умножать на 2, а вот для формулы ему это необходимо
18 vova1122
 
07.08.20
17:20
(17) Вы главного моего посыла не поняли (Все условия в каждой строке до "И" лишние. Например во вторую строку мы и так попадаем когда больше 30. Зачем еще раз это проверять? И так по каждой строке. В итоге приходим к моему варианту. А по логике для машины естественно отработает одинаково что мой что ваш исправленный код .
19 ГоловуСломала
 
07.08.20
17:23
(18) Ну тут я с вами полностью согласна
20 vova1122
 
07.08.20
17:36
(19) Кстати ты на форуме зарегистрировалась раньше чем народилась.....
21 ГоловуСломала
 
07.08.20
17:47
(20) Только сейчас обратила внимание на это 🤣🤣🤣, так-то судя по профилю мне и от роду-то всего 4 дня.... Ну что ж... Бывает