Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Условие в макете печатной формы

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

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



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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.