Имя: Пароль:
1C
1С v8
Формирование строки
0 PiliGrim88
 
13.09.12
15:05
Всем привет, разбираю чужой код и напоролся на функцию вида
Функция ПолныйАдрес(Конт) Экспорт
   Падр=?(Конт.Город="","    ","г. "+ Конт.Город);
   Падр=Падр+?(Конт.Адрес="","  ",Конт.Адрес);

   Возврат  Падр;
КонецФункции
Ранее не встречал подобного, хотелось бы узнать ,что это означает.
P.S. я не 1с программист, коллега уволился на меня свалил всю его работу. Я же пишу в основном на C++, за недельку вроде разобрался немного в языке, что бы хоть как-то ориентироваться.
P.S.S
Собственно функция рабочая но мне нужно оттуда город убрать.
1 PiliGrim88
 
13.09.12
15:07
Вопрос то я не сформулировал, что означает ? перед скобкой
2 LehhaK
 
13.09.12
15:07
Если
3 vinogradъ
 
13.09.12
15:08
Функция ПолныйАдрес(Конт) Экспорт
   Падр = ?(Конт.Адрес="","  ",Конт.Адрес);
   Возврат  Падр;
КонецФункции
4 dunpil
 
13.09.12
15:08
Это аналог Если ... Тогда .... Иначе
5 PiliGrim88
 
13.09.12
15:09
Большое спасибо за быстрый ответ, но хотелось  бы поподробнее про Если, как это работает?
6 vinogradъ
 
13.09.12
15:09
(1) тоже, что и в сях ? :
7 Fish
 
13.09.12
15:10
(5) ? (вычислить выражение по условию)
Синтаксис:
   ?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)

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

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

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

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

Описание:
Позволяет вычислить одно из двух заданных выражений в зависимости от результата вычисления логического выражения.
8 Лефмихалыч
 
13.09.12
15:10
(0) а как ты пишешь в основном на С++, если не знаешь тернарного оператора "a ? b : c"?
9 Reset
 
13.09.12
15:10
(0)
"Я же пишу в основном на C++"

?(x,y,z)

то же самое что и
x?y:z
10 Reset
 
13.09.12
15:10
(8) +1 :)
11 Лефмихалыч
 
13.09.12
15:11
(5) отойди от компьютера и позови взрослых
12 Reset
 
13.09.12
15:12
Ах красота
"Я же пишу в основном на C++, "
"но хотелось  бы поподробнее про Если"
13 PiliGrim88
 
13.09.12
15:12
Видимо я не настолько хорошо знаю C++, что за 5лет я первый раз встретил такую структуру >_<. Большое спасибо за ответы
14 PiliGrim88
 
13.09.12
15:12
Ну либо встречал, и не обратил внимания.
15 vinogradъ
 
13.09.12
15:13
(13) Читать так? Видимо я не ..... знаю C++
16 Мимо Проходил
 
13.09.12
15:13
(5) If Then Else
17 Лефмихалыч
 
13.09.12
15:14
ПЯТЬ ЛЕТ?!?!?!!! о_0
18 Лефмихалыч
 
13.09.12
15:14
(16) в С++ нет такой конструкции
19 Лефмихалыч
 
13.09.12
15:15
/me подавился чаем
20 sergeante
 
13.09.12
15:17
(0) даже не зная синтаксиса 1С нормальному прогу не сложно догадаться, что делает "?( , , )", имхо.
21 Reset
 
13.09.12
15:18
(18)
# define Then
и вперед :)
22 Лефмихалыч
 
13.09.12
15:24
(21) лучше так

// веселой отладки, суки
#define Then || true
23 sergeante
 
13.09.12
15:25
(22) бгг
24 PiliGrim88
 
13.09.12
15:26
Как бы так сказать, те знания которые у меня есть c++ хватает для того что бы выполнять постваленные задачи, я очень раздосадован, что не запомнил от корки до корки Страуструпа, и теперь наверное не смогу заснуть , т.к люди у которых я попросил помощь, сначала помогли мне, после чего начали кунать в чан с не самым хорошим содержимом.
P.S Все равно спасибо, за помощь
25 sergeante
 
13.09.12
15:28
(24) расслабься, никто не окунает, просто стебутся, тут так принято
26 ДенисЧ
 
13.09.12
15:29
(24) А ничо, что a?b:c - это не Страустрап, Керниган&Ритчи?
27 Лефмихалыч
 
13.09.12
15:31
(24) Расслабься - ни один ты ни хера не знаешь - я тоже Страуструпа не помню наизусть, а последний раз код на С++ писал 6 лет назад, да и в общем опыт с С++ у меня чуть больше года.
(26) у Страуструпа это тоже есть
28 Мимо Проходил
 
13.09.12
15:34
А почему в 1С нет фортрановской конструкции
IF Выражение, м1, м2, м3 -  фортрановская конструкция проверки условия на меньше, равно, больше нуля и перехода по соответствующей метке :))
29 Лефмихалыч
 
13.09.12
15:38
(28) видимо потому, что 1С - это не фортран
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс