An invoice is the foundation of financial relationships between a company and its client. If the document looks unprofessional, lacks mandatory details, or does not match the corporate style, it reduces trust and delays payment. We help create invoice templates in Bitrix24 that look solid and automate routine tasks: from inserting bank details to calculating VAT and the amount in words. Our development is turnkey — from analysis to template deployment and staff training. With 7 years of experience and over 50 completed projects, we guarantee a result that meets your accounting policies.
A typical scenario: a manager manually copies details, recalculates VAT, and writes the amount in words — each invoice takes up to 10 minutes. Over a month, this adds up to several hours of repetitive work with the risk of errors. An automated template reduces this procedure to 30 seconds and eliminates typos. This is 20 times faster than manual filling, saving your company up to 5 hours per month per manager.
In this article, we will look at what types of invoices exist in Bitrix24, how to configure mandatory elements, and how we can speed up this process.
How to automate an invoice template in Bitrix24?
The process includes five stages: analysis, design, implementation, testing, and deployment. At each stage, we take into account the specifics of your business — from 1C integration to the requirements of Federal Law 54-FZ.
What details must be included in an invoice?
According to Russian business practice, an invoice must include:
- Seller details: name, INN/KPP, legal address, bank details (BIC, account number, correspondent account, bank)
- Buyer details: name, INN/KPP, address
- Invoice number and date
- Table of goods/services with quantity, price, and amount
- VAT (if applicable)
- Total amount in figures and words
- Place for signature and seal
It is convenient to store seller details statically in the DOCX template — they rarely change. Buyer data is pulled from the CRM via company or contact placeholders. We verify compliance with the requirements of Federal Law 54-FZ and Ministry of Finance recommendations.
How to add amount in words to an invoice template?
Bitrix24 has no native support for amount in words in Russian. There are three approaches:
| Option |
Description |
Implementation speed |
| Manual field |
Manager enters the amount in words in a custom field |
Instant, but error-prone |
| Robot + business process |
JavaScript action calculates the amount in words and writes to a field |
2–3 days of setup |
| External webhook |
When an invoice is modified, REST API triggers a script |
1–2 days + server |
We recommend the second approach: it does not require external hosting and works reliably in the cloud. DOCX templates in Bitrix24 are 3 times more flexible than standard PDF — you can easily change any design elements.
Why automate invoice issuing?
Automation reduces invoice processing time by 20 times compared to manual filling. Average time savings amount to several hours per month per manager. Return on investment occurs within a few months due to reduced operational costs.
What is included in the work
- Analysis of the current invoice type (old or smart process)
- Creation of a template layout in DOCX considering corporate style
- Configuration of custom UF fields for details and amount in words
- Programming a robot or webhook for autofill
- Template upload and testing on 5-10 invoices
- User documentation and 2-week support after delivery
- Access to the template and instructions on how to update details
Step-by-step development process
- Analysis — we find out which invoices you use, what fields are needed, whether there is 1C integration.
- Design — we draw a template layout, agree on the arrangement of details.
- Implementation — we create a DOCX with placeholders, configure fields and automation.
- Testing — we test on real invoices, fix errors.
- Deployment — we upload the template to the working environment, train managers.
At the final stage, we hand over access to the template and instructions on how to update details.
Case: invoice template for an IT company
Our client is an IT company issuing invoices for technical support and development. They needed an invoice with details, a table of services (name, hours, rate, amount), 20% VAT, total in words, and signatures of the director and chief accountant. We chose static storage of details in DOCX, a table of services via the {#Products} repeat block, custom UF fields for VAT and amount in words, and a robot with a JavaScript action to compute these values. The template was uploaded and tested on 10 invoices. Time: 1.5 days. The client saved about 3 hours per month on manual filling.
Timeframes
| Task |
Timeframe |
| Modification of a standard template (details, styles) |
4–6 hours |
| Development from scratch + custom fields |
1–2 days |
| Template with automatic amount in words via robot |
2–3 days |
Typical timeframes and cost
Cost is calculated individually and depends on complexity — from a few hours to several days. We will provide an accurate estimate after analyzing your requirements. Typical cost range: from $200 for basic modifications to $800 for a full custom template with automation.
We have 7+ years of development experience on Bitrix and have completed over 50 invoice configuration projects. Our certificates and case studies are available on request. Contact us for an assessment of your project — we will prepare a solution within a day. Order a template development today to save your managers' time.
Why does website layout for 1C-Bitrix require professionalism?
Open template.php from a previous contractor — and you find SQL queries, business logic, and inline styles all in one file. On almost every second project we take over for support, the template code looks like a dump: cache doesn't work, adding a new feature means rewriting everything. Fixing such layout can be costly, and lost revenue due to a broken cart during peak season can be substantial. Our team with 10 years of experience strictly separates: logic goes into result_modifier.php or component_epilog.php, presentation into template.php. No CIBlockElement::GetList in templates. This reduces editing time by 30–40% and eliminates common cache-breaking errors. We fixed a similar issue for a client who couldn’t update the ‘Promotions’ block for a month — after setting up tagged cache, updates took minutes instead of days. Want the same results? Get a free audit of your current layout.
How to properly organize component templates?
A custom template is not a single file but a structure of five to six files:
-
template.php — only HTML and output of $arResult
-
result_modifier.php — data preparation, additional queries
-
component_epilog.php — code after caching (counters, dynamic content)
-
style.css and script.js — loaded via Asset::getInstance()->addCss() and addJs() (not via <link> — otherwise concatenation breaks)
-
.parameters.php — visual editor parameters
Example structure for a catalog:
local/templates/your_template/components/bitrix/catalog.section/.default/
├── template.php
├── result_modifier.php
├── component_epilog.php
├── style.css
├── script.js
└── .parameters.php
Typical templates we develop turnkey:
| Component |
What we do |
catalog.section and catalog.element |
View switching (grid/list/table), lazy load for images, srcset for retina |
sale.basket.basket |
AJAX update without reload, mini-cart via sale.basket.basket.line |
menu |
Mega menu with caching by sections, lazy loading of submenus |
search.title |
Autosuggest with 300ms debounce, product previews in dropdown |
breadcrumb |
Microdata BreadcrumbList according to Schema.org |
Caching: why does it break and how do we fix it?
Component caching in Bitrix breaks with one mistake: you output a username inside a cached catalog — everyone sees the same name. Solution — use component_epilog.php for dynamic inserts.
Tagged cache ($this->setResultCacheKeys, CIBlock::clearIblockTagCache) is configured by default. Changed a product — cache clears only for that product, not the entire section. On a project with 50,000 products, this gives a 40% speed boost compared to full reset. Official Bitrix documentation recommends using component_epilog.php for dynamic inserts. Real case. A client complained that everyone saw the same cart on the catalog page. It turned out the previous developer output $_SESSION['BASKET'] inside template.php of the catalog.section component. The component was cached for an hour — the cart was frozen. We moved the output to component_epilog.php and configured tagged cache on sale.basket.basket.line. The page didn’t lose speed, the cart became up-to-date. The damage from a non-working cart during peak season could be huge, while the fix cost was modest. Tagged cache reduces page rebuild time by 50× compared to full reset.
CSS approaches: BEM, Tailwind, or hybrid?
For large projects (30+ templates) we use BEM — .product-card__price, .product-card--featured. Styles are isolated, no conflicts. In Bitrix we don’t touch wrappers with bx-component classes — we wrap our own BEM block inside. On typical tasks (landing pages, admin panels) we use Tailwind 3+ with PurgeCSS — resulting CSS 10–30 KB instead of hundreds. Design tokens in tailwind.config.js lock colors, fonts, spacing in one place. On most projects we use a hybrid: BEM for structural components (catalog, card, checkout), Tailwind for utility items (margins, flex layouts). We agree on the boundary with the team in advance.
How do we achieve Core Web Vitals?
Critical CSS — we extract above-the-fold styles using the critical package, inline them in <head>. The rest loads asynchronously via media="print" onload="this.media='all'". LCP on mobile decreases by 1–1.5 seconds.
Images — the main bottleneck. We use <picture> with WebP and JPEG fallback. loading="lazy" for everything below the fold. width and height explicitly set — CLS = 0. A handler in urlrewrite.php generates WebP on the fly.
Minification and compression. CSS and JS via Vite or Bitrix built-in concatenation. Brotli on nginx (brotli_comp_level 6) — 15–20% more efficient than gzip. Static caching: expires 1y + versioning via query string.
For a catalog of 10,000 products, LCP went from 4.2 s to 2.1 s. Conversions improved by 12% after the speed fix. Want similar results? Order a free audit — we’ll evaluate your current layout and propose specific steps.
Deliverables after layout completion
When you order template development or adaptation, you receive:
- Source files of component templates with separation into
template.php, result_modifier.php, epilog
- CSS and JS loaded via Asset — no inline styles
- Configured caching with tags
- Documentation on structure and parameters
- Access to a Git repository with change history
- Training for your developer: how to edit the template without losing upgradeability
We guarantee Core Web Vitals compliance and cross-browser compatibility. Each project is assigned a lead engineer with 10+ years of Bitrix experience.
Process:
- Analysis of mockups and current project — identify components for rework
- Structure design — break the page into BEM blocks
- Implementation — build templates according to the scheme: template, result_modifier, epilog, CSS, JS
- Testing — check cache, responsiveness, Core Web Vitals, cross-browser compatibility
- Deployment — staging, acceptance, production
At each stage you get intermediate results and can make corrections. Contact our team for a project estimate — we’ll provide a timeline and cost within 1–2 days after receiving mockups.
Common mistakes in Bitrix layout
- SQL queries inside
template.php — breaks caching and creates heavy load
- Inline
<style> and <script> — breaks Asset concatenation and slows loading
- Missing
result_modifier.php — logic mixed with presentation
- Direct
$_REQUEST in cached components — user-specific data leaks
- Not using
component_epilog.php for dynamic content — entire cache invalidated on each user action
Each mistake has a simple fix — we correct them during development or audit.
Timelines
| Scope |
Timeline |
| Landing page (5–7 screens) |
3–5 days |
| Corporate website (15–20 unique pages) |
2–4 weeks |
| E-commerce store (30+ component templates) |
4–8 weeks |
| Customization of a Marketplace solution |
1–3 weeks |
| Redesign of an existing project |
3–6 weeks |
Ready to improve your layout? Order a preliminary consultation — we’ll calculate timelines and budget individually.