INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Тягунов Иван | Управляющий партнер, основатель | Консалтинговая группа "Wiseadvice"

«UX/UI: почему 1С проигрывает веб-приложениям по интерфейсам, и как это изменить?»

В последние 5-7 лет решения на платформе 1С проигрывают позиции в разных нишах приложениям и сервисам, основанным на веб-технологиях. Основная причина тому - интерфейсы. Почему интерфейсы так важны пользователям и лицам, принимающим решение о выборе приложения? Почему "красиво" часто означает "эффективно"? Как успешно конкурировать с приложениями на веб-технологиях? Границы и технологии веб-разработки как внутри 1С, так и на стыке с 1С. Какие подходы и техники стоит перенять из веб-разработки? (Персонажи, сценарии, прототипы и др.). Когда в 1С нужно прототипирование интерфейсов, и как его осуществлять (инструменты)? Что такое дизайн-система, как ее разработать и поддерживать, к чему стремиться? Подходы и методы улучшения интерфейсов уже эксплуатируемых 1С-систем.

QR-штрихкод на кассовом чеке

Оборудование - Фискальный регистратор

5
Простой вопрос - что там должно быть, что туда пихать, и как это проверить?

Я даже не называл бы это "статьёй" или "публикацией". Это скорее заметка, по итогам потраченного времени.

Дело в том, что мне и коллегам за неделю поисков не удалось найти в сети адекватную и непротиворечивую информацию о том, что же должен включать двумерный штрихкод, размещённый на чеке, чтобы быть адекватно прочитанным с точки зрения ФНС. Мы знаем, что ФНС запустила мобильное приложение под Андроид для чтения и проверки чеков, мы знаем, что делаются порталы и службы от разных ОФД, мы знаем о сторонних утилитах некоторых умельцев. Тут интернет просто пестрит предложениями проверить ваш чек. А вот если задача стоит - эмулировать этот штрихкод, то сведений нету. Зачем? Например, генерировать электронный чек, чтобы потом посылать его клиенту на е-мейл.

Попытка изысканий в типовых конфигурациях кончилась маловразумительно - стало ясно лишь то, что ни пресловутая большая xml-строка, ни параметры команд логическим устройствам ФР/ККТ не содержат собственно названия товаров. Логично: даже у qr-кода ограниченная вместимость, а чек может быть из десятков позиций и их названия могут быть длинными. Вывод: в qr-коде содержится лишь итоговая информация, которая служит для идентификации уже собственно в базе ФНС и уже по ней, по ключевым полям, прочитанным из штрихкода, будут тянуться подробные сведения чека.

Найденная в Рознице 2.0 механика давала невалидную строку. Уж не знаю, когда поменялся стандарт, но весенний релиз не подошёл.

Поэтому сделали просто: отсканировали кучу разных чеков с самых разных мест пробития, и экстраполировали.

Итого, формат получился следующий: 

t=ДатаТВремя&s=СуммаСКопейкамиБезТриад&fn=НомерФискальногоНакопителяККТ&i=НомерФискальногоДокументаЧека&fp=УникальныйыФискальныйПризнакЧека&n=УСН

Или, если в коде,

    ТекстНаQR="t="+Формат(ДатаВремяЧека,"ДФ=ггггММддТЧЧммсс")+
    разд+"s="+Формат(ОбщаяСуммаЧека,"ЧРД=,;ЧЦ=10;ЧДЦ=2;ЧН=0,00;ЧГ=0")+
    разд+"fn="+СокрЛП(НомерФНвашегоККТ)+
    разд+"i="+Формат(ТекущийЧекФД,"ЧГ=0")+
    разд+"fp="+Формат(ТекущийЧекФП,"ЧГ=0")+
    разд+"n="+?(ЭтоУСН,"0","1");


Причём: номер ФН это свойство аппарата, зашитое в нём; можно прочитать с любого чека и единожды зафиксировать; а вот номер ФД и номер ФП - данные, уникально идентифицирующие каждый чек, поэтому они должны читаться программно. Штатный способ для семейства драйверов Штрих-М выглядит примерно следующим образом:

Функция ПолучитьФДиФП(фр)
	фр.Password=30; // административные права
	рез=фр.FNGetStatus();
	Если рез<>0 Тогда
		Возврат Неопределено; // ошибка
	КонецЕсли;
	фд=фр.DocumentNumber;
	рез=фр.FNFindDocument();
	Если рез<>0 Тогда
		Возврат Неопределено; // ошибка
	КонецЕсли;
	фп=фр.FiscalSign;
	Возврат Новый Структура("ФД,ФП",фд,фп);
КонецФункции

Замечу: вроде бы, согласно руководствам, независимо от фр.DocumentType всегда есть правильный FiscalSign, но на практике встретились случаи, когда ФР возвращает верное значение в утилите драйвера, и неверное - в программном обращении из 1С. Если он вернул вам отрицательное значение - значит, неверно. Причину пока понять не удалось, некоторые источники в сети кивают на кривую прошивку. Также замечу: был добавлен метод FNGetFiscalizationResultByNumber, но он есть только в самых свежих прошивках. Про АТОЛ и прочие вики вообще ничего сказать не могу.

Признак УСН - 0 (если ОСН) или 1 (если УСН), другие системы не знаю, как отражаются, не попалось таких чеков. Кто знает - отпишитесь, пожалуйста. Вообще, знающие да скажут больше)

Ну и чтоб не так грустно было, вот простенькая обработочка для генерации QR-кодов, под обычные формы и УФ. Авось кому пригодится.

5

Скачать файлы

Наименование Файл Версия Размер
QR-штрихкод на кассовом чеке:
.epf 429,00Kb
28.07.17
7
.epf 429,00Kb 7 Скачать

См. также

Комментарии
Сортировка: Древо
1. demon_infernal 30 31.07.17 09:03 Сейчас в теме
0 - ОСН
1 - УСН Доход
2 - УСН Доход - Расход
3 - ЕНВД
4 - ЕСН
5 - Патент
2. Yashazz 2265 31.07.17 12:24 Сейчас в теме
(1) Спасибо! Откуда сведения?
3. demon_infernal 30 31.07.17 15:47 Сейчас в теме
4. Yashazz 2265 31.07.17 18:43 Сейчас в теме
(3) Значит либо у меня релиз был не тот, либо руки кривые, ибо я это там не обрёл. Ещё раз спасибо.
5. artemibe 02.02.18 10:41 Сейчас в теме
Параметр "n" отражает не вид системы налогообложения, а вид документа:
1 - Приход
2 - Возврат прихода
4 - Расход
5 - Возврат расхода
7 - Коррекция прихода
9 - Коррекция расхода
Оставьте свое сообщение