Недокументированные операторы арифметических действий в 1С 8 #543662


#0 by PetrVV
Расскажите, пожалуйста, какие операторы вам известны ?
#1 by Fragster
Арифметические операции В языке  определены следующие виды арифметических операций: сложение (Оп1 + Оп2) остаток от деления Арифметические операции имеют один или два операнда, в зависимости от типа которых, операция имеет ту или иную семантику. Тот или иной семантический вариант операции определяется по первому операнду. В случае несовпадения типа второго операнда с требуемым, значение преобразуется к требуемому типу в соответствии с правилами преобразования типов. Если тип первого операнда не соответствует ни одному из допустимых типов, то в зависимости от ситуации может производиться преобразование типов или возбуждаться состояние ошибки выполнения. Сложение определено для следующих типов операндов: Число+ЧислоДата+Число  (к дате прибавляется число секунд) Вычитание определено для следующих типов операндов: Число-ЧислоДата-Число (от даты отнимается число секунд) Дата-Дата (результатом является разница между двумя датами, измеренная в секундах) Умножение: Число*Число Деление: Число/Число Остаток от деления: Число%Число
#2 by Ненавижу 1С
наверное документировано, но прикольно "00024"-(-1)
#3 by Fragster
=> унарный минус (-Оп1)
#4 by Нуф-Нуф
может 1с хранит все числа как строку, а в момент обращения к ним как к числам перегоняет в числа?
#5 by Шпиндельная бабка
Икс = "00024"-(-1) = 25 //вот это прикол ...
#6 by Stepa86
унарный минус приоритет имеет выше, поэтому вычисления начинается с него, а потом привидение типа, наверно
#7 by Defender aka LINN
, И где смеяться? "Недокументированные арифметические операторы" - это сильно. ВнушаетЪ.
#8 by andrewks
а где прикол-то?
#9 by Murzz
"Тот или иной семантический вариант операции определяется по ПЕРВОМУ операнду. В случае несовпадения типа ВТОРОГО операнда с требуемым, значение преобразуется к требуемому типу в соответствии с правилами преобразования типов. А в преобразовалось значение первого операнда, а не второго.
#10 by Ненавижу 1С
математически равно -2 в 1С равно -1
#11 by Ненавижу 1С
для строк бинарная операция минус не определена
#12 by andrewks
баян
#13 by Defender aka LINN
Первый - это тот, у кого приоритет выше. уже написал.
#14 by Fragster
"00024"+(-1) = "00024-1"
#15 by Ненавижу 1С
еще какой!
#16 by andrewks
прикол
#17 by Stepa86
хе, значит ошибочно, а дело в умном интерпретаторе, который не падает при попытке вычесть из строки всякую гадость
#18 by zak555
так это контактинации
#19 by Ненавижу 1С
в ?
#20 by zak555
к =)
#21 by orefkov
Унарный плюс в 1С еще есть. 1 ++ 1
#22 by Живой Ископаемый
в запросах?
#23 by butterbean
"00024"-1=23 "00024"*1=24 "00024"/1=24 , имхо просто при попытке вычислить что-то кроме суммы все преобразуется в число
#24 by Шпиндельная бабка
ВЫбрать &Док КАК Документ Знаю что баян :D
#25 by Stepa86
по , всегда происходит преобразование в тот тип, который определен для этой операции
#26 by Stepa86
+ всмысле для вычитания может быть и к дате преобразовано
#27 by Ненавижу 1С
вот ВЫБРАТЬ
#28 by Fragster
так ведь правильно все
#29 by Ненавижу 1С
какие ваши доказательства?
#30 by PetrVV
Круто.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С