Skip to content

Commit

Permalink
Assembly v 5.10 (10.09.24)
Browse files Browse the repository at this point in the history
  • Loading branch information
adslbarxatov committed Sep 9, 2024
1 parent 4062a0f commit 3f8ed7b
Show file tree
Hide file tree
Showing 12 changed files with 220 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/Release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
# Константы, используемые далее по тексту
env:
PROJ: ${{ github.event.repository.name }}
TAG: '5.9.1'
TAG: '5.10'

steps:
# Проверка состава репозитория (без анализа, как может показаться)
Expand Down
Binary file added .release/KassArray.exe
Binary file not shown.
Binary file added .release/KassArrayDB.dll
Binary file not shown.
Binary file added .release/KassArrayFN.exe
Binary file not shown.
Binary file added .release/KassArrayLL.dll
Binary file not shown.
146 changes: 146 additions & 0 deletions .release/KassArray_ru_ru.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
<html charset='utf-8'>

<head>
<title>Инструмент сервис-инженера контрольно-кассовой техники KassArray: руководство пользователя | KassArray</title>
</head>

<body>

<h1 id="kassarray--">Инструмент сервис-инженера контрольно-кассовой техники KassArray: руководство пользователя</h1>
<p><strong>ƒ</strong>  RD AAOW FDL; 23.04.2024; 2:46</p>

<h2 id="kassarray">Общие сведения об инструменте KassArray</h2>
<p>Инструмент позволяет:</p>
<ul>
<li>просматривать и сохранять / отправлять на печать <em><strong>инструкции по работе с ККТ</strong></em>;</li>
<li>просматривать расшифровки <em><strong>кодов ошибок ККТ</strong></em>;</li>
<li>определять <em><strong>срок жизни ФН</strong></em> в соответствии параметрами пользователя, от которых он зависит;</li>
<li>определять <em><strong>корректность регистрационного номера ККТ</strong></em> и <em><strong>генерировать его</strong></em> при необходимости;</li>
<li>определять <em><strong>соответствие моделей ККТ версиям ФФД</strong></em>;</li>
<li>получать <em><strong>настройки операторов фискальных данных</strong></em> (ОФД) по их ИНН или названиям;</li>
<li>получать <em><strong>описания и признаки обязательности TLV-тегов</strong></em> для различных ФФД;</li>
<li>получать описания <em><strong>команд нижнего уровня</strong></em>;</li>
<li>вручную (без использования внешней клавиатуры) <em><strong>программировать текстовые данные в ККТ</strong></em>, имеющих только цифровую клавиатуру;</li>
<li>автоматически <em><strong>определять модели ККТ и фискальных накопителей</strong></em> (ФН) по их заводским номерам, а также регионы РФ по кодам ИНН;</li>
<li>просматривать <em><strong>распиновки кабелей</strong></em> ККТ – ПК, ККТ – ДЯ и ККТ – Принтер;</li>
<li>определять <em><strong>типы штрих-кодов</strong></em> и разбирать их содержимое (включая DataMatrix маркируемых товаров);</li>
<li>дополнительно: получать разложения и представления чисел в системах счисления с основаниями 2, 10 и 16;</li>
<li>дополнительно: преобразовывать коды Unicode в символам и наоборот;</li>
<li>дополнительно: преобразовывать двоичные данные в текст и обратно.</li>
</ul>

<br/>
<br/>
<p>Windows-версия инструмента также может быть добавлена в автозапуск при установке; при запуске системы она остаётся свёрнутой
в значок в трее. По нажатию на этот значок он может быть повторно вызван или свёрнут обратно.</p>
<p>Для приложения доступны функции «Поверх всех окон» (Windows) и «Режим сервис-инженера» (все версии). Последний переводит приложение
в режим полной функциональности и открывает опции, которые не должны быть доступны оператору или кассиру
(например, команды нижнего уровня или работу с ФН). Соответствующие флажки доступны на последней вкладке.</p>
<br/>
<br/>
<br/>

<h2 id="kassarray-1">Модуль чтения и обработки данных ФН для KassArray (только Windows)</h2>
<p>Модуль предназначен для чтения и обработки фискальных данных (ФД) из фискального накопителя (ФН).
Далее представлено полное описание функционала приложения.</p>

<br/>
<br/>
<p>Доступные функции:</p>
<p><strong>1. Чтение данных из ФН</strong> с помощью физического или виртуального COM-порта и аппаратного адаптера.</p>

<p><strong>2. Формирование выгрузок архивов ФН в формате</strong> <code>.fnc</code> в соответствии с Приложением №2 к приказу
ФНС России «Форматы фискальных документов, обязательные к использованию» для версий ФФД <code>1.05</code> и <code>1.2</code>. Выгрузка в ФФД <code>1.1</code>
также реализована, но находится в тестировании и может работать некорректно.</p>

<p><strong>3. Обработка фискальных данных</strong>:</p>
<ul>
<li>Получение полного состояния и всех регистрационных данных ФН;</li>
<li>Получение отдельного документа ФН;</li>
<li>Получение контрольной ленты за отдельную смену;</li>
<li>Получение полного фискального (посменного) отчёта;</li>
<li>Получение посменного отчёта по диапазону дат;</li>
<li>Прямой запрос счётчиков ФН (для ФФД <code>1.1</code> и выше);</li>
<li>Расчёт гросс-итогов по данным фискальных документов (для файлов и ФФД <code>1.05</code>);</li>
<li>Прямое чтение документов за определённую дату и расчёт сменных итогов.</li>
</ul>

<p><strong>4. Сохранение архива ФН в файл</strong> в форматах:</p>
<ul>
<li>Двоичных данных (<code>.fsd</code>). Это внутренний формат программы, который не может быть использован
при перерегистрации или снятии ККТ с учёта в личном кабинете ФНС. Однако он доступен для последующего открытия и статистической обработки в программе.</li>
<li>Табличных данных (<code>.csv</code>, доступен для обработки в Microsoft Office Excel).</li>
</ul>

<p><strong>5. Выполнение обмена с ОФД</strong> с параметрами подключения, получаемыми автоматически по данным последней
регистрации / перерегистрации, или с параметрами, соответствующими выбранному ОФД. Обмен включает:</p>
<ul>
<li>Передачу фискальных документов;</li>
<li>Передачу уведомлений о реализации маркированного товара;</li>
<li>Обновление ключей проверки кодов маркировки.</li>
</ul>

<p><strong>6. Выполнение операций записи в ФН</strong>:</p>
<ul>
<li>Открытие смены;</li>
<li>Закрытие смены;</li>
<li>Закрытие архива ФН;</li>
<li>Сброс МГМ (для технических целей).</li>
</ul>
<p>Первые три задачи могут быть выполнены с применением текущей даты или даты последнего документа ФН (для ФН с истекшим сроком жизни).</p>

<p><strong>7. Чтение и статистическая обработка выгрузок архивов ФН</strong> в форматах <code>.fnc</code> и <code>.fsd</code>.</p>

<p><strong>8. Формирование выгрузки уведомлений о реализации маркированного товара</strong> (при работе в автономном режиме)
в формате <code>.fnm</code> в соответствии с Приложением 2 к приказу
ФНС России «Форматы фискальных документов, обязательные к использованию» для версии ФФД <code>1.2</code> (<em><strong>находится в тестировании</strong></em>).</p>

<p><strong>9. Кэширование имеющихся файлов</strong> <code>.fnc</code> и быстрый доступ к любому из них с помощью поиска по ИНН, заводским номерам,
РНМ или наименованиям пользователей.</p>

<br/>
<br/>
<p>Чтение может быть выполнено четырьмя способами:</p>
<ul>
<li><em><strong>Полное чтение архива</strong></em>. По его завершении становятся доступными все функции обработки данных.</li>
<li><em><strong>Прямое чтение ФН</strong></em>. В этом случае доступны только функции чтения статуса ФН и содержимого отдельного документа.</li>
<li><em><strong>Формирование выгрузки .fnc с последующей её загрузкой</strong></em>. Работает аналогично первому варианту, но набор
реквизитов документов будет неполным, т.к. в файлах выгрузок они хранятся в ограниченном составе.</li>
<li><em><strong>Прямое чтение документов из ФН за указанную дату</strong></em>. Данный способ позволяет сформировать сменные
итоги без полного считывания ФН. Аналитика при этом останется недоступной.</li>
</ul>

<p>Независимо от варианта и настроек чтения состояние ФН запрашивается в максимально полном виде. Количество видимых регистраций
и перерегистраций может быть ограничено последней (актуальной), если выбрана соответствующая опция.</p>

<br/>
<br/>
<p>Детализация чтения может быть:</p>
<ul>
<li><em><strong>Полной</strong></em>. При этом из ФН считываются все TLV-теги (в том числе – неизвестные приложению с представлением
в шестнадцатеричной форме) и квитанции подтверждения ОФД. Может занимать продолжительное время.</li>
<li><em><strong>Неполной</strong></em>. Из ФН считываются только известные приложению TLV-теги. По скорости не отличается от предыдущего варианта.</li>
<li><em><strong>Краткой</strong></em>. При этом считываются только суммовые счётчики, временны́е метки, номера, фискальные признаки
документов и состояния отправки ОФД. Выполняется быстрее полного считывания примерно в два раза.</li>
</ul>

<br/>
<br/>
<p>Работа программы протестирована на всех моделях ФН из реестра ФНС.
При соблюдении производителями существующего аппаратного протокола чтения данных работа с будущими моделями ФН также будет возможна.
Однако выгрузка в формате <code>.fnc</code> требует дополнительных исследований, в связи с чем модуль может не поддерживать эту функцию
для новейших моделей ФН.</p>

<p>Для выполнения операций с ФН требуется наличие одного из следующих аппаратных адаптеров:</p>
<ul>
<li>COM-UART переходник для подключения ФН к разъёму COM (RS-232) компьютера.</li>
<li>USB-VCOM-UART переходник для подключения к разъёму USB компьютера. В этом случае потребуется установить драйвера устройства;
инструкции и ссылки для их установки предоставляются производителями таких переходников.</li>
</ul>

<p>Обращаем внимание, что срок действия каждого релиза модуля ограничен с целью устранения устаревающих версий и обеспечения
его постоянного соответствия актуальным изменениям в ФФД. Срок указан в информационном окне, появляющемся при каждом запуске приложения. По его истечении
останутся доступными функции анализа ранее считанных данных. Для работы с новыми данными необходимо будет получить актуальный экземпляр приложения.</p>

</body>
</html>
10 changes: 6 additions & 4 deletions .release/Release.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
_Изменения для v 5.9.1_:
_Изменения для v 5.10_:
- Выбор ОФД для ручного обмена реализован с помощью контекстного меню;
- Из списка ОФД для ручного обмена исключены организации с аннулированной лицензией;
- Реализовано ручное переопределение базового адреса чтения архива ФН: оказалось, что у ФН `72844405` этот адрес при норме `0x0C00` может иногда по неизвестной причине меняться на `0x0B00`;
- Исправлена работа нижней границы автоподстройки таймаута;
- Добавлена серия ЗН ФН `73814408` (Ин36-4);
- Добавлено распознавание флага корректной поддержки частичной продажи со стороны ФН;
- Добавлена новая айдентика;
- `Windows`: обновлён интерфейс «О приложении»
- Добавлено распознавание флага корректной поддержки частичной продажи со стороны ФН
8 changes: 8 additions & 0 deletions Changes.log
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
KassArray: лог изменений

Версия 5.10:
• Выбор ОФД для ручного обмена реализован с помощью контекстного меню;
• Из списка ОФД для ручного обмена исключены организации с аннулированной лицензией;
• Реализовано ручное переопределение базового адреса чтения архива ФН: оказалось,
что у ФН 72844405 этот адрес при норме 0x0C00 может иногда по неизвестной причине
меняться на 0x0B00;
• Исправлена работа нижней границы автоподстройки таймаута

Версия 5.9.1:
• Добавлена серия ЗН ФН 73814408 (Ин36-4);
• Добавлено распознавание флага корректной поддержки частичной продажи со стороны ФН;
Expand Down
20 changes: 18 additions & 2 deletions src/DataConvertors.cs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,10 @@ private static string SplitNumberToSimpleMultipliers (ulong Value)
private static string MakePower (ulong Value)
{
string res = Value.ToString ();
res = res.Replace ('0', '⁰');
for (int i = 0; i < powers.Length; i++)
res = res.Replace (powers[i][0], powers[i][1]);

/*res = res.Replace ('0', '⁰');
res = res.Replace ('1', '¹');
res = res.Replace ('2', '²');
res = res.Replace ('3', '³');
Expand All @@ -144,8 +147,21 @@ private static string MakePower (ulong Value)
res = res.Replace ('6', '⁶');
res = res.Replace ('7', '⁷');
res = res.Replace ('8', '⁸');
return res.Replace ('9', '⁹');
return res.Replace ('9', '⁹');*/
return res;
}
private static char[][] powers = new char[][] {
new char[] { '0', '⁰' },
new char[] { '1', '¹' },
new char[] { '2', '²' },
new char[] { '3', '³' },
new char[] { '4', '⁴' },
new char[] { '5', '⁵' },
new char[] { '6', '⁶' },
new char[] { '7', '⁷' },
new char[] { '8', '⁸' },
new char[] { '9', '⁹' },
};

/// <summary>
/// Метод формирует полное описание указанного символа Unicode
Expand Down
28 changes: 28 additions & 0 deletions src/FNSerial.cs
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,34 @@ public UInt16 GetFNAddress (string FNSerialNumber)
return addresses[i];
}

/// <summary>
/// Возвращает доступные переопределяющие базовые адреса чтения ФН
/// </summary>
public static UInt16[] OverrideAddresses
{
get
{
return overrideAddresses;
}
}
private static UInt16[] overrideAddresses = new ushort[] {
0x0400,
0x0500,
0x0600,
0x0700,
0x0800,
0x0900,
0x0A00,
0x0B00,
0x0C00,
0x0D00,
0x0E00,
0x0F00,
0x1000,
0x1100,
0x1200,
};

/// <summary>
/// Возвращает статистику по базе ЗН ФН
/// </summary>
Expand Down
Loading

0 comments on commit 3f8ed7b

Please sign in to comment.