8 (800) 302-62-68
+7 (499) 348-29-58
sale@rbs-crm.ru

Документация разработчика

Печатная форма

“Печатная форма” используется для печатного представления «Объекта». Печатная форма чаще всего бывает у «Документов», например у “Счета”, “Договоры”, “Ком. предложения”, «Отгрузки».

У одного документа может быть несколько печатных форма. Например, у документа “Отгрузки” 4 печатные формы:

  • Акт выполненных работ
  • ТОРГ-12
  • Счет-фактура
  • УПД.

Для вывода печатный формы на экран используется кнопка “Печать”.

«Печатная форма» состоит из 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>

Где:

  • {PRODUCT} — это блок

Для того, чтобы на экран вывести строки «Номенклатуры» объекта «Счет» необходимо на закладке “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\String; 
    
    class Main extends \Kernel\Actions\Forms\Prints {
        
        protected function onPlay() {
                ...
                }
?>

Для вывода числа в денежном формате используется метод money():

Text::money($product->price_nds)

Где:

  • $product->price_nds — поле объекта табличной части product

Результат:

400.00

Для вывода число прописью используется метод numberToText():

$sumText = String::numberToText($sum, true, $currencyDefault);

Где:

  • $sum — число (1000)
  • $currencyDefault — валюта (ID)

Результат:

Четыреста рублей 00 коп.