https://links-pro.ru/#cases London-Manila. Загрузка штрих-кодов в 1С от оптового поставщика

Введение

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

Механика

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


Вот так вылядит EXCEL-файлик от поставщика:

EXCEL-файлик с штрих-кодами

Вот так вылядит закладка «Загрузка штрих-кодов из EXCEL-файлика»:

Загрузка штрих-кодов из EXCEL-файлика

Колонка «НаимДлина» здесь нужна для того, что бы определить максимальную длину наименования, что бы задать ее потом в реквизите номенклатуры. Длина должна быть ограничена, что бы можно было найти номенклатуру по этому наименованию.

Обновлять эту таблицу можно треямя способами:

  1. Из справочника (только номенклатура поставщика)
  2. Из регистра штрих-кодов
  3. Иp EXCEL-файлика

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

  • что бы проверить уникальность наименования поставщика, который дает штрих-кода
  • что бы найти максимальную длину наименований товаров всех поставщиков
  • что бы проверить существование крайних пробелов в наименовании поставщиков
    • Это нужно сделать именно здесь, потому что наименование поставщика будет передаваться в запрос параметром.
    • Проверка показала, что там действительно были такие - я их поправил
  • что бы проверить - у всех ли товаров заполнено поле "Наименование поставщика"
    • Проверка показала, что не у всех!

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

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

Возможность обновлять эту таблицу из файлика нужна для следующих целей:

  • что бы периодически добавлять новые штрих-кода

Алгоритм

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

Заключение

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

Обратная связь

Инструкция Согласитесь с политикой конфиденциальности, подтвердите, что Вы не робот и нажмите кнопку «Отправить». Если Вы отправите форму на web-сервер без подтверждения «Я не робот», тогда web-сервер ничего делать не будет.