Имя: Пароль:
1C
 
ошибка в условии? синтаксис
🠗 (Волшебник 28.08.2015 13:36)
0 pro3ri
 
28.08.15
13:35
Добрый день!

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбъектДок = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.АктСверкиВзаиморасчетов"));
        СтрокаТЧ = ОбъектДок.Взаиморасчеты.Добавить();
        СтрокаТЧ.Документ = ВыборкаДетальныеЗаписи.Регистратор;
        ?(ВыборкаДетальныеЗаписи.СуммаОборот>0, СтрокаТЧ.СуммаУвеличенияДолга = ВыборкаДетальныеЗаписи.СуммаОборот,
            СтрокаТЧ.СуммаУменьшенияДолга = -ВыборкаДетальныеЗаписи.СуммаОборот);
    КонецЦикла;

{Документ.АктСверкиВзаиморасчетов.Форма.ФормаДокумента.Форма(53,4)}: Встроенная функция может быть использована только в выражении. (Регистратор)
        ?<<?>>(ВыборкаДетальныеЗаписи.СуммаОборот>0, СтрокаТЧ.СуммаУвеличенияДолга = ВыборкаДетальныеЗаписи.СуммаОборот,  (Проверка: Сервер)
{Документ.АктСверкиВзаиморасчетов.Форма.ФормаДокумента.Форма(53,4)}: Встроенная функция может быть использована только в выражении. (Регистратор)
        ?<<?>>(ВыборкаДетальныеЗаписи.СуммаОборот>0, СтрокаТЧ.СуммаУвеличенияДолга = ВыборкаДетальныеЗаписи.СуммаОборот,  (Проверка: Тонкий клиент)

Как поправить?
1 Волшебник
 
модератор
28.08.15
13:37
Хватит тупить
2 Масянька
 
28.08.15
13:38
(1) Пятница. Кстати, последняя летняя :)))
3 MUXACb
 
28.08.15
13:38
(0) Посмотреть синтаксис помощник
4 Ненавижу 1С
 
гуру
28.08.15
13:38
?(ВыборкаДетальныеЗаписи.СуммаОборот>0, СтрокаТЧ.СуммаУвеличенияДолга = ВыборкаДетальныеЗаписи.СуммаОборот,
            СтрокаТЧ.СуммаУменьшенияДолга = -ВыборкаДетальныеЗаписи.СуммаОборот);

здесь не надо выпендриваться, а надо писать ЕСЛИ ТОГДА ИНАЧЕ
5 pro3ri
 
28.08.15
13:39
1 РАЗ применяю эту функцию

Если ВыборкаДетальныеЗаписи.СуммаОборот>0 Тогда
        
            СтрокаТЧ.СуммаУвеличенияДолга = ВыборкаДетальныеЗаписи.СуммаОборот
        Иначе
            СтрокаТЧ.СуммаУменьшенияДолга = -ВыборкаДетальныеЗаписи.СуммаОборот;
        
        КонецЕсли;

так то все работает
6 Лефмихалыч
 
28.08.15
13:41
(5) прежде, чем применять функции, почитай мануал про них
7 pro3ri
 
28.08.15
13:43
(0) так заработало всем спасибо:
        Сообщить(""+?(ВыборкаДетальныеЗаписи.СуммаОборот>0, СтрокаТЧ.СуммаУвеличенияДолга = ВыборкаДетальныеЗаписи.СуммаОборот,
            СтрокаТЧ.СуммаУменьшенияДолга = -ВыборкаДетальныеЗаписи.СуммаОборот));
8 pro3ri
 
28.08.15
13:46
СП: ? (вычислить выражение по условию)
Синтаксис:
    ?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)

Параметры:
    <Логическое выражение>
    Логическое выражение, результат вычисления которого определяет одно из результирующих выражений, которые будут вычислены. Если результат его вычисления Истина, то будет вычисляться <Выражение 1>. Если результат Ложь – то <Выражение 2>.

    <Выражение 1>
    Результирующее выражение, которое будет вычисляться, если результат логического выражения Истина.

    <Выражение 2>
    Результирующее выражение, которое будет вычисляться, если результат логического выражения Ложь.

Возвращаемое значение:
Результат вычисления одного из результирующих выражений.

Описание:
Позволяет вычислить одно из двух заданных выражений в зависимости от результата вычисления логического выражения.

тут ни слова про использование только в выражении...
9 Апош
 
28.08.15
13:49
(7) да или нет говорит?
10 Ymryn
 
28.08.15
13:49
(7) а неплохо. Хардкорный способ решения проблемы. Микроскоп определенно оказался в умелых руках.
11 pro3ri
 
28.08.15
13:51
(9) строковое представл результата условия
12 Апош
 
28.08.15
13:52
(11) марш читать СП