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