Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Формула в типе цен

Формула в типе цен
Я
   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)))))))
   lamme
 
1 - 07.08.20 - 15:32
кажись, с кавычками намудрил
   lamme
 
2 - 07.08.20 - 15:33
если такие вещи сложные - то делай через

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

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

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

за тебя это никто делать не будет
и готового решения тут тебе не выдадут.
   lamme
 
8 - 07.08.20 - 16:16
а по факту - смотри внимательно на (6)
   vova1122
 
9 - 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))))))

как-то так можно упростить
   lamme
 
10 - 07.08.20 - 16:18
это твое последнее условие
?([Розничные]*100/[Закупочные]-100 >= 65 ,[Розничные]*88/100)
ничего не видишь ,
   lamme
 
11 - 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)))))))
   vova1122
 
14 - 07.08.20 - 16:40
(13) и что ты напридумала тут? С синтаксисом наверное правильно, но с логикой нет ("Иначе" в последней строке никогда не отработает). Ну и как я написал Все условия до "И" лишние в данном случае.
   ГоловуСломала
 
15 - 07.08.20 - 16:40
(14) А вы попробуйте
   vova1122
 
16 - 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, а вот для формулы ему это необходимо
   vova1122
 
18 - 07.08.20 - 17:20
(17) Вы главного моего посыла не поняли (Все условия в каждой строке до "И" лишние. Например во вторую строку мы и так попадаем когда больше 30. Зачем еще раз это проверять? И так по каждой строке. В итоге приходим к моему варианту. А по логике для машины естественно отработает одинаково что мой что ваш исправленный код .
   ГоловуСломала
 
19 - 07.08.20 - 17:23
(18) Ну тут я с вами полностью согласна
   vova1122
 
20 - 07.08.20 - 17:36
(19) Кстати ты на форуме зарегистрировалась раньше чем народилась.....
   ГоловуСломала
 
21 - 07.08.20 - 17:47
(20) Только сейчас обратила внимание на это 🤣🤣🤣, так-то судя по профилю мне и от роду-то всего 4 дня.... Ну что ж... Бывает


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.