{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Счёт может быть красивым и в HTML, а не в PDF

В статье “Что должно быть в счёте на оплату, чего быть не должно и что дико бесит” мы разбирали содержимое счёта. По результатам той работы возникло желание оформить счёт стильно ибо стандартный вариант бухгалтерских программ вроде 1С какой-то страшный.

Дизайн обычного счёта

Дизайн обычного счёта

А ещё в нём целых два номера счёта, что выглядит странно. Один из них всё же корреспондентский счёт. Конечно, посвященные знают, но документ должен быть корректным даже для тех, кто сталкивается с оплатой в первый раз.

Почему HTML

Некоторые компании, которым приходится рассылать сотни тысяч счетов или квитанций бьются за размер файла PDF. У них важен каждый байт. Например, FastReports очень гордится тем, что их PDF на 14-25% меньше, чем PDF сформированный стандартными средствами.

У нас счетов не сотни тысяч, а на два порядка меньше. Но и тысячи счетов разослать по электронной почте с большими прикреплёнными файлами задача непростая. HTML формат позволяет рассылать существенно быстрее, так как размер письма меньше.

У HTML есть один недостаток — в нём может быть javascript, а javascript может быть потенциально опасным. Однако, это вопрос уже к фильтрам и антивирусному программному обеспечению. HTML-документу не помешал бы атрибут отключающий javascript. Или отдельный формат htmlcss, который гарантирует, что никакой javascript в файле исполняться не будет.

Плюсы HTML-формата:

  1. Легко генерится, верстается, внесение правок менее трудоёмкое, чем в PDF.
  2. Файл имеет меньший размер, чем PDF.
  3. Для просмотра не нужен Adobe Reader, а подойдёт любой браузер.
  4. Почтовые программы легко отображают HTML, сразу видно что пришло.
  5. Нет проблем с выделением и копированием данных. В PDF иногда бывают.

Сторонники PDF скажут, что PDF — это стандарт, что не такой уж он и большой, и Adobe Reader можно легко установить, и PDF много где отображается в preview-режиме, например, в тех же браузерах и почтовых программах, и даже можно научиться вносить в шаблоны PDF правки также быстро как HTML-шаблоны, а можно и HTML конвертировать в PDF. Очень даже может быть, как говорил профессор Преображенский, но не нравится мне PDF, а нравится HTML. Кстати, с конвертацией документов из HTML в PDF не сложилось у нас. Там пустая страница в конце в ряде случаев вылетала.

Если уж очень надо в PDF

Если ваши контрагенты или контролирующие органы все-таки просят счет именно в PDF формате, то в данном случае получателю достаточно через меню печати выбрать в принтере «Сохранить как PDF». Никаких дополнительных программ для этого не нужно.

Или, как вариант, существует масса библиотек конвертации HTML в PDF. И такой процесс существенно проще, чем изначально генерить документ в PDF.

HTML и печать формата А4

По умолчанию счёт и так распечатается нормально, главное, чтобы его ширина была 100%. У нас ещё и высота 100%. Небольшой тюнинг версии для печати желательно сделать.

Если нужно, чтобы на экране счёт выглядел приблизительно как на печати, то используйте стили:

html,body{ height: 297mm; width: 210mm; margin: 0; padding: 0; }

Однако, это ни к чему в общем случае. Всё больше компаний переходят на электронный документооборот, и никакой реальной необходимости распечатывать счёт нет. Ну если где-то старпёры коллекционируют до сих пор визирующие подписи на счетах, то правильнее пересмотреть свои бизнес-процессы.

При печати следует отключить фон, дабы не расходовать зря чернила:

@media print { .left_column { background: white; color: black; border-right: solid 1px#00578a; } }

Дополнительно, как вариант, можно на печати установить шрифт с засечками. Считалось, что на бумаге удобнее и быстрее читается шрифт с засечками. Лично мне тоже удобнее с засечками. Однако, исследования не подтверждают разницы.

HTML и ЭЦП (УКЭП)

HTML-файл можно подписать откреплённой усиленной квалифицированной подписью точно также, как и PDF. И точно так же он будет в соответствии с 63-ФЗ равнозначен счёту с собственноручной подписью. А проверить подпись можно на ГосУслугах.

Красивый счёт

Мы несколько дней согласовывали детали, упрощали, оптимизировали, на базе разных вариантов делали один. В результате получилось вот так:

Дизайн счёта на оплату дата-центра ITSOFT Игорь Тарасов

Дизайн счёта на оплату дата-центра ITSOFT

На бумаге будет принимать такой вид:

Версия для печати счёта на оплату дата-центра ITSOFT Игорь Тарасов

Версия для печати счёта на оплату дата-центра ITSOFT

Если у вас интересный счёт, то кидайте образец в комментарии.

Нужно ли внедрять красивые счета или стоит использовать дизайн счёта от 1С?
Нужно, мир должен быть красивым
Не нужно, к старому все привыкли
Показать результаты
Переголосовать
Проголосовать
0
84 комментария
Написать комментарий...
Game Topia

А что такое htmlcss? Онлайн стили типа? И ведь можно заинлайнить обращение на сервер, как с пустым пикселем в письмах.

К тому же делать что-то требующее от пользователей дополнительных навыков, мне кажется, не айс...

Ответить
Развернуть ветку
Igor Tarasov
Автор

Имеется в виду формат документа разрешающий только html и css. 
Можно, но это даст только подтверждение, что счёт открыли. 

Ответить
Развернуть ветку
Game Topia

Запрос на сервер расскажет все об устройстве и подскажет следующие шаги. К тому же, совсем скоро на всех устройствах будет Гудини, что позволит делать ещё большие гадости.

И что это за формат такой? Впервые слышу...

Ответить
Развернуть ветку
Igor Tarasov
Автор

Ага, за файрволом. И кому? Нам? Исполнитель будет хакать заказчика? 

Внимательно прочитайте контекст. Там сказано, что такой формат нужен. 
А javascript может быть и в PDF - в Wikipedia написано.

Ответить
Развернуть ветку
Game Topia

Для js специальное безопасное api. 

Ответить
Развернуть ветку
Igor Tarasov
Автор

Да как бы и производители браузеров тоже об этом заявляли и явно не думали делать небезопасным. Но во всяком безопасном, потом дырки находили. 

Безопасно — это просто отключить javascript, особенно там, где он нафиг не нужен. 

Ну и заодно загрузку внешних ресурсов. На веб-сервере это делается с помощью заголовков Content-Security-Policy https://vc.ru/tribuna/130375-servis-proverki-http-zagolovkov-servera то есть слабая работа в этом направлении была сделана, но реально этим мало кто пользуется. Поэтому и речь о том, что нужен формат htmlcss для подобных документов и для форматирования почтовых сообщений, чтобы по почте не присылали исполняемый код и подгружаемые пиксели.

Ответить
Развернуть ветку
81 комментарий
Раскрывать всегда