Закажите бесплатную презентацию продуктов РосБизнесСофт прямо сейчас!
“Печатная форма” используется для печатного представления «Объекта». Печатная форма чаще всего бывает у «Документов», например у “Счета”, “Договоры”, “Ком. предложения”, «Отгрузки».
У одного документа может быть несколько печатных форма. Например, у документа “Отгрузки” 4 печатные формы:
Для вывода печатный формы на экран используется кнопка “Печать”.
«Печатная форма» состоит из 2 закладок “Сценарий” и “Шаблон”. В шаблоне используется HTML верстка документа.
Для того, чтобы передать значение полей «Объекта» в «Шаблон» используется специальная конструкция:
Счет № $data.number.value$ от $data.date.value$
$data — это текущий объект системы.
В данном случае на экране выведется номер и дата счета.
Также можно легко получать значение полей из внутренних объектов. Например, выведем значение полей «ИНН» и «КПП» объекта «Юридического лица»:
<td width="22%">ИНН $data.organization.inn.value</td> <td width="22%">КПП $data.organization.kpp.value</td>
Для вывод “Табличной части” объекта используются блоки.
Например, вывод табличной части “Номенклатура” документа “Счет” происходит следующим образом:
<table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td align="center" width="3%"><b>№</b></td> <td align="center" width="20%"><b>Артикул</b></td> <td align="center" width="45"><b>Наименование</b></td> <td align="center" width="7%"><b>Кол-во</b></td> <td align="center" width="5%"><b>Ед.</b></td> <td align="center" width="10"><b>Цена</b></td> <td align="center" width="10"><b>Сумма</b></td> </tr> {PRODUCT} <tr> <td align="center">$num</td> <td align="center">$article</td> <td>$name</td> <td align="center">$number</td> <td align="center">$unit</td> <td align="right">$price</td> <td align="right">$sum</td> </tr> {/PRODUCT} </table>
Где:
Для того, чтобы на экран вывести строки «Номенклатуры» объекта «Счет» необходимо на закладке “PHP-сценарий” в методе onPlay() добавить:
foreach ($this->structure->products as $num => $product) { $sum+= $product->total; $price = $product->total; $sum_nds+=$product->nds; $this->page->block("BASE.PRODUCT", ["num" => ($num + 1), "name" => $product->name, "article" => $product->product->article, // артикул Номенклатуры "unit" => $product->product->units->name, // Ед. измерения Номенклатуры "number" => $product->number, "price" => Text::money($product->price_nds), "sum" => Text::money($price), "no_discount" => “”]); }
Сначала перебираются все элементы табличной части “product” (Номенклатура) и передает значение полей в блок PRODUCT базового блока BASE.
Подробнее про работу с блоками можно найти в соответствующем разделе.
Для использования вспомогательный функции необходимо подключить класс вспомогательный класс Text:
<?php namespace Applications\Companies\Orders\Prints; use Kernel\Framework\Text; class Main extends \Kernel\Actions\Forms\Prints { protected function onPlay() { ... } ?>
Для вывода числа в денежном формате используется метод money():
Text::money($product->price_nds)
Где:
Результат:
400.00
Для вывода число прописью используется метод numberToText():
$sumText = Text::numberToText($sum, true, $currencyDefault);
Где:
Результат:
Четыреста рублей 00 коп.