Текущая версия
—
01 Назначение проекта
SMK Tool — специализированное веб-приложение
для автоматизации расчётов по молочной и яичной продукции.
Оно предназначено для упрощения обработки товарных накладных,
определения потребности торговых точек и подготовки результатов
для дальнейшей работы.
Основная задача проекта — сократить количество ручных операций,
ускорить обработку информации и сделать расчёты более
последовательными. Вместо многократного ручного суммирования
пользователь может загрузить исходные данные и получить
структурированный результат.
Приложение объединяет расчётные инструменты, выбор маршрутов,
работу с торговыми точками, экспорт результатов и дополнительные
функции в едином интерфейсе.
02 Функциональные возможности
⇧
Импорт Excel
Загрузка табличных данных из файлов Excel
для последующей обработки и расчётов.
⌖
Маршруты и торговые точки
Выбор рабочего маршрута, поиск нужных торговых
точек и представление результатов в удобной форме.
∑
Автоматические расчёты
Обработка товарных позиций, применение
коэффициентов и вычисление итоговых количеств,
упаковок и расчётного веса.
▤
Экспорт и печать
Формирование визуального представления результата,
подготовка к печати и экспорт отчёта в PNG.
↺
Восстановление сессии
Возможность продолжить незавершённую работу
после повторного открытия страницы при наличии
сохранённых данных.
♫
Дополнительные инструменты
Музыкальный плеер, мини-игра, таблица рекордов
и форма отправки сообщений разработчику.
03 Архитектура приложения
SMK Tool построен на веб-технологиях и работает через браузер.
Интерфейс, стили и клиентская логика разделены по назначению,
что упрощает сопровождение проекта и внесение изменений.
Структура страницы
HTML5
Оформление интерфейса
CSS3
Клиентская логика
JavaScript
Обработка электронных таблиц
XLSX
Создание снимков интерфейса
html2canvas
Облачное хранение рекордов
Firebase Firestore
Веб-установка и кэширование
PWA / Service Worker
Клиентская часть отвечает за интерфейс и основные пользовательские
операции. Внешние сервисы используются для отдельных функций,
которым требуется сетевое взаимодействие.
04 Обработка накладных
При обработке исходной таблицы приложение использует сведения
о товарных позициях и их названиях. Для получения итогового
результата данные проходят последовательность операций,
предусмотренных расчётной логикой приложения.
Этап 1
Загрузка исходных данных
Этап 2
Чтение табличной структуры
Этап 3
Обработка названий товаров
Этап 4
Группировка и суммирование
Этап 5
Применение расчётных коэффициентов
Этап 6
Формирование итогового результата
Такая организация позволяет свести несколько однотипных
товарных позиций к общему результату и подготовить информацию
для выбранной торговой точки или маршрута.
Фактический результат зависит от формата исходного файла,
корректности данных и правил распознавания товарных позиций.
Некорректные или неоднозначные названия могут повлиять
на итоговые значения.
05 Расчётные правила
В приложении используются специальные правила пересчёта
количества продукции. Коэффициенты позволяют преобразовывать
исходные значения в величины, необходимые для формирования
рабочего отчёта.
Яичная продукция
Коэффициент 360
Расчётный вес упаковки яиц
23 кг
Отдельные молочные бренды
Коэффициенты 12 и 15
Прочие позиции
Правила по умолчанию
Для корректного расчёта важно учитывать не только количество
товара, но и правила, по которым приложение определяет
соответствующую товарную категорию и применяет коэффициент.
Указанные значения описывают настроенные правила приложения,
а не универсальные нормы для всех производителей и форматов
упаковки. Перед использованием результата необходимо проверить
исходные данные и итоговые значения.
06 Локальное хранение и сессии
Для восстановления незавершённой работы приложение использует
локальное хранилище браузера. Сохранённая сессия может содержать
состояние рабочего процесса и необходимые для его продолжения
данные.
Механизм хранения сессии
localStorage
Ключ сессии
smk_session
Срок восстановления
До 12 часов
Локальные данные связаны с конкретным браузером и устройством.
Они не синхронизируются автоматически между разными устройствами
только за счёт использования localStorage.
Очистка данных сайта, использование другого браузера или
устройства может привести к потере сохранённой сессии.
Не следует считать локальное хранилище полноценной резервной
копией важных документов.
07 Внешние сервисы и интеграции
Некоторые возможности приложения используют внешние сервисы.
Их доступность зависит от интернет-соединения, настроек проекта
и работоспособности соответствующих платформ.
Таблица рекордов
Firebase Firestore
Обратная связь
Telegram Bot API
Веб-развёртывание
smktool.org
Поддержка PWA
Service Worker
При отправке сообщения разработчику текст обращения передаётся
через используемый механизм обратной связи. Таблица рекордов
предназначена для хранения и получения результатов мини-игры.
Внешние сервисы могут быть недоступны независимо от состояния
основной страницы. В таком случае отдельная функция может
не работать, даже если интерфейс приложения открывается
корректно.
08 PWA и кэширование
SMK Tool использует механизмы Progressive Web App (PWA),
включая Service Worker. Эта технология позволяет браузеру
управлять кэшированием ресурсов и поддерживает сценарии
установки веб-приложения на совместимые устройства.
Кэширование может ускорять повторное открытие страницы,
поскольку часть ресурсов может загружаться из локального
кэша. При этом доступность всех функций без интернета
зависит от стратегии кэширования и потребности конкретной
функции во внешних сервисах.
После обновления приложения иногда необходимо обновить страницу
или дождаться обновления кэша, чтобы получить актуальные файлы.
09 Данные и конфиденциальность
Часть операций выполняется непосредственно в браузере.
Сохранение сессии использует локальное хранилище, а функции,
связанные с таблицей рекордов и обратной связью, могут
передавать данные соответствующим внешним сервисам.
- Локальная сессия хранится в браузере пользователя.
- Данные таблицы рекордов обрабатываются через Firebase Firestore.
- Текст обращения передаётся разработчику через механизм обратной связи.
- После создания нового отчёта передаётся техническая статистика: номер маршрута, ТТ, количество продукции и её вес, производительность и характеристики браузера. Данные отправляются в Telegram разработчику. Excel-файлы и имена файлов не передаются.
- Для работы внешних интеграций может потребоваться интернет.
Не загружайте в приложение документы, не требующиеся для выполнения расчётов.
10 Ограничения и надёжность
Автоматизация снижает объём ручной работы, но не исключает
ошибок в исходных данных. Результат зависит от структуры
накладной, распознавания названий, корректности коэффициентов
и доступности интегрированных сервисов.
Перед использованием расчётов в рабочем процессе рекомендуется
сверять итоговые количества с исходной накладной, особенно
после изменения формата файла или появления новых товарных
позиций.
Если обнаружена ошибка, воспользуйтесь кнопкой
«Сообщить об ошибке». По возможности укажите
последовательность действий, ожидаемый результат и то,
что получилось фактически. Это поможет быстрее воспроизвести
проблему.