Звоните
Екатеринбург
Пишите
Вход Регистрация

Предложение по улучшению

Написать сообщение
Сообщение будет добавлено в самый конец дискуссии
speaker 06 марта 2020, 10:03#
boolean2005, по поводу окна кассира подумаем, записали в пожелания. Что касается основного окна программы, то найти продажи по товару можно через "искать модель", определится и выбрать нужный документ при возврате. Смысл понятен, постараемся усовершенствовать этот механизм.
DVK 06 марта 2020, 11:03#
ort_paxmanin
Вам описан конкретный сценарий при котором ТДТ не удовлетворяет текущему законодательству:

Покупатель приносит на возврат маркированный товар с удаленным (нечитаемым) кодом маркировки.

В данном случае однозначно необходима кнопка пропуска чтения КМ.

speaker, Быстро это сделать не получится. Отключите маркировку у товаров и торгуйте без маркировки, пока это можно.
ТДТ сделана Вами для пользователей, которыми являемся мы, и которые, в конце концов оплачивают программу и тех.поддержку, а не для удобства программистов, и дебилов в правительстве, придумывающих эти маркировки.
В конечном итоге, надо же прислушиваться к мнению пользователей!
<Сергей> 06 марта 2020, 16:03#
speaker, мы все понимаем, что процесс переделки софтины не быстрый. Но большая просьба: Вы (или кто-нибудь из разработчиков) выкладывайте, пожалуйста, список нового/пофиксенного в каждой последующей версии. Мы же не бетатестеры, нам работать надо и налоговая не дремлет (за любой косяк спрашивают у пользователя ТДТ,а не с разработчиков). Вот уже 870я версия и опять "кот в мешке".
speaker 06 марта 2020, 17:03#
<Сергей>, модифицировали механизм работы со сканером и добавили возможность возвращать маркированный товар без считывания QR.
ort_paxmanin 06 марта 2020, 17:03#
speaker, спасибо большое!
info 07 марта 2020, 14:03#
speaker, спасибо. И с наступающим Вас, сударыня, праздником!
ort_paxmanin 10 марта 2020, 03:03#
speaker
модифицировали механизм работы со сканером и добавили возможность возвращать маркированный товар без считывания QR.

Версия 3.0.2.870

I) Работа с COM-портом

Обращение к com-порту теперь идет не при переходе на закладку штрихкодирование, а при нажатии кнопки "настройка com-порта". Но
1. Перестала работать кнопка очистить настройки. Не удаляет данные предыдущего считывания.
2. Сообщение об ошибке при работе с com-портом все так же выдается в tdt_scaner.exe, а учитывая что активным является tdt_sql.exe, это сообщение не видно. Пока оно висит, сканер не работает, даже если установить правильный номер com-порта.
3. Если установить правильный номер com-порта, закрыть диалог "Настройка COM-порта", а после этого заметить сообщение об ошибке и нажать в нем ОК, сканер не работает до повторного захода в диалог "Настройка COM-порта" и выхода из него.
4. После закрытия окна "настройка", при попытке просканировать код, поставив курсор на поле "Данные" на закладке "Штрихкодирование", tdt_sql выкинул access violation. После перезапуска ТДТ заработал нормально.

Коротко - все тоже самое что и раньше только в профиль и с неработающей кнопкой "очистить настройки". Сообщение об ошибке не видно и после его закрытия tdt_scaner.exe не подхватывает новые настройки.

II) Маркировка

1. Возврат маркированного товара без чтения кода маркировки работает, данные передаются в офд, затем в честный знак. Если продать маркированный товар его статус в честном знаке меняется на выбыл (из оборота), после возврата меняется обратно на "в обороте". В целом все хорошо, но есть непонятный момент.
2. Если отсканировать код маркировки при возврате возникает сообщение: "маркировка не соответствует штрихкоду товара. все равно использовать?" и варианты да/нет. При выборе да возврат проходит нормально, при выборе нет опять можно считать штрихкод.
Сообщение непонятное. Штрихкод это характеристика модели. Единиц товар с одинаковым штрихкодом на складе может быть 100 штук. Код маркировки это характеристика отдельной единицы товара. Они уникальные. На складе, в магазине, в мире может быть только один такой код. Что бы код маркировки равнялся штрихкоду необходимо на каждую единицу товара завести в справочнике отдельную модель и прописать ей код маркировки как штрихкод. Один раз ее использовать и забыть. Звучит странно.
speaker 10 марта 2020, 11:03#
ort_paxmanin
I) Работа с COM-портом

Какие проблемы возникают, если воспользоваться стандартным методом настройки сканера, т.е. зайти в настройку, считать штрих код и нажать "ок"?
speaker 10 марта 2020, 12:03#
ort_paxmanin
Штрихкод это характеристика модели. Единиц товар с одинаковым штрихкодом на складе может быть 100 штук. Код маркировки это характеристика отдельной единицы товара. Они уникальные. На складе, в магазине, в мире может быть только один такой код. Что бы код маркировки равнялся штрихкоду необходимо на каждую единицу товара завести в справочнике отдельную модель и прописать ей код маркировки как штрихкод. Один раз ее использовать и забыть.

Мы по штрих коду полученному из QR находим товар в базе ТДТ и пытаемся его подставить в документ. Данные по конкретному товару подставляем из считанного QR. В справочнике ТДТ на товар заводится штрих код, а не QR.
Irina_70 10 марта 2020, 14:03#
Возможно ли создать ценник с указанием остатка этого товара на складе? (очень неудобно писать ручкой каждый день на ценниках)
speaker 10 марта 2020, 16:03#
Irina_70, в программе нет такого шаблона ценника. Можете заказать индивидуальный шаблон. Разработка индивидуальной печатной формы стоит 1000 руб.
ort_paxmanin 10 марта 2020, 19:03#
speaker
Мы по штрих коду полученному из QR находим товар в базе ТДТ и пытаемся его подставить в документ. Данные по конкретному товару подставляем из считанного QR. В справочнике ТДТ на товар заводится штрих код, а не QR.

Прошу прощения, у меня опять "много букв"..

Логика этого действия от меня ускользает. Пару часов думал, но так и не понял, зачем такой алгоритм?

1. В базе ТДТ (довольно расплывчатая отсылка, но будем надеяться что вы писали про свойства модели товара в справочнике "модель товара") хранится "международный товарный номер EAN-13" длинной 13 символов. В коде маркировке, как его составная часть, присутствует GTIN "глобальный номер предмета торговли" длинной 14 символов. Если принять за допущение что в GTIN конкретного товара записан именно EAN-13 (не факт в общем случае), то обрезав передний ноль из GTIN, можно получить EAN, но зачем?

2. Когда оформляется возврат продавец выбирает конкретный товар из чека, который надо вернуть. Т.е. ссылка на модель товара есть, кроме того, так как товар уже продан, его код маркировки сохранен в таблице labels в базе и вы можете его найти (используете при возврате без чтения кода маркировки).

3. Имея прочитанный из базы код маркировки проданного товара и считанный код маркировки возвращаемого товара сравнить их между собой и выдать сообщение если они отличаются с текстом "Код маркировки возвращаемого товара не соответствует проданному. Продолжать?" было бы гораздо полезнее и понятнее для продавца.

4. Можно представить сценарии, когда это желательно (необходимо):

4а. В чеке несколько пар отличающихся цветом/размером/формой носка/материалом, продавец выбрал не тот размер. Если не проконтролировать, возникнет пересортица. Если обычная пересортица по размеру это не страшно, списали лишнее-оприходовали недостающее, то с кодами маркировки все сложнее. При пересортице код товара лежащего на полке в магазине числится выбывшим из оборота, а унесенный покупателем и выкинутый им - как находящийся на складе.

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

4б. В чеке 2 одинаковых пары обуви, одну из них возвращают. На бумажном чеке каждая единица маркированного товара идет отдельной строкой, в интерфейсе кассира ТДТ они все сгруппированы по модели. Если продано 2 единицы, а мы сканируем код маркировки одной, надо убедится что просканированый код присутствует в чеке.

4в. В чеке 2 одинаковые пары обуви и мы делаем возврат без чтения кода маркировки. Лотерея в чистом виде. По закону мы делать возврат должны, не сделаем, завтра покупатель вернется с роспотребнадзором. Но какой код вставлять в чек непонятно.

5. Если мы сделали возврат не читая код маркировки, нам бы хорошо этот факт отметить в базе данных. Ведь мы сделали это не просто так. Или этикетка повреждена - тогда необходимо напечатать новую или вообще отсутствовала (товар был продан как немаркированный в переходной период). В любом случае если будет признак в базе что у товара проблема с маркировкой, можно будет сделать выборку товаров подлежащих перемаркировке в каком нибудь отчете и на основании его уже разбираться с честным знаком.
ort_paxmanin 10 марта 2020, 22:03#
speaker
Какие проблемы возникают, если воспользоваться стандартным методом настройки сканера, т.е. зайти в настройку, считать штрих код и нажать "ок"?

Снова не совсем понял ваш вопрос. Если com-порт настроен, не менялся, ТДТ перегрузили после настройки то проблем нет. Мне лично глюки настройки com-порта не мешают, я знаю способы их обойти, так что это мелочь, имхо.

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

1. Когда сканер эмулирует клавиатуру, т.е. режиме USB-HID device (ваш сканер SB2108 Plus в таком режиме в диспетчере устройств будет иметь vid=1f3a, pid=1009) Windows считает что через USB порт к нему приходят СКАН-КОДЫ нажатых клавиш клавиатуры и преобразует их в ASCII символы в соответствии с текущей раскладкой клавиатуры.

Пример: Типичный код маркировки - FNC1010290000047583021qdEfx:Xp6YFd7GS918029GS....

сканер считывает его и пока идут цифры все в порядке, но затем встречается буква 'q'. Сканер формирует 8-ми байтовый пакет в соответствии со спецификацией USB HID ( 1-байт модификаторы (ctrl,alt,shift,win), 2-зарезервирован, 3 код клавиши q 0x14, 4-8 нули) эмулируя нажатие на клавиатуре соответствующей кнопки). А дальше начинается веселье. Если у вас английская раскладка и CAPS LOCK не нажат, вы увидите в блокноте букву 'q'. Если текущая раскладка русская, умный Windows вставить букву 'й'. Если нажат CAPS LOCK то получите 'Q' и т.д.

2. Вторая проблема это символ разделитель GS (group separator, ASCII 29). Он не является частью алфавита, входит в группу управляющих символов, кнопки на клавиатуре для него нет и сканер передает его "по собственному усмотрению", по разному к различных производителей и в зависимости от настроек. Этот символ необходим т.к. длинна поля серийный номер в коде маркировки произвольна. Пока не встретится символ GS. Для обуви длинна серийного номера 13. А для парфюмерии может быть и 20 (к примеру). Поэтому софт, получая поток данных от сканера, должен в какой-то момент сказать, все, стоп, серийник кончился.
Некоторые программы решают вопрос полагая длину серийника фиксированной. Например, barCodesFX. Другие реализуют драйвера, в которых переопределяют стандартный разделить на другой код и если сканер позволяет подменять один символ другим - это работает. Но вопросов с раскладкой клавиатуры и CAPS LOCK это не снимает.
speaker 11 марта 2020, 16:03#
ort_paxmanin, по поводу COM проблема понятна, подумаем и учтем в следующих версиях.
Что касается USB, вы пробовали работать в ТДТ (считывать QR), когда сканер эмулирует клавиатуру, т.е. режиме USB? Что именно в ТДТ не так считывается в таком режиме? Про блокнот и Windows понятно что пишите, но в ТДТ у вас возникали проблемы в таком режиме при считывании QR? От раскладки клавиатуры считанный результат в ТДТ не зависит.
ort_paxmanin 12 марта 2020, 03:03#
speaker
Что касается USB, вы пробовали работать в ТДТ (считывать QR), когда сканер эмулирует клавиатуру, т.е. режиме USB? Что именно в ТДТ не так считывается в таком режиме? Про блокнот и Windows понятно что пишите, но в ТДТ у вас возникали проблемы в таком режиме при считывании QR?

Сегодня попробовал. В принципе, работает. И в чек передается корректный тег, и в личном кабинете честного знака марки выводятся из оборота и возвращаются в него при возврате, но есть особенности по сравнению с режимом COM.

1. В версии 3.0.2.870 режим USB-HID мне настроить не удалось. Ставлю чистую демку, сразу после первой загрузки захожу в настройки сканера, убеждаюсь что радио-баттон стоит на "клавиатурное устройство", пытаюсь считать штрихкод, диалог настроек сам собой закрывается. После перезагрузки ТДТ начинает ругаться на COM порт. Ему сбрасываешь настройки, говоришь работать через клавиатурное устройство, закрываешь tdt_scaner.exe и т.д. Не помогает. Желает работать только через COM порт. Кстати, в версии 870 появилась новая ошибка при закрытии tdt_scaner.exe. Раньше не видел. Ругается что не может сделать purge com port. В общем помучился и бросил, поставил 3.0.2.869, она с USB-HID работает.

2. При настройки первые отличия. Если в режиме com порта при сканировании штрихкода в окне настройки предлагается выбрать два варианта штрихкода: короткий, обрезанный сразу после серийного номера по первому вхождению символа GS (mode_0=1) и длинный - как я понял, полностью считанный код (mode_0=0), то в режиме USB-HID обрезания кода нет, оба предлагаемых варианты длинные.

3. Дальше начинается моя специфика. В боевую эксплуатацию последние варианты ТДТ я запустить еще не решился, играюсь с демками, жду когда софт "зафиксируется" и закончится этап переделок. Тестирую удаленно. Т.е. по удаленке подключаюсь к ТТ после окончания рабочего дня, пробрасываю сканер, бью чеки и смотрю на результат в ОФД и ЧЗ. Если в режиме COM у меня ни разу не было сбоев при сканировании кода маркировки, то в режиме USB-HID хорошо если проходит одно из двух-трех. Выглядит это так. Добавляю обувь в чек, предлагают просканировать КМ, сканирую, окно закрывается, обувь в чек добавляется и мне выдается сообщение что штрихкод (XXXXXXX) не найден. Причем (XXXXXXX) каждый раз разной длинны, но по сути это часть кода маркировки. Получается, при сканировании в режиме USB-HID софт считывает "сколько успел", а хвост идет как новый штрихкод. Еще раз подчеркну, с подключением по COM такого не наблюдал. Я понимаю, что это специфический случай, ТДТ тут не причем. Часто когда подключаешься по удаленке и начинаешь бить текст при плохом канале часть букв пропадает, часть задваивается, часть печатается с опозданием в несколько секунд. Но эффект который я наблюдал с КМ просто подчеркивает факт что при подключении по COM код маркировки считывается за долю секунды, а при USB-HID в 3-5 раз дольше.

Суммируя вышесказанное, режим USB-HID для маркировки работоспособен, но COM лучше.

Вы планируете в ближайшую неделю дорабатывать маркировку (выпускать релизы) или пока функционал зафиксирован?
ТЭК 12 марта 2020, 03:03#
Маленькая хотелка образовалась.

В кассовом окне с недавних пор появилось "повтор последнего документа" т.е. кассового чека - это очень здорово. Но было бы еще лучше, чтобы после пробития этого чека-дубликата ТДТ спрашивал печатать товарный чек (также как это делается обычно).

Бывает кассир случайно закрыл окошко печати товарного чека или покупатель про него поздно вспомнил.

Т.е. понятно, что можно напечатать из основного окна программы, но это танцы с бубном - это нужно звать администратора или менеджера или каждого кассира учить работать в основном окне.
speaker 13 марта 2020, 10:03#
ort_paxmanin, в понедельник выпустим версию 3.0.2.871, в которой будет учтен пункт 2 работы через COM.
Про USB можем сказать, что ни каких проблем на данный момент не видим и COM ни чем не лучше USB. Ни кто из пользователей к нам не обращался, по поводу подключения и проблем в работе сканера через USB. Бывают частные случаи с подключением, но это связано с каким то нюансами отдельных моделей.
speaker 13 марта 2020, 10:03#
ТЭК, сделать не получится, в данном случае работает другой механизм, мы просто даем команду кассе "напечатать последний чек".
budyakov 13 марта 2020, 16:03#
Добрый день. Добавьте пожалуйста возможность работы с кредитами.
Можно так -Находясь в окне программы -накладные на продажу,выбираем накладную (наш кредит), нажимаем правой кнопкой и выбираем пункт "Выписать кассовый чек" Открывается окно кассира, выбираем тип чека -Аванс, первый взнос по кредиту, платеж по кредиту.
При этом в кассе онлайн пробивается требуемый кассовый чек, а программа проводит списание долга с признаком расчета, оплата по онлайн кассе.
<Сергей> 16 марта 2020, 16:03#
А кто-то обещал выкатить в понедельник 871ю версию :-)
Включите отображение картинок
Подписаться на тему