Имя: Пароль:
1C
1C 7.7
v7: Условие в макете печатной формы
0 Asya666
 
02.03.21
12:28
Доброго дня! поставлена задача чтобы в печ форму выводились на печать реквизиты физлица (с заполнением из карточки контрагента), если в накладной выбран частник, и соответственно чтобы для ИП и юриков выводился свой набор реквизитов (с заполнением из карточки контрагента) в ту же печ форму. Попыталась решить этот момент закинув в нужную ячейку печ формы такой текст:
?([Клиент.Форма] = [Перечисление.Формы.ЧЛ],
[Клиент]
Паспорт серии [СокрЛП(Клиент.ПаспортСерия)] № [СокрЛП(Клиент.ПаспортНомер)]
Выдан [СокрЛП(Клиент.ПаспортВыдан)], [СокрЛП(Клиент.ПаспортДата)]
Адрес: [СокрЛП(Клиент.Адрес)],

[Клиент] ОГРН [Клиент.ОГРН]
ИНН [Клиент.ИНН]
КПП [Клиент.КПП]
Р/с [Клиент.Расч_Счет]
в [Клиент.Банк]
БИК [Клиент.МФО]
Кор/с [Клиент.Корр_счет]
ОКОНХ [Клиент.КодОКОНХ]
ОКПО [Клиент.КодОКПО]



[Клиент.Должность]_________/[Клиент.ФИО])
В свойствах ячейки ставила тип и Выражение и Шаблон, все реквизиты указаны без ошибок. Нормального описания как правильно описывать условия в макетах так и не нашла на просторах интернета. При формировании печ формы выводит вышеуказанное выражение с расчитанными реквизитами там где это возможно, никакой ругани на некорректность выражения нет и выводит в качестве результата выражения (в одном из примеров) "ч.л. = ч.л.", то есть находит нужные значения, подставляет, но почему то не обрабатывает как Истину.
Люди добрые, помогите кто знает как это правильно должно работать?
1 Василий Алибабаевич
 
02.03.21
12:32
(0) Две секции. Одна для Юрлиц, другая - для физлиц. В зависимости от типа контрагента выводим одну или другую. Например так :
Таб.ВывестиСекцию(?(Клиент.Форма = Перечисление.Формы.ЧЛ, "СекцияФ", "СекцияЮ"));
2 Mikeware
 
02.03.21
12:32
это клюшки, это вам не снеговик
3 Asya666
 
02.03.21
12:35
(1) Значит в самой секции так условие не описать чтоб проверка внутри была?
4 Андрей_Андреич
 
naïve
02.03.21
12:36
(3) нет
5 Builder
 
02.03.21
12:37
(3) Такие условия гораздо проще делать в модуле и выводить уже готовый текст.
Либо по секциям, либо просто формировать нужный текст.
6 Asya666
 
02.03.21
12:37
спасибо)
7 Андрей_Андреич
 
naïve
02.03.21
12:38
?(Клиент.Форма = Перечисление.Формы.ЧЛ, Шаблон(), Шаблон());
8 Злопчинский
 
02.03.21
13:55
(0) Плохая практика.
вся логика д.б. в модуле. В Макете - выводить только готовые переменные.
все переменные макета вычислять в модуле печформы.
9 Злопчинский
 
02.03.21
13:56
Восьмерочники такие смишные... ;-)
10 Mikeware
 
02.03.21
14:03
(9) такой стиль.
хотя говнокодить можно на чем угодно...
11 hhhh
 
02.03.21
21:49
(8) на самом деле это только в семерке такая хрень СокрЛП(Клиент.ПаспортСерия). В восьмерке выражения запрещены.