Как реализовать приемку сборной поставки сканером штрихкодов с автоматическим созданием приходных ордеров в 1С:Управление торговлей?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Анализ типовых ограничений конфигурации

Проанализируем типовую архитектуру ордерного склада в конфигурации 1С:Управление торговлей. Штатный механизм предполагает строгую последовательность действий: сначала определяется распоряжение на поступление (например, конкретный документ Заказ поставщику или соглашение), и только затем кладовщик сканирует штрихкоды внутри созданного или заполняемого ордера.

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

  1. Структура шапки документа: В документе Приходный ордер на товары реквизиты контрагента (отправителя) и документа-распоряжения находятся в шапке. Один приходный ордер физически не может содержать номенклатурные позиции, поступившие одновременно от нескольких разных поставщиков.
  2. Коллизия одинаковой номенклатуры: Если одна и та же номенклатурная позиция заказана у двух разных поставщиков, простое считывание штрихкода товара не дает системе ответа, от кого именно приехала данная единица.
  3. Обособленное обеспечение: Если на предприятии ведется обеспечение под заказы покупателей с типом «Обособленно», в табличной части ордера обязательно заполняется реквизит Назначение. Без четко заданных правил (например, по алгоритму FIFO) система не сможет определить, под какой заказ клиента резервировать поступивший товар.

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

Вариант 1. Разработка внешнего рабочего места приемки (АРМ кладовщика)

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

  1. Буфер сканирования: В обработке создается временная табличная часть, в которую при событии от торгового оборудования (сканера штрихкодов) записывается номенклатура и накапливается фактически отсканированное количество.
  2. Анализ открытых распоряжений: По завершении сканирования обработка обращается к регистру накопления Товары к оформлению поступления. Запрос выбирает все ожидаемые к приходу позиции в разрезе документов Заказ поставщику, контрагентов и назначений.
  3. Распределение факта по распоряжениям: Программный алгоритм распределяет фактически отсканированное количество по найденным заказам. Рекомендуется использовать правило приоритета (например, FIFO по планируемой дате поступления): в первую очередь закрываются наиболее ранние или высокоприоритетные заказы.
  4. Разрешение коллизий: Если товар присутствует в заказах разных контрагентов, алгоритм должен приостановить автораспределение и вывести кладовщику диалоговое окно для ручного выбора поставщика.
  5. Формирование документов: На основе распределенных данных программно создаются и проводятся документы Приходный ордер на товары — отдельный документ на каждого поставщика и распоряжение.

Посмотрим на пример логики программного создания приходного ордера в коде модуля:


НовыйОрдер = Документы.ПриходныйОрдерНаТовары.СоздатьДокумент();
НовыйОрдер.Дата = ТекущаяДата();
НовыйОрдер.Склад = СкладПриемки;
НовыйОрдер.Распоряжение = ВыбранноеРаспоряжение;
НовыйОрдер.Отправитель = КонтрагентПоставщик;

Для Каждого Стр Из ТаблицаРаспределения Цикл
    СтрокаТЧ = НовыйОрдер.Товары.Добавить();
    СтрокаТЧ.Номенклатура = Стр.Номенклатура;
    СтрокаТЧ.Характеристика = Стр.Характеристика;
    СтрокаТЧ.Количество = Стр.Количество;
    СтрокаТЧ.Упаковка = Стр.Упаковка;
    СтрокаТЧ.КоличествоУпаковок = Стр.Количество;
КонецЦикла;

НовыйОрдер.Записать(РежимЗаписиДокумента.Проведение);

Вариант 2. Использование терминалов сбора данных со специализированным ПО

Рассмотрим альтернативный способ автоматизации без серьезного переписывания функционала в самой 1С. Для терминалов сбора данных (ТСД) существуют готовые интеграционные складские системы, поддерживающие бизнес-процесс «Слепая приемка» (приемка по факту).

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

Вариант 3. Организационное решение: идентификация по входящему документу

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

  1. Идентификация поставки: Перед началом сканирования позиций кладовщик сканирует штрихкод заказа поставщику или входящей транспортной накладной (ТТН).
  2. Приемка по факту в типовом ордере: После считывания штрихкода заказа система открывает предзаполненный или пустой документ Приходный ордер на товары с уже установленным распоряжением. Далее кладовщик сканирует товары конкретно этой партии, что исключает путаницу между контрагентами и корректно заполняет учетные регистры.
  3. Группировка по договорам: Если от одного поставщика одновременно поступает товар по нескольким заказам, в договоре с контрагентом можно активировать приемку с группировкой по договорам. Это позволит оформить один сводный приходный ордер сразу на несколько заказов поставщику в рамках одного соглашения.
← На главную