Павел @kkmspb
фулстек разработчик С, С++,PHP,JS
Information
- Rating
- Does not participate
- Location
- Парголово, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
Specialization
Fullstack Developer
Senior
From 250,000 ₽
OOP
Database
MySQL
PHP
C++
Programming microcontrollers
Qt
Software development
Development of drivers
C
Переименовали свои классы в QpSqlRelationalTableModel, т.е. с префиксом Qp.
Используем в коммерческом проекте несколько лет, все в целом устраивает, понемногу допиливаем/шлифуем функционал.
Идея нашего QpSqlRelationalTableModel в том, чтобы в select запросе добавлялось ещё и значение int id внешней связи, кроме тестового представления.
В QpTableView int id визуально скрывается, так что для пользователя ничего внешне не меняется.
Зато это int id теперь у нас всегда под рукой. Он нужен например при копировании строки. Потом когда вы хотите открыть источник тестового представления (т.е. внешнюю таблицу) с позиционированием на элементе с нашим id.
Этот подход решает все проблемы со связанными таблицами. Не надо делать никакие лишние запросы.
На самом деле сервер (под виндой) принимает по http команды на Пробитие чека на кассовом аппарате. Понятно, что это занимает несколько секунд. Другой http запрос сервер в этом момент примет, т.к. в QTcpServer создаётся ещё отдельный поток, далее мы помещаем и это задание в очередь основного потока для пробития чека, но смысла тут мало, т.к. касса в этот момент занята другим заданием и пихать туда ещё одно не разумно, лучше клиенту ответить, что касса занята.
Но на нескольких других компьютерах с другими версиями curl ничего не теряется (у клиента)
https://kkmspb.ru/software/BIT-driver-KKT/download/
Я тут выложил тестовую программку под виндой для отладки АПИ с честным знаком в 2025г., там есть логи.
Это по итогам первоначального тестирования.
Я рад за пользователей Qt 6.4. Но все надо проверять и в Qt тоже не идеально все, я например помню недоделку QSqlRelationalTableModel, которую до сих пор никто до ума не довел... Это только небольшая часть развитие которой я сделал сам.
Я разрабатывал пока только для пользователей, у который ПК под виндоус. Я думаю понятно, что чужаку получить доступ к пк сложно будет.
Клиент не падает, а принимает через старый curl некорректно тело от сервера (или декодирует криво - непонятно)
Обновить curl клиента не представляется возможным (в ближайшее время), т.к. он на линакс сервере живет, который чуть тронешь и крешится. Этот сервер пользователь использует много лет и там много функционала, от которого не отказаться ради кассы.
Вы вообще читаете? Я не про то какой мне сервер установить и где. Сервер является частью приложение, написанного на с++. В приложении много чего есть, в том числе и http сервер для получения команд из сети.
Речь была только о нюансах http клиента и как их решить удалось. Если у кого есть ещё похожие проблемы хотелось бы услышать.
Посмотрел, на самом деле 34Мб (в памяти).
Вы представляете "обычного" пользователя, ну с оборотом до 10млн.р/год. Вот у него одна касса.
Кому он конкурент? И кто ему на кассе захочет миллиард пробить? Кинокомедия.
Я программу для таких пользователей пишу.
Вы вообще читаете? Чей сервер? Это у пользователя для клиента используется php на его линакс сервере, где его база товароучетки хранится и куча сопутствующих библиотек задействовано. И он не может свой сервер обновлять, вот тогда он крэшится.
Ну допустим возникло желание пробить чек на чужой кассе, какая "вам" выгода? Нагадить конкуренту? Ну допустим.
Кстати можно не больше 21миллиона пробить.
Ну допустим пробили, пользователь увидел, сделал возврат конечно.
Далее начал пользовать использовать код проверки данных из ЛК и добавлять в данные чека непонятный хеш. Сервер проверяет этот хеш, он знает как он вычисляется , а вы нет.
Если вы программу ломанули, хотя это вообще не понятно как сделать у пользователя, так ее переустановить с нашего сервера можно всегда.
О каких миллиардах? Не смешите...
Почему Hello world? Поддержка атол, штрих, меркуриев по одному протоколу. Банковское терминалы протокол аркус.
Курьеры со смартфона чеки бить могут.
Маркировка в разрешительном режиме на днях будет готова.
По моему все варианты управления кассой реализованы.
Плагины есть для админки ВордПресс, джумла, Битрикс.
Чего забыли?
Вы не внимательно читали. Ситуация была такова, что пользователь не мог переустановить curl на другую версию, т.к. у него кастомный линакс тянул обновления всех зависимостей и потом сервер крэшился. Надо было выкручиваться как-то по другому. Через сокет все нормально заработало.
То есть задача стояла помочь пользователю избежать лишних проблем.
А кож проверки целостности данных как узнаете, он только в ЛК у пользователя виден.
У меня пользователь только-что установил этот сервер себе на ПК , сделал сам себе товароучетку в облаке на php/js/mysql и бьёт чеки из товароучетки и все у него норм.
Каких гигов памяти, у меня до 100МБ все приложение в памяти.
Надо пояснить, что http сервер является частью приложения под виндой, написан на С++, как все приложение соответственно. Сервер принимает по сути одно соединение и не предназначен для приема нескольких соединений одновременно.
Я бы хотел поверить, что curl 7.29.0? нормальный и я что-то не так делаю, но точно такой же запрос на сокете работает полноценно, а на curl-е точно такой же (вижу на логе сервера) не работает. Как об'яснить?