CbCoder (21 Сентябрь 2016 - 15:53) писал:
Хотя, сейчас только заметил, что у вас условие обернуто в цикл foreach. Это конечно явно избыточный вариант, хотя формально и рабочий. Если вас это беспокоит, то лучше размещать в условие {$Услуги}:
{if {$Услуги}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Т.е. в переводе на человеческий это "Если подтаблица Услуги не пуста, то...". Оборачивать в цикл естественно не нужно.
Этот вариант пробовал самым первым, но он не срабатывает. Чтобы не быть голословным, проведем эксперимент на
демонстрационной конфигурации сайта.
В базе есть таблица
Заявки. Открываем
первую попавшуюся запись в этой таблице. Видим внутри вложенную таблицу
Работа по заявке. Идем в
настройки шаблонов печати таблицы Заявок и создаем новый шаблон. Результат работы созданного шаблона с различными вариантами кода.
Первый вариант.
{if {$Работа по заявке}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: Syntax Error in template "string:" on line 1 "{if {$Работа по заявке}}" - Unexpected "�", expected one of: "{" , "identifier"
Первый вариант в одну строку:
{if {$Работа по заявке}}<div>Здесь вывод шапки подтаблицы Услуги</div>{/if}
Результат: Syntax Error in template "string:" on line 1 "{if {$Работа по заявке}}<div>Здесь вывод шапки подтаблицы Услуги</div>{/if}" - Unexpected "�", expected one of: "{" , "identifier"
Второй вариант:
{if {$Работа по заявке.Действие}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: результат отсутствует, сообщение в блоке DIV не выводится.
Третий вариант:
{foreach from="{$Работа по заявке}" name="Работа по заявке" item=subtable}{/foreach}
{if {$Работа по заявке}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: Syntax Error in template "string:" on line 2 "{if {$Работа по заявке}}" - Unexpected "�", expected one of: "{" , "identifier"
Четвертый вариант:
{foreach from="{$Работа по заявке}" name="Работа по заявке" item=subtable}{/foreach}
{if {$Работа по заявке.Действие}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: все работает
Код не копировал, писал вручную. Ошибки из-за скрытых символов нет. Писал в том числе и в одну строку.
Если быть точным, то ваш вариант срабатывает, но только для данных, размещенных в родительской таблице, а для подчиненных таблиц не срабатывает.
Есть идеи?
Сообщение отредактировал weranda: 21 Сентябрь 2016 - 21:21