Вновь об автоматизации инвентаризации

    Введение


    На Хабре не раз писали об инвентаризации, но для меня не нашлось ничего полезного. Почему? Ответ прост: передо мной была поставлена задача: автоматизировать процесс инвентаризации товаров магазина. Лежащие на полках склада товары не отвечают на пинги, не могут по команде сами о себе собрать статистику и отправить их на сервер. При этом магазин не виртуальный, и даже не маленький розничный магазинчик, где за час можно пересчитать все руками, блокнотом и ручкой. Речь идет о довольно крупной торговой сети, продающей товары весьма различных направлений.



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

    Исходные данные


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



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

    • Сканирование линейных штрихкодов (обычно всех возможных форматов, а так же инвертированных по цвету и зеркальных)
    • Распознавание двухмерных штрихкодов
    • Чтение радио-меток

    Но, так же, есть ряд других характеристик, на которые стоит обратить внимание:

    • Характеристики экрана (влияет на количество и качество выводимой пользователю информации)
    • Время автономной работы (будет неприятно прервать инвентаризацию из-за севшего аккумулятора)
    • Объем памяти (количество записей БД, которые терминал может собрать перед передачей)
    • Возможности связи (через док-станцию, по bluetooth или wi-fi)
    • Защищенность от внешнего воздействия (ударопрочность, термостойкость — актуально для пыльных складов или холодильных установок)
    • Цена

    Так как изначально требовалось только попробовать инвентаризацию такими устройствами, и если окажется удобным — будут выделены деньги на массовое внедрение во всех подразделениях, то важнейшим критерием я выбрал низкую цену. В результате поисков и сравнений я выбрал CipherLab 8001L.

    Интеграция


    Для ведения учета в компании используется «1С: Предприятие 8. Управление Производственным Предприятием» (УПП). Поэтому для меня был важен вопрос интеграции с нашей системой этого устройства. К счастью терминал оказался в списке официально поддерживаемых устройств. По задумке это должно означать что мы скачиваем и ставим драйвер, обработку 1С и начинаем работать, но меня такая работа не устроила.

    Естественно оборудование можно интегрировать в любую систему учета. Самый простой способ — использовать файлы заданного формата для обмена между терминалом и системой. Но компонента, написанная для 1С, поддерживает работу с терминалом напрямую. В качестве базы я использовал ПО от ScanCode — официального представителя CipherLab в России, т.к. куплен терминал был у партнера компании и имел соответствующую лицензию на прошивку. В целом продавец не сильно имеет значение, ведь все прошивки похожи друг на друга и имеют сходные генераторы приложений. На примере данной статьи можно разобраться и с другими прошивками. Подробнее о прошивках и приложениях для ТСД написано чуть ниже. Для внедрения в работу терминала потребуется скачать со страницы разработчика:


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

    Драйвер док-станции ставится как обычное устройство, после этого подключенный по USB кредл должен нормально определится и появится в оборудовании в виде COM-порта. Нам надо будет запомнить номер этого порта:



    Если вы желаете просто начать работать, то все что осталось — это установить компоненту для 1С и подключить обработку. Компонента устанавливается как обыкновенное ПО, а обработка подключается в через справочник торгового оборудования. На примере УПП это будет выглядеть так:



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

    Иногда библиотека cipherlab.dll не регистрируется должным образом, поэтому можно вручную зарегистрировать ее в системе командой:

    regsvr32 [путь_до_файла]\cipherlab.dll

    Создается строка в справочнике «Торговое оборудование»:



    На что следует еще обратить внимание, так это настройка терминала:



    Тут необходимо указать COM-порт который мы запомнили выше при установке ИК-подставки, некоторые специфичные параметры, которые можно оставить и по умолчанию и два формата — БД и Файла для обмена с ТСД. Формат БД — зависит от ваших потребностей, актуального для статьи скриншота не осталось, а вот пример формата файла привожу:



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

    Анализ и доработка


    После долгого общения с сотрудниками разного уровня и разных должностей выстроилась следующая цепь действий для удобного проведения инвентаризации:



    Рассмотрим по пунктам, что надо в этом процессе автоматизировать:

    Создание документа

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

    • Мы подождем пока с терминалом пройдутся по складу, а потом просто загрузим из него фактические остатки и в документе проставим учетное количество, рассчитаем расхождение и распечатаем сличительную ведомость
    • Мы выгрузим номенклатуру в терминал, перед началом сбора данных, чтобы при инвентаризации было удобно работать с номенклатурой, а далее загрузка, сверка и печать.

    Первый вариант — проще, практически ничего не надо доделывать, просто идем с терминалом и штрихуем всю номенклатуру, вводя количество, а потом стандартной обработкой загружаем номенклатуру в документ.
    Второй вариант — намного удобнее и практичнее. Во-первых, оператор будет видеть штрихкод какой номенклатуры он сейчас считал в ТСД, т.к. терминал будет знать к какой номенклатуре приписан этот штрихкод. Можно также выводить и учетное количество, но я отказался от этого, чтобы оператор совсем не расслаблялся и не тыкал бездумно кнопку ввода, а проверял количество и вводил его цифрами. Кто то может отметить что ввод количества — это дырка в системе, т.к. из-за человеческого фактора может быть введено неправильное количество. На это я отвечу, что на должность инспектора (ревизора) берут людей ответственных, они не должны ошибаться, это их работа. Кроме того если «тыкать» каждую единицу номенклатуры и автосуммировать количество (тут надо отметить, что режим автосуммирования я предусмотрел в итоге), то процесс затягивается, а мне было важно именно сократить время инвентаризации (читайте — простоя магазина, приносящего доход). Во-вторых в первом варианте возможна ситуация что номенклатура по учетному остатку есть на складе, а фактически — отсутствует, тогда терминал об этом ничего не скажет, и расхождение не будет учтено. Однако эта проблема исчезнет и при первом варианте, если сначала заполнить документ остатками по складу, а уже потом загружать в него данные из терминала, надо только предварительно обнулить колонку фактического количества.

    Итак, тут я выбрал второй вариант, появился этап выгрузки данных в терминал и мне было необходимо написать обработку, которая бы это делала. Заполнение же документа учетными остатками делается стандартной функцией: «Заполнить» → «Заполнить по остаткам на складе (Упр. учет)».

    Выгрузка данных в терминал

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

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

    • Штрихкод
    • Наименование
    • ЕдиницаИзмерения
    • ХарактеристикаНоменклатуры
    • СерияНоменклатуры
    • Качество
    • Цена
    • Количество

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

    Подключать внешнюю форму надо в справочнике внешних обработок заполнения табличных частей, который можно открыть через меню «Сервис» → «Дополнительные внешние отчеты и обработки» → «Обработки заполнения табличных частей». Созданный элемент должен выглядеть примерно так:



    Теперь в самом документе можно через «Заполнить» → «Выгрузка данных в терминал сбора данных» отправить список номенклатуры в обработку. Сам обработка была написана для универсального применения, и можно прямо в ее окне сделать подбор номенклатуры для выгрузки, но если она получает список, то достаточно просто нажать «Выгрузить» и подождать.

    Сбор данных при помощи терминала

    Терминал сбора данных — устройство довольно сложное, и для корректной работы ему необходима программа! Иначе он просто не будет знать что ему делать с этим списком. Для терминалов CipherLab есть два вида программы: прошивка и приложение. Прошивка — это что то вроде операционной системы терминала, прокладка между приложением и системой I/O. Можно разработать свою прошивку. Для этого на сайте производителя терминала есть все необходимое — ПО, примеры и документация. Меня стандартная прошивка от ScanCode вполне устроила. Кто хочет поэкспериментировать с разработкой прошивки, тот наверняка догадался, что ее надо будет еще и прошить. Делается это утилитами идущими в комплекте поставки. Осталось только создать приложение. Почему я говорю создать, а не разработать? Да просто потому, что процесс этот чисто визуальный и делается с помощью генератора приложений. Главное окно генератора — это эмулятор ТСД:



    Весь функционал программы скрыт в контекстном меню (его открывает щелчок правой кнопкой мыши при наведенном на главную форму указателе курсора мыши). Процесс разработки выглядит примерно вот так:



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

    1. Убрал работу с несколькими базами (эта модель поддерживает одновременно три БД). Для этого просто исключил пункты из меню, которые открывают формы работы со всеми кроме первой базами. Сделано это для того что бы уменьшить вероятность ошибок, т.е. конечный пользователь не запутался в этих БД.
    2. Указал какую информацию надо выводить терминалу, для этого в полях «поиск в» указал поля БД в которые я передавал обработкой 1С нужные данные. Если требуется вывод учетного количества, чтобы оператор бездумно его подтверждал, надо, всего лишь, выставить в поле «поиск в» строки #8 значение «Поле 4». Правда надо убедится что в это поле 4 обработка выгрузки в терминал заполняет именно количество.
    3. Вместо цены я передавал привязанный к штрихкоду коэффициент умножения количества. Об этом я написал выше. У не весовых товаров этот коэффициент всегда равен 1 в этой версии (учет упаковок еще не был реализован).

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

    Загрузка фактического количества номенклатуры в документ

    Тут я ничего мудрить не стал и использовал стандартную загрузку из терминала от 1С. При подключении ТСД в торговом оборудовании, в меню «заполнить» многих документов (в том числе и документе «Инвентаризация товаров на складе») появляется пункт «Заполнить из терминала сбора данных». Этот механизм получает из терминала только штрихкод и количество. А больше ничего и не нужно, обработка заполнения табличной части документа выполняет поиск в БД по штрихкоду номенклатуру, находит (или добавляет) эту номенклатуру в документе и заполняет поле «фактическое количество». После этого необходимо записать документ и провести остальные регламентные процедуры (печать сличительной ведомости, раздача нагоняев за утерянные товары и т.д.). На этом автоматизированные процессы закончились. ТСД отправляется на полку, ревизоры — домой, а некоторые сотрудники начинают судорожно искать «недосдачу».

    Послесловие


    На текущий момент могу сказать, что в тех масштабах, которые планировались руководством, технология не используется. Хотя терминал ускорил инвентаризацию складов с 16 до 4 часов, но некоторые сотрудники встретили новшество в штыки, на отрез отказавшись использовать терминал, и по итогу его использует только один ревизор. Но самим устройством заинтересовались ответственные за отгрузку товара со складов в магазины и прием товара на склад от поставщика. В результате чего мне была поставлена задача автоматизировать их процесс. Для этого были закуплены более навороченные Сipherlab 8500, мне пришлось лезть в обработку работы с терминалом и вообще это совсем другая история. Кроме этого оборудования, мне, по долгу службы, уже довелось поработать с фискальными регистраторами и банковскими терминалами оплаты. Если тема эта будет интересна читателям, я могу изложить в новых статьях свои наработки и по этим направлениям. Все это я внедрял примерно год назад и что-то мог позабыть. Если кто-то использует этот материал как инструкцию, но столкнется с трудностями, я попробую помочь решить проблему. Может быть, кто то хочет видеть больше подробностей? Тогда укажите какие именно.
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 85
    • +6
      Да, человеческий фактор решает.
      Объясните руководству, что терминал мешает воровать, поэтому внедрять можно только с параллельными увольнениями. Без ярого желания сверху вы эту систему не запустите.
      • +5
        но некоторые сотрудники встретили новшество в штыки

        Конечно! Так можно сутками «считать» и подмять что нужно, а с прибором за часы все посчелкать получается :)…
        Мир леньтяев и воров, эх
        • +2
          Большая часть статьи о том, как подключить ТСД к 1С.
          Да и вообще, все что описано в статье банально.
          Инвентаризацию по штрихкодам уже лет 10 используют на каждом углу.
          Спасибо 1С, которые в своих конфах упростили этот процесс.

          Статья бывалого КО.
          • +4
            Зря вы так, я вот к примеру не особо в курсе деталей, а описано всё очень хорошо, мысль не теряется, поэтому статью прочел с большим удовольствием.
            • +3
              Статья-то может и хорошо написана. Я не спорю.
              Но вот информация в ней в духе КО.
              Посмотрите на текст, большая часть статьи о подключении ТСД в 1С. Это банальнейшая операция которая описана 100500 раз везде.
              Ну и вообще сама статья это:
              1. Подключили ТСД к 1С
              3. Сделали инвентаризацию

              Невероятно крутая автоматизация.
              Тогда уж можно расширить цикл статей:
              1. Покупка 1С для автоматизации инвентаризации.
              2. Настройка компа и винды для инвентаризации
              и т.д.

              Вся полезная инфа в статье сводится к одному предложению.

              Чтобы автоматизировать инвентаризацию, необходимо купить ТСД и подключить его к 1С.

              Все. Ни собственных разработок, ни тонкостей и нюансов по теме, в статье нет ничего.
              Никто же не пишет стати как распаковать новый телефон из коробки и подключить его к зарядке.
              А это статья именно в таком духе.
          • 0
            я правильно понял, что весь список номенклатур грузился на терминал? а не проще ли было организовать взаимодействие между сканером штрих-кодов и рабочим местом? у нас, например, сканер просто считывает код и отправляет полученный номер в систему. которая уже делает дальнейшую работу.
            • +1
              В случае беспроводной связи на складе с металлическими прилавками или товарами этой самой связи на практике нет. Ну а в случае проводоной связи терминала с компьютером надо таскать за собой по складу шнурок и при этом не запутаться в нем и не запутать его за что-то. Особенно весело становиться в случае сканирования чего-то со стремянки/лестницы в случае, когда другой сотрудник спотыкается внизу об кабель твоего ТСД.
              • 0
                странно. у нас беспроводная связь работает нормально. хотя упаковки с готовой продукцией лежат в цехе, а компьютер стоит в том же цехе, но в загончике, обшитом металлическими листами. как это реализовано технически не знаю. возможно, стоят усилители сигнала какие-то, но факт тот, что связь нормальная.
                • 0
                  Беспроводная связь какая именно? Просто интересно. В случае WiFi возможно что роутер стоит где-то в другом месте, а от него к обшитому листами компьютеру идет провод?

                  У нас по WiFi аккумуляторы садились за 4-5 часов, при чем регулярные обрывы начинались уже после часа работы. А Bluetooth не мог «пробить» даже прилавок-стойку со сковородками.
                  • 0
                    wifi в цехе. считыватель 4-5 часов на руках не носили, конечно. у кладовщиков рефлекс — зашел в кабинет, считыватель в гнездо зарядки.
                    • 0
                      Соединение по Bluetooth в ТСД, как по мне, используется лишь для связки с ПК (загрузка/выгрузка). А Wi-Fi покрытие можно организовать на территории всего склада, используя технологию WDS (как вариант). А то что батарея садится быстро — за все нужно платить… хотите иметь реалтайм обработку — будьте любезны…
                      • 0
                        Согласен с Вами, поэтому и интересуюсь, кто как реализовывал данную задачу в условиях, отдаленных от лабораторных, так сказать :)
                • 0
                  В терминал грузится не вся номенклатура учетной системы, а только список из документа. Допустим в документе — 100 наименований. В среднем на каждую номенклатуру — 2 штрихкода, получится ~200 записей. Не так много, ждать долго не приходится, терминал полностью автономен. Можно вообще выключить компьютер и только с ТСД обойти весь склад.
                  Да, можно работать и по беспроводному соединению, но выбранная модель такого не поддерживает. И в этом ценовом сегменте (а цена была важным фактором) я вообще не нашел терминалов с беспроводной связью.
                  • 0
                    т.е. сначала формируется журнал инвентаризации по данным бухучета, а затем сверятся с фактическим количеством. а список грузится из журнала. хорошо. а как быть с номенклатурами, которых нет в учете, но они есть на складе или с пересортом? руками забиваете?
                    • 0
                      Терминал такие штрих коды все равно собирает, просто предупреждает что у него в БД ее нет. При загрузке в документ, учетная система находит номенклатуру по штрихкоду и добавляет в список. Считается что вся номенклатура, хранящаяся на складе, заведена в систему и штрихкоды заводятся в обязательном порядке.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Интересно. А закладки у Вас случайно не осталось?
                    • 0
                      Вот, вроде, нужная Вам статья…

                      Вырезка из нее:
                      «Хаотическое хранение» позволяет компании более эффективно использовать свободное место на полках и не вынуждает служащих тратить много времени, выкладывая товары четко по системе. Определение же их местонахождения весьма не представляет сложности благодаря автоматически генерируемым спискам товаров. С их помощью сотрудники складов легко находят товар на складе и могут быстро формировать заказы.
                      • 0
                        судя по статье, смотрят наличие на складе на сейчас через некое подобие inventsum и выбирают ближайшую ячейку склада.
                        • 0
                          Судя по статье речь идёт об обычном адресном хранении (с автоматическим размещением WMS). Это абсолютно не новость для многих складов (включая Украину и Россию).
                        • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          Было бы любопытно почитать про это. Весьма логично — зная четко какая коробка откуда и куда перемещалась (даже с учетом переноса на соседнюю полку) — поиск действительно не такой сложный как кажется…
                          • 0
                            он не такой сложный в теории получается, но если товары перемещаются по складу и это перемещение идет отдельной проводкой, а кому-то вдруг понадобится построить оборотно-сальдовую ведомость по складу, то ему придется подождать достаточно долго.
                            лучше было бы писать статусы наличия на дату в отдельные дайджесты и вести проводки изменения состояния уже от дайджестов.
                        • +2
                          Во-первых, нормальные компании на складе используют Red Prairie либо SAP.
                          Там эти операции вшиты. Какие бывают типы инвентаризации — слепая, двойная слепая и т.д. вы не пояснили.
                          Соответственно, непонятно, почему используете именно такой ввод количества товаров.
                          На моем предыдущем месте работы на 80 000 м2 складе вафля прекрасно работала, подвешена была к потолку в нескольких местах. Сканнеры прекрасно работали, с постоянной связью с сервером, на котором сразу начальство видело расхождения и отправляло таджиков пересчитывать коробки/штуки.
                          Автору посоветовал бы подучить 800-страничную книжку по Supply Chain, а не описывать банальные процедуры.
                          • –1
                            в SAP вшито общение со сканерами штрих-кодов? мы делали решение для DAX и нам пришлось допилить руками приложение.
                            • +1
                              как минимум SAP намного дороже 1С. И для многих компаний функциональность 1С является вполне достаточной
                              • 0
                                Мне поставили задачу не поменять учетную систему предприятия, а только внедрить ТСД. Когда я устроился работать в компанию, 1С уже была. Из-за такой задачи как инвентаризация на складе внедрять новую систему никто не станет. Возможно я не достаточно глубоко изучил матчасть по инвентаризации, но сделал я все так как хотели этого ревизоры и руководство. Соответственно я полагался в этих вопросах на их знания. Если я вернусь к этому вопросу, то вероятно прочитаю предложенную литературу, но, думаю, и мой опыт будет полезен, так как я много спотыкался на этом пути и постарался изложить все как можно проще. Я не могу пропустить банальные вещи и описать только свои доработки — тогда статья была бы не связанной.
                                • +1
                                  Мне поставили задачу не поменять учетную систему предприятия, а только внедрить ТСД.

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

                                  Небольшое замечание. Помимо полной инвентаризации бывает и выборочная (к примеру — проверить определённые местонахождения или группы товаров). Плюс это может быть включено в пикинг. Например — «если из местонахождения берётся 5 коробок и там должно оставаться 2, высветить оператору задачу просканировать остаток в ячейке». Но это уже вопрос более к реализации контроля остатков в самой WMS. (в таком случае необходимость полной инвентаризации будет возникать редко)
                                  • 0
                                    Задача была: внедрить ТСД с основной целью — ускорить процесс инвентаризации и упростить заполнение документов в учетной системе.
                                    • 0
                                      Ясно. В любом случае я уже выразил своё мнение и примерно описал как бы это происходило на большинстве складов в UK. В Украине сам много раз сталкивался с ситуацией почти один в один как у Вас при внедрении адресного хранения и WMS.
                                • 0
                                  Во-первых, нормальные компании на складе используют Red Prairie либо SAP.

                                  Ну прям таки :)

                                  У нас Red Prairie используется только на нескольких складах, многие и без неё без проблем работают. (товар, в основном, — мобильные телефоны и аксессуары, обслуживаем нескольких крупнейших мобильных операторов нашего острова)
                                • –1
                                  А каким образом обрабатывали ошибки ввода данных в ТСД?

                                  По личному опыту могу сказать, что юзверя бегая по складу с ТСД сканируя штрих ручками вводили количество товара с данным штрихом. Но бывали случаи когда юзер вместо того, чтобы ввести количество, брал и сканил другой штрих. Таким образом получалось, что количества товара зашкаливало за 1 000 000 000 000 штук. Тут уже 1С сходила с ума и просила исправить количество,
                                  • 0
                                    Я ограничил длину поля количество и при сканировании штрихкода в количество терминал сообщал что формат ввода — не корректный. Но потом я пошел дальше — разрешил ввод количества только с клавиатуры.
                                  • 0
                                    А как происходит поиск и взятие товара со склада?
                                    • 0
                                      Немного не понял вопроса. При инвентаризации человек просто обходит все полки и сканирует все что на них лежит. Искать ничего не приходится, брать с полок в основном тоже ничего не приходится — нужен только один экземпляр номенклатуры и пересчет количества, если конечно не используется режим автосуммирования.
                                      • 0
                                        Я ниже уточнил вопрос, я просто криво выразился.
                                      • 0
                                        не смешивайте инвентаризацию и пикинг. В случае последнего вопрос в наличии WMS с адресным хранением.
                                        • 0
                                          Да, я пикинг и имел ввиду, криво выразился. Но вопрос не про WMS, а больше про WES
                                          • 0
                                            У нас это пока все еще на уровне: "- Михалыч, а чипсы где? — Иваныч, стелаж №3". У всех групп товаров есть свое место на складе, кладовщики и грузчики просто помнят где что стоит.
                                            • 0
                                              кладовщики и грузчики просто помнят где что стоит.

                                              Ну тогда понятна вся глубина проблемы «ценных кладовщиков». :)

                                              Про внедрение WMS и адресного хранения не думали?
                                              • 0
                                                Мне самому всегда интересно попробовать что то новенькое, но задачи я сам себе ставить не могу. На уровне предложений руководству это звучало.
                                                • +1
                                                  Просто одним из результатов внедрения WMS как раз и будет снижения зависимости от уникального персонала и возможность быстрого обучения нового. Я прекрасно понимаю, что такое «заболел Дядя Вася, а без него никто не найдёт тот особенный болт с левой резьбой». Да и решения не ограничены гигантами вроде SAP, Oracle, RedPrairie и Manhattan. Даже помимо родного 1С-го решения (о качестве его WMS модуля говорить не могу, так как знаком очень поверхностно) есть вполне недорогие и неплохие системы.
                                                  • 0
                                                    Спасибо за наводку, стоит еще раз поговорить с руководством.
                                                    • +1
                                                      хозяйке на заметку: в первую очередь стоит заручиться поддержкой хотя бы топ-менеджмента, а еще лучше собственников и упорядочивать и оптимизировать бизнес-процессы. а потом уже накладывать на нее ту или иную ИТ систему. если же автоматизировать хаос, то получится автоматизированный хаос. на этом не одна команда ERP внедренцев профакапилась на моей памяти.
                                                      • 0
                                                        если же автоматизировать хаос, то получится автоматизированный хаос.

                                                        Золотые слова! (уже почти 3 года их не слышал :) )

                                                        Без демонстрации владельцу/управляющему, как текущая ситуация стоит ему больших денег на неэффективной работе или зря потраченном времени — ничего не выйдет.
                                                      • 0
                                                        Главное старайтесь думать категориями бизнес-задач. Просто внедрить терминалы или WMS систему — это никому (кроме ИТшников) неинтересная трата времени и денег. Надо анализировать всю систему и искать её неэффективные места. Иногда две лишние секунды на какую-то операцию кладовщиком могут сэкономить многие часы работы бухгалтерии в дальнейшем. В общем, Lean и т.п. :) (с плотным вовлечением связанных с этим исполнителей: кладовщиков, операторов и т.п.)
                                                    • +1
                                                      WMS нельзя внедрять как инициативу ИТ. Во многом процесс внедрения состоит из оптимизации бизнеспроцессов склада, тщательной проработки его технологии. Поэтому это должно быть либо от начальника склада, либо ответственного за логистику директора/руководителя. Сама WMS — это лишь средство (одно из) для поддержания технологии работы склада.
                                                      • 0
                                                        Я это понимаю, поэтому я просто сообщаю о технологиях, которые появились, а руководство думает что оно хочет. Пока про WMS оно ничего не надумало.
                                                        • 0
                                                          Что вполне логично. Они ведь думают не про дрели, а про отверстия, или даже повешенных картинах. (немного перефразировав классический пример :) )
                                                • 0
                                                  Что Вы подразумеваете под WES?
                                                  • 0
                                                    Ну если WMS это Warehouse Management System, то WES — это Warehouse Execution System. Может быть интегрирована в WMS. Спектр широкий — от простых распечаток и штрих-кодов до голосового управления и роботов.
                                                    • 0
                                                      Понял. Просто раньше не сталкивался с таким термином.

                                                      до голосового управления и роботов

                                                      У ас двумя кранами-роботами и системой аккумулирующих конвейеров управляет WCS — Warehouse Control System. :) (которая уже общается с WMS и ERP. Выдачей задач исполнителям занимается WMS)
                                                      • 0
                                                        Ну устоявшегося термина нет, на моей прошлой конторе их называли WES. Кстати, один из проектов как раз и был про управление роботами-погрузчиками :)
                                                        • 0
                                                          один из проектов как раз и был про управление роботами-погрузчиками

                                                          У нас — mini load, что-то вроде такого:
                                                          image

                                                          А есть в открытом доступе какие-то описания прошлых проектов? Сугубо в рамках самообразования :)
                                                          • 0
                                                            У нас было проще, за пикером ездил робот с контейнером, как только контейнер наполнялся, робот уезжал на разгрузку и привозил пустой контейнер. Т.е. человек все же в процессе принимал участие.

                                                            Про открытый доступ не уверен, вот эту систему использовали www.kollmorgen.com/en-us/products/vehicle-controls/electrical-vehicle-controls/ndc8/
                                                            А контора моя прошлая вот www.zetes.com/en/supply-chain-and-mobility-solutions/by-process/warehouse-processes
                                                            • 0
                                                              Ну и у нас не без людей. Краны пополняют места комплектации, где люди уже по Pick-to-light делают отбор в тот контейнер, который им подставляет конвейер.
                                            • 0
                                              но некоторые сотрудники встретили новшество в штыки, на отрез отказавшись использовать терминал

                                              А в чём причина, чем это было мотивировано? Т.е. не сказали же они просто: «не будем пользоваться этими некрасивыми и мёртвыми железками», были ли нарекания на удобство использования, неудобный интерфейс терминалов, недостаточное проведения обучения по использованию ТСД?
                                              • 0
                                                Можете смеяться, но примерно так и сказали: «не будем пользоваться этими некрасивыми и мёртвыми железками». Выше есть комментарий что с этим надо бороться административными мерами, но руководство предпочло сохранить «ценных кладовщиков».
                                                Обучение проводил сам, лично. Тут никто не жаловался, внедренные позднее аппараты 8500 используются успешно.
                                                • +1
                                                  Да нет, чего-же смеяться? У самого есть опыт внедрения WMS в Украине.

                                                  Просто по Вашему описанию у меня сложилось впечатление, что Вы решали техническую задачу (с чем полностью справились), но никак не бизнес-задачу. Последнее так не делается. Если стояла задача снизить время полной инвентаризации, то к вопросу должны были бы быть привлечены сотрудники склада, кладовщики. Построена схема процесса полной инвентаризации (это ведь отнюдь не просто «идём и всё считаем» — слишком много упущено), выявлены узкие места и возможности оптимизации. На этом этапе людям бы показали, что использование ими ТСД (после тщательного тренинга) почти не повлияло бы на их скорость, но многократно снизило бы нагрузку на операторов WMS по обработке результатов инвентаризации. Плюс на стадии тестирования люди бы оценили интерфейс получившегося решения на ТСД, поругали бы мелкие и неудобные кнопки и т.п… Т.е. после тестирования и обучения получили бы лояльных кладовщиков, которые видели свою вовлечённость в процесс и видели бы в ТСД результат и своего труда плюс, что самое важное, решение конкретной проблемы.

                                                  Т.е. нельзя просто взять и внедрить ТСД :)

                                                  Про административные меры ничего говорить не буду. У нас уволить кладовщика (да и любого сотрудника) ОЧЕНЬ сложно.
                                                • +3
                                                  У пользователей есть такое свойство — автоматическое неприятие всего нового. При внедрении 1C: ЗУП, для расчета управленческой зарплаты кадровикам пришлось отказаться от ведения ведомости в Excel, вместо этого они должны вводить данные в программу. Несмотря на уменьшение работы по расчету зарплаты и контролю начислений недавно мне они мне предъявили, «спасибо, что удвоили нам работу» (дословно), т.к. у них появилась одна новая операция — теперь новых сотрудников нужно заводить в программе дважды.

                                                  Сделал при них замер времени на выполнение операции — у меня ушло 40 секунд на прием и примерно столько же времени на увольнение. /*долго думал чем они там вообще занимаются*/
                                                  • 0
                                                    т.к. у них появилась одна новая операция — теперь новых сотрудников нужно заводить в программе дважды.

                                                    А почему так получилось? Особенности/недоработка конфигурации?
                                                    • 0
                                                      Недоработка программы в том, что управленческий учет в ней в немного недоделанный. Вроде как он номинально присутствует, но фактически нет расчета отпускных, расчета больничных, табеля учета рабочего времени, документы оплата праздничных и выходных и т.д.
                                                      Чтобы это всё не дорабатывать напильником и не искать новую программу было решено использовать для упр. учета отдельную организацию и по ней вести учет, т.к. в регламентном учете есть всё необходимое и для упр. учета.

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

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

                                                        С точки зрения организации доработки — вполне. С точки зрения [принципов] учёта — нет, так как данные должны вводиться только единожды в месте их появления, а остальные должны использовать повторно уже введённое.
                                                • 0
                                                  Можно рассмотреть несколько другой вариант
                                                  1. Взять не терминал, а сканер с памятью (он значительно дешевле, память у них достаточно большая)
                                                  2. пройти по складу, отсканировать
                                                  3. прийти за компьютер и обработать данные. Обрабатывать можно как угодно: писать свою прогу, писать надстройку для 1С, тупо передавать в excel. Большее количество вариантов, позволяет более оптимально проводить обработку.

                                                  Я делал примерно по такой схеме, но у меня был несколько другой склад, каждая еденица склада имела уникальный код, и штрих-код печатали сами и на каждый экземпляр продукции.

                                                  • 0
                                                    Ну так по факту практически так и получилось в описанном решении. Просто за счёт заранее загруженной номенклатуры, после сканирования оно ещё показывает, что именно было просканировано — удобно для визуально контроля проверяющим. Плюс, если речь только про инвентаризацию (в простейшем исполнении), то там и WiFi покрытие не нужно.
                                                  • 0
                                                    А как поступать с разными штрих-кодами на одну позицию (разные заводы или региональные модификации в одной партии)?
                                                    • 0
                                                      Ну как я и написал — для каждой номенклатуры выгружаются все ее возможные штрихкоды, поэтому какой код не считай — терминал узнает эту номенклатуру, если она была выгружена.
                                                      • 0
                                                        а номенклатура хранится россыпью или в упаковках, кстати? и если россыпью, что тогда штрихкодируется? коробка?
                                                        • 0
                                                          Обычно каждая единица так же имеет штрих-код, ведь на кассах пробиваются не коробки от товаров. Поэтому если в системе учета присутствует штрихкод коробки — можно считать его с коробки и ввести количество единиц в коробке. Или взять любой экземпляр и считать его штрихкод. Позднее для склада, для другой задачи, были введены терминал которые могли учитывать товары коробками — считываешь код с коробки, он показывает сколько единиц должно быть в коробке. Вводишь количество коробок, учетная система при загрузке умножает это количество на коэффициент присвоенный штрихкоду. Этот коэффициент соответствует количеству единиц товара в коробке.
                                                          • 0
                                                            Просто совет — поищите документацию от крупных WMS систем (когда-то по сети гуляла документация для WMS модуля AXAPTA). — поможет в систематизации знаний по складскому учёту и снизит количество изобретаемых велосипедов. Ну или если будут в окресностях складские выставки (2-3 года назад проводилось как минимум 2 крупных, как сейчас — не знаю) — помучайте WMS-консультантов, они обычно весьма охотно рассказывают такие вещи.

                                                            Вариант отдельного кода на коробке — это просто отлично. Увы встречается далеко не всегда. Зачастую на ней просто дублируют код позиции.
                                                            В идеале в системе надо различать таки понятия как товарная позиция (к примеру, батарейка Enelooop AA, которая и будет в бухгалтерских документах) и складская единица (матрёшка фасовок. Иногда даже одинаковое количество может иметь разные варианты фасовки). Склад должен работать именно со складскими единицами и уметь их «конвертировать». (это не устоявшаяся терминология, просто использовал наиболее близкие по смыслу слова)
                                                      • 0
                                                        Это ещё ничего и легко решается чем-то вроде «справочника штрихкодов для позиции». Куда «веселее», когда производитель экономит на получении EAN и куда разных товаров имеют один штрихкод. Хорошо ещё, когда экономически оправдано маркировать внутренними кодами при приходе на склад.

                                                        Ну или разные фасовки. К примеру, аккумуляторы Eneloop AA могут быть насыпью поштучно, могут быть в блистерах по две, четыре, восемь, шестнадцать штук. По хорошему, у каждой фасовки должен быть свой код, как как товар всё-таки разный. Да и при инвентаризации это отнюдь не просто «345 штук», некоторые заказчики ведь могут хотеть конкретную фасовку.
                                                        • 0
                                                          Адъ и Израилъ устроили для кладовщиков производители лекарственных средств, создав свыше 300 товаров из числа жизненно важных препаратов с неуникальными штрихкодами. Они могут отличаться дозировкой, количеством таблеток в упаковке, формой выпуска или просто упаковкой. Для каждого товара установлена собственная предельная цена, отгрузив не тот товар или не по той цене можно навлечь на себя немилость контролирующих органов.
                                                          • 0
                                                            Это ещё ничего. Вы забыли про самый большой ужас фармацевтики — СЕРИИ! :) (с разными ценами и периодическими требованиями об изъятии определённых)

                                                            Ну а про штрихкода — их можно понять. Всё-таки EANы никто бесплатно не выдаёт.
                                                            • 0
                                                              Насколько я знаю реестр ЖВ лекарственных средств к сериям всё-таки не привязан, по-крайней мере в мае не был точно. Для учета требований по изъятию и отчетам о продаже той или иной серии дорабатывал в том году управление торговлей.
                                                              • 0
                                                                я понимаю, что мой опыт автоматизации производства не сработает в аптечной сети, но мы подобные вещи обошли тем, что у нас есть аналитика хранения партия, которая хранит в себе всю необходимую информацию о продукции. ну а этикетки с штрихкодом партии печатали на зебре и клеили на упаковку товара.
                                                                нельзя ли на уровне поставщиков среднеоптовиков или своего склада порешать вопрос, чтобы для своих клиентов они такое сделали?
                                                                • 0
                                                                  Примерно так и обходили ограничения по штрихкодам на аптечном складе на котором мы внедряли управление торговлей. На коробки с повторяющимися штрихкодами наклеивали собственные штрихкоды
                                                        • 0
                                                          Молодец, Красавчик, я тоже недавно думал об инвентаризации, чтобы улучшить время, скорость и качество исполнения данного наболевшего вопроса.

                                                          Хотел сделать программу посещения библиотеки где как раз таки на читательском билете EAN-13. Вот только какова стоимость лазерного сканера (они очень дорогие) но бюджета у библиотеки не было, так что пришлось успокоить свой здоровый интерес к проблеме учета товара либо инвентаря…

                                                          За это мне и Хабр и нравиться, тут говориться как вещи устроены…
                                                          • 0
                                                            Вот только какова стоимость лазерного сканера (они очень дорогие)

                                                            Очень? 1D сканер стоит примерно от 50 до 200 долларов. 2D — примерно в тех же рамках, чуть дороже. Плюс для этого можно использовать и простую веб-камеру, если объёмы совсем небольшие.
                                                            • +1
                                                              Для «попробовать» можно купить копеечный светодиодный сканер на каком-нить DX/BuySku/другой китайшоп, они там по 30-40$, на любой вкус и цвет.
                                                              В России же… ну не $50, а 60-80$ за простенький ChipherLab 100 — навалом.
                                                            • –2
                                                              КАКОВА Цена устройства ?? для сканирования штрих кодов ??
                                                              можно купить за 3 тыс руб ??
                                                            • 0
                                                              Имейте ввиду, выводить учетное количество в процессе первичного подсчета товаров на складе нельзя! В большинстве случаев это и будет фактическим количеством. Если хотите получить реальную картину, ни в коем случае не выводите учетное количество! Не должен знать проводящий инвентаризацию, сколько «должно быть»!
                                                              Далее, вы проводите инвентаризацию с суммированием количества и не сохраняете порядковый номер записи, насколько я понял.
                                                              Самая качественная схема по моему мнению (правда немного более затратная, в том числе по времени) такая:
                                                              1) Люди, проводящие инвентаризацию делятся на группы.
                                                              2) Первая группа считает товары физически и ставит маркеры (можно простой бумажный стикер с количеством лепить).
                                                              3) Вторая группа идет с терминалами, сканирует штрихкоды, вводит количество со стикера. Еще лучше, если эта группа перед вводом количества будет еще раз пересчитывать.
                                                              4) Из терминала выгружаются все товары с посчитанным количеством в порядке ввода (без суммирования) и распечатывается ведомость (вот это затратная часть, много бумаги).
                                                              5) Третья группа идет с распечатанной ведомостью и еще раз проверяет фактическое количество, при необходимости, делает пометки в ведомости.
                                                              6) Все изменения после пункта 5 (если возникли), вносятся вручную в систему. После этого, все позиции группируются по штрихкоду, количества суммируются и сличаются с учетным остатком. Недостачи и излишки еще раз проверяются.
                                                              Пункты 4 и 5 схемы можно изменить, и вместо распечатки ведомости воспользоваться опять же ТСД, который будет выводить все что сканировали в пункте 3 по порядку и просить ввести количество еще раз.
                                                              Поверьте, использование подобной схемы сильно увеличивает качество проведения инвентаризаций, проверенно на опыте. Конечно, какую схему использовать, нужно решать в каждом конкретном случае.
                                                              • 0
                                                                Гм… А какая у вас группа товаров? По описанной схеме выходит, по сути, тройной пересчёт. Зачем?
                                                                2 и 3 — делают абсолютно одно и тоже. Зачем их разделять?

                                                                Полностью согласен, что проверяющие не должны знать учётный остаток а должны просто зафиксировать факт по местонахождениям (если есть адресное хранение. Если нет — то просто факт).

                                                                На внедрениях с моей предыдущей работы, в случае отсутствия ТСД, это выглядело следующим образом:
                                                                1. распечатать инвентаризационную ведомость, по ячейкам, с пустой графой количества и фасовок.
                                                                2. кладовщики проходили по складу, заполняя эти распечатки.
                                                                3. операторы вводили в WMS результаты инвентаризации и сверяли факт с планом.
                                                                4. по факту несоответствий человек проходил и проверял. Иногда просто товар лежал в других ячейках (из-за ошибок грузчиков при размещении)
                                                                5. итоговая ведомость шла в учётную систему.

                                                                В случае в ТСД всё было примерно также, просто без пункта 1 и с облегчением пункта 3.

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