Имя: Пароль:
1C
1С v8
Альфа авто ред 5 как проверить на заполненность адреса контрагентов
,
0 AzamaT90
 
17.08.17
10:45
Всем привет. 1с обучаюсь так что прошу сильно не ругать.
Имеются два значения
СтруктураПредставления1=Новый Структура ("АдресЮридический");
СтруктураПредставления2=Новый Структура ("АдресФактический");
Необходимо проверить АдресФактический на заполненность в случае если пустой, вывести АдресЮридический.
Если ПустаяСтрока(СтруктураПредставления1) Тогда
   ОбластьМакета.Параметры.АдресЗаказчика = спПолучитьПредставление(ДокументОбъект.Заказчик,СтруктураПредставления1);
иначе
   ОбластьМакета.Параметры.АдресЗаказчика = спПолучитьПредставление(ДокументОбъект.Заказчик,СтруктураПредставления2);
КонецЕсли;
Застрял если указываю адрес юридический он выводит пустой. Если указываю фактический то выводит как надо.
1 drcrasher
 
17.08.17
10:47
Структура и ПустаяСтрока()? серьёзно?
2 AzamaT90
 
17.08.17
10:49
хммм... А как тогда лучше?
3 drcrasher
 
17.08.17
10:53
(2) намекаю: ПустаяСтрока() проверяет строку. спПолучитьПредставление() возвращает строку. дальше сам =)
4 h-sp
 
17.08.17
10:56
(2) вроде так и задумано у тебя

Если ПустаяСтрока(СтруктураПредставления1) Тогда
   ОбластьМакета.Параметры.АдресЗаказчика = спПолучитьПредставление(ДокументОбъект.Заказчик,СтруктураПредставления1);

если пустая СтруктураПредставления1, ты ее фигачишь в адрес заказчика.

значит, ты так задумал, поэтому пусто.
5 drcrasher
 
17.08.17
10:58
(4) ПустаяСтрока(СтруктураПредставления1) == ПустаяСтрока("Структура")
6 AzamaT90
 
17.08.17
11:19
Я думал:
Если имеет значение тогда
вывести строку
конец если

Если пусто тогда
...
Иначе
вывести строку
конец если

Или я ошибаюсь?
7 h-sp
 
17.08.17
11:35
(6) ну. Если пусто тогда заполняешь. Переписываешь это пусто в адрес заказчика.
8 AzamaT90
 
17.08.17
11:41
Уловил мысль. А с каким условием лучше проверить и вывести строку?
9 h-sp
 
17.08.17
12:09
(8) похоже

Если ПустаяСтрока(СтруктураПредставления2) Тогда
10 SiAl-chel
 
17.08.17
14:19
(8) Предполагаю (не трогал Альфа-Авто на восьмерке ни разу).
1. Сделай и заполни две переменные
Адрес(1|2) = спПолучитьПредставление(ДокументОбъект.Заказчик,СтруктураПредставления(1|2))
В них будет именно строка.
2. Потом уже включай проверку своего условия.
3. Почитай о типах данных в языке 1С. И всегда в будущем читай в синаксис-помощнике какого типа должны быть аргументы функций/процедур и какого типа будет возвращаемое значение функции.
11 AzamaT90
 
18.08.17
20:57
Понял, учту, спасибо)