Всем привет! С вами сегодня Лео, и я профессионально занимаюсь оцифровкой видеокассет уже больше 7 лет. Скоро майские праздники, и поток клиентов возрастает. Да так, что с ними стало тяжело справляться - в сутки может прийти 7-8 человек, и попробуй их запомни. До этого дня использовал для учёта самописную панельку для учёта заказов на PHP, и программу "Бизнес Пак" для печати товарных чеков. В целом, их хватало. Но когда поток людей стал превышать все мыслимые нормы, было понятно, что надо с этим что-то делать. Для решения вопроса было принято решение перевести всё на систему штрих-кодов. Иду на известную площадку объявлений, и покупаю себе за 500 рублей самый дешёвый сканер. Сканер этот работает в режиме эмуляции клавиатуры - навели на код, он распознал и пропечатал. Дописал панельку таким вот образом: внизу расположил поля ввода, которые ведут на add.php, inwork.php, и т.п., которые выполняют запрос в базу. Максимально просто, но работает. На радостях скачал шрифты для создания кодов, распечатал на бумаге... И ничего! Сканер просто не сканирует код, либо сканирует с 5-6 попытки....Напечатал на глянцевой бумаге - работает! Как выяснилось, дело было в стандарте - в Code128 нужно было добавлять управляющие символы в начале и конце строки. И если на глянцевой бумаге сканер кое-как, но понимал код с ошибкой, то на матовой бумаге уже не мог его отсканировать. Проблему решил использованием стандарта Code 39 - он намного проще для печати из любого текстового редактора, чем другие виды штрих-кодов. Для этого достаточно закодировать номер в формате *1234567890*. Не вникая в теорию, проще говоря, звёздочки здесь - управляющие символы.Печатаем, сканируем код... Всё работает! Однако, сканер нам отдаёт код вида T000001. Как я понял после чтения документации на сканер - символ T здесь образуется из нескольких бит информации, которые он отдаёт софту, который должен понять что используется сканер. Можно конечно перенастроить, но мы этот символ в PHP просто вырежем: $num = htmlspecialchars($_POST["num"]);$num = preg_replace('/[^0-9]/', '', $num);if (strlen2($abc)<3) {	echo "Номер заказа не может быть менее 3-х символов";exit;}mysql_query ("UPDATE myloveclients SET `status` = 'open' WHERE `number` = '$num';"); "Пикаем" сканером по коду, и наш код успешно в базе! Теперь при помощи штрих-кодов мы можем успешно менять номера заказов в базе, и даже смотреть телефона клиента :) ...Только вот как нам распечатать кучу кодов на одном листе? Можно конечно использовать специальный софт, но вот тащить 1,5 гб не очень хочется. В этом нам поможет Excel! ...Для этого просто скачем шрифт Code 39, и создадим 2 поля. Единичка в первом поле, двойка - во втором. ...Затем выделяем эти 2 ячейки и тянем вниз за вот этот уголок, насколько хватит. Теперь у нас очень много циферок. Добавляем к концу кода символ "*" чтоб закрыть строку, и выбираем шрифт. Далее настраиваем столбцы и строки по вкусу. Ура, у нас есть пачка штриходов, которые можно напечатать! Теперь можно клеить штрих-код к клиентскому заказу, и обновлять его статус. ...Только вот снова проблема. Мы утыкаемся в ручное заполнение товаров в программе "Бизнес-пак". Нам надо как-то сделать это быстрее. Берём нашу панельку в качестве основы, в таблице sales создаём несколько полей - автоматический  id строки, время добавления строки, id товара, id чека. Делаем интерфейс, заточенный исключительно под сканер. В качестве товарных позиций - ID. Например, 0001 = "Оцифровка VHS", 0002 = "Оцифровка Video8", и т.д. Их мы распечатаем, чтоб повесить на стену. Настало время для ChatGPT. Времени у меня было очень мало, поэтому написал индусский код в виде if-else, и попросил ChatGPT оптимизировать его. Она успешно справляется! ...Просим написать ещё кусок кода. ...В JS она тоже "умеет". По итогу, с ChatGPT за час мы собрали вот такой товарный чек, который можно отправлять на печать :) Формочки, заточенные под сканер, тоже есть. В общем, теперь наш сканер штрих-кода "подружился" с PHP, а скорость обработки заказов увеличилась в несколько раз. Всем добра :)