Рустам подошел к Стасу, передал ему пачку бумаг – грязных, в масле, с помятыми уголками и какими-то пометками.

— Что за макулатура? – спросил Сергей, заглядывая через плечо Рустама.

— Сам ты макулатура. – обиделся Рустам. – Накладная это, на сборку.

— А нам ты ее зачем принес? – спросил Сергей.

— Да вон… — махнул рукой Рустам. – Даша опять чего-то намудрила, надо разбираться.

— Чего я намудрила, чё ты гонишь? – Даша была родом из деревни, что было видно невооруженным взглядом. Да она и не скрывала. – Мне сказали, я сделала!

— Кто тебе что сказал? – удивился Сергей. – Что тут вообще происходит?

— Да они документ меняют в системе, а потом Рустам вой поднимает. – ответил за всех Стас. – Обычно ничего страшного – позиции там местами передвинут, или одну строку на две разобьют.

— Нафига? – недоуменно спросил Сергей.

— Надо, чё ты. – с вызовом сказала Даша. – Я чего сделаю, если там минуса прут?

— Где какие минуса?

— В оборотке, где еще. Одна позиция, а лежит на разных счетах. Вот и разбиваю – немного отсюда, немного оттуда.

— Ну, это нормально. – кивнул Сергей. – А Рустам чего тогда докопался?

— Я не докопался, а задолбался! – сказал Рустам. – Мне дают в понедельник эту бумажку, с двумя сотнями позиций, я иду собирать. А во вторник захожу, а Даша говорит – возьми новую бумажку, там мы немного поменяли. Печатает – мать честная, а там уже двести пятьдесят позиций!

— Ну, она только что объяснила. – кивнул Сергей. – Разбивает позиции на несколько строк. Общее количество и позиции остаются без изменения.

— А я-то почем знаю, с изменениями или нет? – возмутился Рустам. – Наменяют чего-то, а мы потом виноваты, не то положили, не туда утащили.

— Даша, а давай запретим тебе документы менять? – прищурился Сергей. – Чтобы Рустаму спокойнее было.

— Щас! – Даша сделала руки в боки. – Я тебе запрещу! Меня главбух сожрет!

— Я сам тебя сожру! – с доброй улыбкой сказал Рустам.

— Ну-ну, обещаешь только. – с улыбкой ответила Даша.

— Так, друзья, валите отсюда, воркуйте под забором. – тоже улыбнулся Сергей.

— Ну щас, разберемся, и пойдем. – ответил Рустам.

— Все нормально. – Стас, все это время ковырявшийся в системе, повернулся к коллегам. – Я проверил. Работай дальше.

— А как ты проверил? – нахмурился Сергей.

— А у меня тут инструментик есть. – с гордостью заявил Стас. – Он старые версии документа достает, и сверяет с текущей. Я там строчки сворачиваю – ну, чтобы убрать все эти разбиения – и общие количества проверяю. На, Рустам, забирай.

— О, спасибо, Стасяндра! – заулыбался Рустам, взял бумажки и пошел к выходу. Даша направилась следом.

— И что, нормально это, по-твоему? – спросил Сергей, когда парочка закрыла за собой дверь.

— Что именно? – нахмурился Стас.

— Чтобы люди к тебе бегали за этой сверкой?

— А какие варианты есть? – немного обиженно ответил Стас. – Я сначала их самих заставлял сверять, но это адская работа, сам посуди – у нас, обычно, бумажки длинные, на несколько листов, потому что позиций много за раз перемещают, для сборки одной единицы оборудования.

— Ну да, это точно не вариант… — кивнул Сергей.

— Ну вот, и я так подумал. Потом думаю – о, есть же версии! Пусть версии сравниваются! Ну и написал этот инструментик, простенький. Только…

— Только что?

— Ну…Не всегда он помогает.

— Почему?

— Во-первых, не всегда я на месте есть. Во-вторых, версий бывает очень много, и тогда хрен поймешь, какую с какой сравнивать. Да еще и непонятно, с какой именно версии они распечатали – т.е., что считать оригиналом.

— Может, на бумажке выводить какую-то информацию об оригинале и версии? Ну, типа, распечатано второго октября в двенадцать часов.

— Я думал об этом, но не стал пока делать. Это ж какой геморрой – надо во все виды бумажек эту фигню выводить.

— Почему? – недоумевал Сергей.

— Ну как… На перемещение – одна форма бумажки, на отгрузку – другая, на передачу в производство – третья, и так далее. Некоторые бумажки еще и унифицированные, в смысле по государственному стандарту печатаются, там нельзя всякую фигню выводить, типа даты распечатки.

— А, ну да… И что?

— Что-то, не знаю я. – пожал плечами Стас. – Вот так и мучаемся.

— Не, так не годится… — задумчиво сказал Сергей. – Надо что-то придумать…

— Да пробовали мы, разные варианты. – чуть повысил тон Стас. – Еще до тебя пробовали. Терминалы сбора данных, например.

— Во, кстати, отличная ведь идея! – подхватил Сергей. – Никаких бумажек, и связь с системой прямая. Сделал бухгалтер документ – он сразу у кладовщика появился!

— Не, неудобно и дорого. – покачал головой Стас.

— Почему? Давай объясняй.

— Во-первых, дорого. – начал Стас. – Сам посуди. Обычный ТСД, с маленьким экранчиком – не годится, хотя он и не дорогой.

— Почему не годится?

— Ну ты попробуй сам с таким экранчиком пособирать две сотни позиций. – улыбнулся Стас. – ТСД для другого нужен – для розницы, там. Здесь он реально только мешать и бесить будет. Другое дело – планшет.

— Ну вот, заработала мысль! – снова подхватил Сергей.

— Заработала и отработала. – улыбнулся Стас. – Это реально дорого, потому что планшет нужен защищенный. Мы брали один, на пробу – бешеных денег стоит.

— Нафига защищенный? – нахмурился Сергей. – У нас же обычные условия, не жарко, не мокро.

— Ну как… Мокро. Видел, в каком состоянии бумажки?

— Грязные.

— Да. Потому что у нас, повторюсь, не розница. Детали без упаковки, зато – в смазке. Руки постоянно грязные.

— Перчатки может выдать?

— В перчатках планшетом пользоваться не получится, ты чего? – улыбнулся Стас. – Да и все равно промокают они, от масла, или чем там детали смазывают… Не годится, короче. Да и неудобно.

— Чего неудобно?

— С планшетом неудобно. На бумажке же как: взял позицию, положил в ящик – ручкой галочку поставил. Взял меньше – поставил количество, ручкой опять же. Бумажек можно с собой несколько таскать. Одну – в один карман, другую – в другой. Не надо ничего искать там в компьютере, листать, материться. Собираешь один заказ, принесли другой, более срочный – убрал бумажку в карман, и спокойно пошел дальше. Опять же, бумажку удобно в ящик с деталями положить.

— Это зачем?

— Ну как… Один кладовщик собирал, смена закончилась, выходит вторая. Подходит кладовщик к ящику, берет бумажку, и доделывает – собирает то, что осталось. Бумажку – хоть в зубы бери, хоть…

— Я понял. – нахмурился Сергей.

— Ну вот…

— А ты откуда так все детально знаешь, про бумажки? – вдруг осенило Сергея.

— Так я с ними сколько провозился тогда. – сказал Стас. – Прям сам пробовал эти ящики собирать. Вот и понимаю теперь, что у них там и как.

— Ладно, ну делать-то что-то надо? Допустим, оставляем бумажки. Как сверить бумажку и систему?

— Распознавать, наверное, надо…

— Не, это вообще дебилизм. – покачал головой Сергей. – Во-первых, бумажек несколько, на одну накладную. Во-вторых, формат разный – ты сам говорил. Тут на полгода работы хватит, чтобы их распознать, да еще потом и сопоставлять.

— Ну да… — задумчиво сказал Стас.

— Какие еще варианты есть?

— Может, нам унифицировать бумажки? – вдруг сказал Стас. – Ну, для внутреннего пользования.

— В смысле? Как? Разве можно заменить типовую форму, принятую в каком-нибудь законе?

— Нет, ты не понял. Смотри сам. Вот у него сейчас какая накладная была? – спросил Сергей.

— На перемещение вроде…

— Типовая форма?

— Ну да, какая-то типовая.

— И что с ней потом будет? Когда перемещение свершится?

— В бухгалтерию сдаст, на хранение, наверное.

— В таком виде? Грязную, помятую?

— Нет, наверное… А как тогда?

— Я думаю, они ее перепечатают, и он ее подпишет. Там же есть подпись?

— Да, отправитель и получатель.

— Ну вот, оба и подпишут. – кивнул Сергей. – А раз ее перепечатают, то нафига в первый раз была типовая форма? Тем более, что она содержит ненужную информацию, а нужной – не содержит.

— Кстати, да… — как будто что-то вспомнил Стас. – Они жаловались тогда, еще конфликт был, когда пометки свои ручкой ставили на накладной для отгрузки. Бухгалтерия возмущалась, потом менеджеры – ну, что клиентам такое свинство отправляют. Тогда вроде и решили перепечатывать сызнова. Ну и там места не было для этих пометок, на полях только.

— Ну! Я и говорю! – Сергей начал воодушевляться. – Давай сделаем универсальную бумажку! Они ведь чем отличаются? Складские операции в смысле. Надо что-то взять и куда-от отнести, правильно?

— Ну, так… — кивнул Стас.

— Или со склада на склад, или – со склада в цех, или – со склада в автомобиль, или – наоборот, когда приход.

— А комплектация?

— А что комплектация? – удивился Сергей. – А, да… Там же из четырех деталек собирают одну?

— Да.

— Ну ладно, будет одна бумажка немного от других отличаться. Везде будет одна таблица товаров, а для комплектации – другая. А главное – мы там ничего лишнего выводить не будем, и место для пометок им оставим!

— Кстати, может, тогда и номер версии вывести? – вспомнил Стас. – Ну, чтобы сверять-то…

— Точно! Молодец, Стас! – заулыбался Сергей.

— Стараюсь! – гордо ответил Стас.

— Единственное… — по лицу Сергея мелькнула тень.

— Ну что опять… — скис Стас.

— Версии я не люблю, им нельзя доверять…

— Почему? – уныло спросил Стас.

— Мы их чистим периодически.

— А, да… — сокрушенно покивал головой Стас. – Они ж места много занимают…

— Да и тяжеловатый способ какой-то получается. – Сергей задумчиво вертел в руках смартфон. – Версии-то сравнивать. Надо что-то попроще выбрать…

— Какой-то бы другой признак, идентификатор найти…

— Типа штрихкода? – с надеждой спросил Стас.

— Ну да, типа штрихкода… Ну, чтобы…Как объяснить-то…

— Да я понял.

— Что ты понял?

— Чтобы этот штрихкод, или какой-то другой идентификатор, однозначно определял эту бумажку.

— Не, ты не понял. – покачал головой Сергей. – Однозначно определить бумажку может ее номер, тут и штрихкод не нужен. Вот ты когда вручную сверял, какую информацию использовал? То есть, что именно проверял?

— Так… Дату документа проверял – ну, чтобы день тот же самый был, а внутри дня пусть двигают, как хотят…

— Так, еще что? – заинтересовался Сергей.

— Еще отправителя и получателя…

— Да, это понятно, дальше что?

— Номенклатуру и количество, после свертки таблицы. Ну, чтобы дублирующихся строк не было.

— Ну вот. Считаем. – Сергей стал загибать пальцы. – Дата, отправитель, получатель, таблица с номенклатурой и количеством. Это – суть документа, его ключевые поля. Остальное, с точки зрения складского учета – чушь.

— Это ты про что?

— Там полно полей еще, особенно в отгрузке. Договоры всякие, счета учета, комментарии, заказы и т.д. – вся аналитика, нужная для управленческого, бухгалтерского учета, CRM и т.д. С точки зрения склада все это – чушь.

— А, понял, понял. – немного пристыженно закивал Стас.

— Так вот, как-то бы вот все эти поля, нужные нам идентифицировать, понимаешь? Ну, чтобы по какому-то признаку, что ли, раз! – и проверить состав документа. Вот этот, наш, складской состав. Понимаешь?

— Да, понимаю. Только не понимаю, как это сделать. – покачал головой Стас. – С версией я понимаю. Я там, в принципе, то же самое и делаю. А как такую информацию на бумажке хранить? Ты же этого хочешь? Хранить на бумажке, сверять с программой?

— Да. Может, все-таки штрихкод?

— Штрихкод документа?

— Ну да… Хотя… Нет. – замотал головой Сергей. – Не подойдет штрихкод. Он же сам по себе живет, и никакой полезной информации в себе не содержит.

— Почему? Как? – удивился Стас.

— Ну ты просто присваиваешь документам штрихкоды, по порядку, и все. Один документ – один штрихкод. Меняешь документ – штрихкод не меняется. Это, как длинный номер, или второй номер, не знаю… Просто пригодный для сканирования. Пикаешь, программа ищет его, и определяет, какой документ отсканировали. Все.

— Ну ты мне рассказывай… — махнул рукой Стас. – Я с розницей несколько раз работал, будет он мне про штрихкоды рассказывать…

— Ну давай, просвети меня, умник. – ухмыльнулся Сергей.

— Ща, докурим и сдадим. – с улыбкой произнес Стас фразу из старого анекдота про студентов. – Слышал про плушки?

— Плушки? Я очень любить русский язык и много говорить на он?

— Ой деревня… Ты фрукты в супермаркете покупаешь?

— Ну да, конечно.

— Тебя никогда не удивляло, что на кассе твои бананы нормально пробиваются, с определением веса, цены и т.д.? Заметь, по штрихкоду.

— Да, а что тут… Погоди… — задумался Сергей. – Они что, хранят эти штрихкоды? После каждого взвешивания запоминают результат в базе? И потом по штрихкоду ищут мой результат взвешивания?

— Ну, я говорю, деревня. Шибко умная. – засмеялся Стас. – Там все намного проще. Вся информация, необходимая для продажи, содержится в самом штрихкоде.

— То есть как? – удивился Сергей.

— То есть так. Деталей я не помню, примерно расскажу. Там плушка, то есть PLU – это то ли три, то ли четыре цифры, они однозначно идентифицируют товар.

— Да, что-то припоминаю такое… — пробормотал Сергей. Потом вдруг стал картинно кричать. – Галя! Какой плу на яблоко роял гала?

— Ну да, оно и есть. – кивнул Стас. – Это где весов в зале нет, там кассир должен плушку знать, потому что сам взвешивает. Но там и штрихкод, как таковой, не возникает.

— Про плушку понял, дальше что? – заинтересованно спросил Сергей.

— Дальше вес и цена, вроде, но это уже не суть. – махнул рукой Стас. – Я ж тебе к тому рассказал, что в штрихкод можно засовывать любую информацию, особенно в сто двадцать восьмой.

— Какой?

— Ну они же разные есть, штрихкоды-то. Блин, какой ты тупой, а? – улыбнулся Стас.

— Давай рассказывай. – не стал отвлекаться Сергей.

— Короче, есть разные виды, или типы, не знаю как называется эта классификация. Наиболее распространенный – EAN13, ты его видишь чаще всего. Но, если тебе надо много информации в штрихкод запихать, то лучше подходит Code128 – там даже буквы писать можно, и они кодируются, и раскодируются, и читаются любым сканером современным.

— Буквы? – округлил глаза Сергей. – Серьезно?

— Ну.

— Блин, это ж кайф! – улыбался Сергей. – Тогда все на свои места встает! Мы можем весь состав документа – ну, те поля, что я перечислил – загнать в одну длинную строку, как в стек, и закодировать в штрихкод! А потом – быстро сверять!

— Ну, не знаю…Представь, двести позиций, по каждой надо, хотя бы, код номенклатуры, количество… Очень длинная строка получится. Такую и сканер может не взять, обычный. Широкий какой-то нужен, я не знаю…

— И что, как быть-то? – скис Сергей. – Давай, умник, гений штрихкодирования, подсказывай.

— Ее бы как-то заархивировать, что ли, не знаю…

— Погоди… — в голову Сергея пришла какая-то мысль. – Точно, хорошо что ты про архиватор заговорил! Контрольную сумму надо вычислять!

— Чего?

— Да не тупи, Стас. – улыбнулся Сергей. – Ну, контрольная сумма, по длинной строке. Она там по разным алгоритмам вычисляется, это не важно. Важно, что она – короткая, понимаешь?

— Нет.

— Ну строка – длинная, хоть километр, а контрольная сумма – короткая, всегда короткая. И она всегда однозначно идентифицирует эту строку! Точнее, не саму строку, а нам это и не надо. Она скажет главное – изменился документ или нет!

— Начинаю понимать… — задумчиво сказал Стас. – Ты будешь вычислять контрольную сумму документа, сохранять ее, а при печати – выводить в виде штрихкода прямо на бумажку?

— Да!

— А дальше?

— А дальше они к тебе придут со своими бумажками грязномазыми, а ты сканером пик! – и говоришь – все, валите, ничего не изменилось. Система сама сходит, поищет эту контрольную сумму, и если нашла – значит, все хорошо. А если не нашла – значит, документ поменялся. Тогда подойдет твой тяжелый алгоритм, с версиями.

— О, точно! – поддержал Стас. – Тогда мы просто к информации о версии добавим контрольную сумму! Блин, кайф! Тогда, даже если документ поменялся, я однозначно определю версию, из которой была печать!

— Ну. Тогда и бегать к тебе им не надо, в общем-то… Дашь ей сканер, дешманский какой-нибудь, и пусть себе пикает. Или даже Рустаму дашь сканер, жалко что ли.

— Клево, слушай… — мечтательно сказал Стас. – Прям решение классное, мне нравится. Главное – не будет реагировать на изменения, не связанные со складом. Это, типа, такое умное версионирование, с быстрым откликом и определением ключевых отличий.

— Ага, но самое интересное в другом. – кивнул Сергей. – В том, что мы с тобой придумали, как быстро сверить бумажку с программой.

— А что? Это важно?

— Безмерно. В нашем проекте по складу.

Комментарии (53)


  1. AlexNomad
    27.09.2018 17:19

    Будьте осторожны — штрих-код code 128 крайне ненадежный и очень размерный.
    Для контроля правильности считывания code 128 простой CRC не достаточно.
    П.С. Из личного опыта.


    1. Nomad1
      27.09.2018 18:13

      Более того, CRC для порядковых номеров будет откровенно неудачным решением, ведь это получается очень короткая последовательность байт, где старшие 2-3 байта нулевые или такие же, как у прошлого идентификатора. Какой-нибудь простой Fletcher-16 вообще может начать давать коллизии на ровном месте. Тут надо не лениться использовать хеш-функцию, при чем лучше даже от строкового представления.


      1. catsmile
        27.09.2018 21:00
        +1

        Ну вот, пришли два номада от штрихкодирования и обломали всю малину. Бедный автор.


        1. Impuls
          28.09.2018 10:10

          Мы qr используем. Правда придется докупать 2D сканеры. Но там можно половину штрихкода отгрызть и он прочитается


      1. thatsme
        27.09.2018 21:10

        Murmur2 на 64 бита (std::hash)…


      1. Mike_soft
        28.09.2018 08:19

        вообще, у объектов в системе есть свой внутренний идентификатор. (в БЭСТе — 11-значный числовой ID, в 1с — 9-символьный IDDOC/ID в 7.7 или почти стандартный UID в 8.*, в Навижене тоже есть, навскидку не помню название). ИД вполне нормально ложится на штрихкод. видел и сделанные на основе EAN'а, и делал на code39 — более 10 лет проработало без всяких проблем, без всяких хэшей.


    1. Nikobraz
      28.09.2018 05:09

      В QR те же до 30% избыточной информации закладывают


  1. Satim
    27.09.2018 17:33
    +1

    Как то слабо после прошлых частей. Где накал страстей, где экшен?))


  1. Hardcoin
    27.09.2018 17:39

    Блин, какой ты тупой, а? – улыбнулся Стас

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


    Видимо у всех положительных героев было крайне агрессивное детство. Сочувствую, конечно, но скучновато.


    1. Jeka178RUS
      27.09.2018 19:03
      +1

      Ну не знаю, в нашем коллективе среди программистов это норма. Фразы типа «не тупи», «а какой идиот это сделал» в порядке вещей и еще никто никогда не думал обижаться или обидеть кого-то. Это определенный доверительный стиль общения людей находящихся на одном уровне.


      1. legolegs
        27.09.2018 21:54

        Линус Торвальдс, перелогиньтесь!


  1. BlessYourHeart
    27.09.2018 18:16

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


    1. Hardcoin
      27.09.2018 19:07

      Сравнивать их, что бы понять — нужно ли разобрать заказ (200 позиций) и собрать ещё раз, по новой бумажке (количество-то могло измениться, а насколько — не ясно!). Если количество изменилось — то нужно. В идеале нужно знать, какие позиции поменяли количество, тогда можно весь заказ не пересобирать, а только перепроверить изменения.


      1. BlessYourHeart
        27.09.2018 19:18

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


        1. Hardcoin
          27.09.2018 21:46

          Каким образом сравнение двух цифр поможет? Вы учитывайте, что позиций 200. И как минимум 50 из них поменялось. В состоянии ли они сравнить 50 строк с одной стороны и 100 с другой (потому что из одной стало две или больше)? Да, разумеется в состоянии. Просто это долго, а вся остальная работа будет стоять. Вот герои рассказа и придумывали, как упростить процесс.


          Если они сами делают эту форму, то могут и показать изменённые позиции

          Могут. Там началось с того, что форма типизированная и менять нельзя. Т.е. нельзя показать (только на экране). А потом у них мысль ушла в сторону штрихкода и они забыли обдумать вариант с печатью изменений прямо в документе. Лично я бы тоже не штрихкодом решал, это скорее костыль, чем решение, но сама их логика в целом понятна.


          1. Mike_soft
            28.09.2018 08:03

            а какое, в общем, дело кладовщику до «партий списания», если он один хрен в данном случае работает «по количеству»? ему нужна одна сводная накладная. придумывать тоже ничего не надо — в нормальных учетных системах это давно сделано.


            1. Hardcoin
              28.09.2018 08:31

              Никакого. Ему принесли, он собрал. А потом принесли ещё раз, сказали, новая версия. Ему дела никакого, но собрано должно быть по новой версии.


              1. Mike_soft
                28.09.2018 08:37

                а никакой «новой версии» с точки зрения кладовшика не существует. раньше «деталей X» было 20 в трех строках, сейчас их 20 в 20 строках. Но их осталось 20. Если же он ведет учет деталей по партиям, по серийным номерам и т.п.- то ему надо не «версионировать», а разбирать собраный заказ, и собирать заново «с нуля». ну и по-хорошему, оплачивать «первичную сборку, разукомплектацию заказа, размещение по местам хранения» кладовщику должна бухгалтерия.


                1. Hardcoin
                  28.09.2018 09:04
                  +2

                  Но их осталось 20

                  Вы уверены? Откуда? А кладовщик был не уверен, с этим вопросом и пришел — изменилось количество или нет. Ему сказали — нет, количество не изменилось. Это же написано в рассказе, почему бы вам просто не перечитать?


                  1. Busla
                    28.09.2018 12:54

                    Так рассматривается как раз идеальная ситуация, когда Даша только перераспределила остатки между партиями сохранив количество. Вот в этом случае сборочная накладная не меняется, и сравнивать нечего.


                    1. Mike_soft
                      28.09.2018 13:21

                      более того, сборка вообще может происходить не по накладной, а по заказу/складскому ордеру (лично мое мнение — она и должна по ним происходить), а сама накладная должна формироваться только по результатам сборки-комплектовки.


          1. barbeer
            28.09.2018 08:08

            У них есть какая-то версия. Она распечатана на бумаге.
            Потом её меняют, возможно не один раз, и печатают снова. От чего изменения считать и показывать?


            1. Hardcoin
              28.09.2018 08:31
              +1

              Между прошлой бумагой и текущей.


              1. Mike_soft
                28.09.2018 08:43

                а какая бумага «прошлая»? ту, которую напечатали самой первой, и успешно потеряли? вторая, по которой собирал кладовщик-комплектовшик? третья, которую зажевал принтер? четвертая, которую решили сразу же исправить потому, что в ней отображалась некорректная цена списания, возникшая из-за того, что девочка Маша перепутала при оприходовании количество и цену? пятая, которую использовали в туалете из-за того, что в диспенсеры не поклали полотенец, руки вытирали туалетной бумагой, ну а для других целей использовали накладные?


                1. Hardcoin
                  28.09.2018 09:01
                  +1

                  а какая бумага «прошлая»?

                  вторая, по которой собирал кладовщик-комплектовшик

                  Вероятно именно её он и принес. Какую конкретно бумагу принес кладовщик, в рассказе не сказано, но вероятно ту, по которой сам собирал. Откуда у него использованная для туалета, к чему вообще такие предположения?


                  1. Mike_soft
                    28.09.2018 09:22

                    ну а как «герои» знали, с какой бумагой нужно сравнивать «крайнюю» («новую бумажку», в которой «мы немного поменяли» — и, возможно, не последний раз) версию?
                    И то, что он принес какую-то бумагу, по которой собирал — совсем не значит, что она вообще адекватна электронному документу (это уже чисто из практики — вороватый кладовщик давал «бумажные» задания на сборку, вообще не зарегистрированные в системе.)


    1. Zeitung
      27.09.2018 21:17

      Там проблема несколько в другом. У нас в CRM есть WorkOrder с множеством Segments/PartInvoice. Каждый из Segment/PartInvoice включает список необходимых Parts для выполнения работы. Т.е. первое — дупликаты Parts возможны между Segments. Вторая проблема в том что некоторые Parts могут продаваться по разной цене (warranty vs sell), поэтому в PartInvoice они идут отдельными записями (снова дупликаты). Дальше лажа может быть ещё веселее, типа Segment выполняется несколько дней и цена на Part изменилась (снова новая запись), либо когда делают Transfer между складами (тут может быть как разница в налогообложении [разные LocationTax] так и разница цены между складами [акция]).

      Документ который отправляется заказчику и в Кредитное Агенство содержит разбиение по Segment и по позициям\ценам. Кладовщику эта информация не нужна, но судя по всему, кладовщика из истории заставляют работать именно с таким документом. То что предлагают сделать в истории — сводную форму специально для кладовщика, которую будут по ИД мапить с формой для бухгалтера.


      1. BlessYourHeart
        27.09.2018 21:43

        То что предлагают сделать в истории — сводную форму специально для кладовщика, которую будут по ИД мапить с формой для бухгалтера.

        Отличное решение — рабочая инструкция/форма для конкретного исполнителя.

        В принципе этот вопрос решен на 80 строке 165-строчного текста:
        — Может, нам унифицировать бумажки? – вдруг сказал Стас. – Ну, для внутреннего пользования.

        остальные метания — частный случай решения задачи.


        1. Nubus
          28.09.2018 07:26

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


  1. exehoo
    28.09.2018 07:04

    Code128 – там даже буквы писать можно, и они кодируются, и раскодируются, и читаются любым сканером современным.

    Наивный чукотский юноша не пробовал работать с этим Code128 вживую.


  1. Mike_soft
    28.09.2018 08:10

    Вообще, ребята, конечно, фееричные.
    про то, что у каждого объекта в системе существует свой идентификатор — они не слышали.
    о версионировании — не слышали.
    о сводных документах — не слышали.
    о видах складского учета — не слышали.
    вроде на 1994 год не похожет (они уже про планшеты знают, про ТСД). Просто осьминоги, чтоль?


    1. Hardcoin
      28.09.2018 08:34
      +1

      о версионировании — не слышали.

      Как же они обсуждали версионирование, раз, по вашим словам, не слышали? Или вы пропустили это в рассказе?


    1. Eldhenn
      28.09.2018 15:00

      Даже контрольная сумма является откровением.


  1. Darth_Malok
    28.09.2018 08:24

    Зачем контрольную сумму (или хэш) хранить именно в штрихкоде? В штрихкоде можно хранить номер записи таблицы (идентификатор), а уже в самой таблице и версию документа, и хэш и кучу всего другого.


    1. Mike_soft
      28.09.2018 08:31

      видимо, они хотят идентифицировать не только документ, но и версию документа, которую распечатали на бумаге. В ШК вполне можно запихать номер версии, только это особого смысла в моих реалиях не имело (документ-номер страницы-дата-время-пользователь печатались в нижнем колонтитуле документов).


    1. Hardcoin
      28.09.2018 08:35
      +1

      Они это обсуждали, решили, что не подходит.


      1. Darth_Malok
        28.09.2018 09:56

        Так обсуждали штрихкод, привязанный к документу, а не к какой-то специальной таблице с дополнительными данными. Я к тому, зачем в учётной системе нужен штрихкод, хранящий все данные непосредственно в себе? В магазинах да — это актуально, чтобы каждые весы не писали данные в базу. Но в учётной системе мы всё равно работаем с БД, изменяя документ. И при проверке нужно будет прочитать из БД данные документа. Так зачем использовать штрихкод как хранилище информации вместо того, чтобы хранить в нём только идентификатор хранилища информации?


        1. Mike_soft
          28.09.2018 10:19

          все данные хранить не нужно. а вот идентифицировать версию, и подтвердить неизменность товарного состава документа — очень желательно.
          В рознице ШК тоже хранит в себе далеко не все данные. а лишь СКУшку/ПЛЮшку, и вес.


  1. ACherabaev
    28.09.2018 10:27

    А презерватив и Das Experiment это типа спиноффы?


  1. Lord_Prizrak
    28.09.2018 11:19

    А у меня просьба. Под заголовком где-нить в начале текста указывайте, что это глава такая-то. А то не понятно, то-ли новая глава, то-ли рассказик…


  1. lamer84
    28.09.2018 11:29

    — Ну да… — задумчиво сказал Стас. //Стас

    — Какие еще варианты есть? //Сергей

    — Может, нам унифицировать бумажки? – вдруг сказал Стас. – Ну, для внутреннего пользования. //Стас

    — В смысле? Как? Разве можно заменить типовую форму, принятую в каком-нибудь законе? //???

    — Нет, ты не понял. Смотри сам. Вот у него сейчас какая накладная была? – спросил Сергей. //Сергей

    Вот тут нестыковка, по-моему. Про замену формы в законе кто спросил? И кто ему ответил?


  1. nmivan Автор
    28.09.2018 12:22
    +1

    Всем спасибо за комментарии про code128, версионирование и т.д.

    Есть просьба из двух пунктов:
    1. не ассоциируйте происходящее в книге с ее автором, т.е. со мной;
    2. не думайте, что я считаю, будто герои всегда правы, и все делают правильно.

    Они вполне могут ошибаться. Это ж не сказка, в которой все идет, как по маслу.


  1. RainbowJose
    28.09.2018 12:29
    -1

    Ты можешь заткнуться? Твои истории достали уже.


    1. nmivan Автор
      28.09.2018 12:34

      подниму-ка я вам карму.


      1. RainbowJose
        28.09.2018 12:49

        Каждому товару — свой купец, конечно, но ты правда говно какое-то пишешь, да ещё и почти каждый день. Высосаные из пальца, примитивные сюжеты, картонные, детские персонажи, бедная речь. Какой-то театр гебефреников. Развязки, завязки, кульминации, интересные конфликты — что это? Это какая-то недоайтишная микро-Донцова, а все тексты можно выпустить в сборнике «Истории у офисного кулера», в очень, очень мягком переплете.


        1. nmivan Автор
          28.09.2018 12:57

          эх, жаль, еще раз не могу вам карму поднять.


          1. RainbowJose
            28.09.2018 13:11

            Право и лево тоже путаешь?


            1. nmivan Автор
              28.09.2018 13:12

              вы, главное, не переживайте. Я купил книжку о том, как писать книжки.
              Обязательно научусь и вам понравлюсь.


  1. alfaterra
    28.09.2018 12:33

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


  1. Busla
    28.09.2018 13:03

    — Во-первых, дорого. – начал Стас. – Сам посуди. Обычный ТСД, с маленьким экранчиком – не годится, хотя он и не дорогой.
    — Почему не годится?
    — Ну ты попробуй сам с таким экранчиком пособирать две сотни позиций.

    На экран выводится номер места и кол-во сколько брать. Чего там на экранчике не уместится? Да и большой экран — совершенно не проблема. Мы ещё в начале двухтысячных коннектили сканер штрихкодов к КПК с PocketPC. Самое сложное было — изобрести крепление на предплечье :-)


  1. Mike_soft
    28.09.2018 13:11

    нет у них адресного хранения. не доросли ишшо… осьминоги жеж.


  1. stanislavkulikov
    28.09.2018 14:45

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


    1. gennayo
      28.09.2018 22:36

      Это не дичь, это преломленные пониманием воспоминания автора о трудовых буднях…