При внедрении адресного склада или просто ордерной схемы с использованием терминалов сбора данных (ТСД) и Мобильного Рабочего Места (МРМ) в конфигурациях 1С:Комплексная Автоматизация 2.5 или 1С:ERP, специалисты часто сталкиваются с разным поведением системы при приемке товаров.
Рассмотрим следующую ситуацию: при создании приходного ордера на основании документа «Приобретение товаров и услуг» графа «Принято» пуста (равна нулю). Кладовщик сканирует товар, количество увеличивается, все работает корректно — идет "слепая" приемка.
Однако, если создавать приходный ордер на основании «Перемещения товаров» (например, с транзитного склада на основной), колонка «Принято» сразу заполняется плановым количеством. При попытке сканирования товара ТСД может добавить отсканированное количество к уже имеющемуся, что приводит к задвоению и ошибкам.
В этой статье мы подробно разберем, почему так происходит на уровне кода, в чем заключается логика разработчиков 1С, и как настроить процесс правильно.
Чтобы понять корень проблемы, обратимся к программному коду, который отвечает за заполнение табличной части товаров в ордере. В типовых конфигурациях (КА 2.5, ERP) существует условие, определяющее метод заполнения в зависимости от хозяйственной операции.
Давайте посмотрим на фрагмент кода, который управляет этим процессом:
Если СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаПоПеремещению
Или СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаПродукцииИзПроизводства Тогда
// Заполняем и номенклатуру, и количество (План = Факт)
ЗаполнитьТоварыПоТоварамКПоступлению("НоменклатураКоличество", ДатаПоступления);
Иначе
// Заполняем только номенклатуру, количество оставляем пустым для сканирования
ЗаполнитьТоварыПоТоварамКПоступлению("Номенклатура", ДатаПоступления);
КонецЕсли;
Как мы видим, система четко разделяет операции:
"НоменклатураКоличество". Это означает, что система сразу подставляет плановое количество в колонку факта."Номенклатура". Количество остается нулевым, ожидая ввода факта кладовщиком.Почему 1С реализовала именно такой алгоритм? Здесь заложен принцип доверия к источнику поступления товара.
1. Поступление от поставщика (Недоверенный источник).
Поставщик может ошибиться, прислать пересорт или недовложение. Поэтому система требует от кладовщика проведения пересчета. Поле "Принято" пустое, чтобы заставить сотрудника физически отсканировать или пересчитать каждую единицу.
2. Внутреннее перемещение (Доверенный источник).
Логика системы подразумевает, что если товар перемещается между нашими складами, то он уже был пересчитан при отгрузке со склада-отправителя. Следовательно, вероятность ошибки минимальна. Предзаполнение количества сделано для ускорения процесса: кладовщику нужно лишь подтвердить, что расхождений нет, либо отсканировать только проблемные позиции. Однако, если процесс на ТСД настроен на "сканирование = добавление", это вызывает задвоение.
Если ваша схема работы предполагает пересчет товара при перемещении (например, вы используете "Склад в пути" для отражения доставки собственным транспортом), стандартное поведение будет мешать. Рассмотрим три способа решения.
Часто проблема возникает из-за использования устаревшей схемы, когда для учета товаров в дороге создается виртуальный "Транзитный склад". Бухгалтерия приходует товар на него, а по приезде машины делается перемещение на основной склад.
В современных версиях 1С:КА 2.5 и 1С:ERP рекомендуется использовать функционал «Товары в пути» (включается в настройках НСИ и Администрирование -> Закупки).
Как это работает:
Приобретение товаров и услуг со статусом «В пути». Товар числится на балансе, но не на складе.Приходный ордер на товары сразу на целевой склад.Иначе. Количество будет пустым, и кладовщики смогут нормально провести приемку с нуля.Если изменить бизнес-процесс невозможно, и вы вынуждены использовать документы Перемещение товаров, можно скорректировать логику заполнения через расширение конфигурации.
Нам необходимо изменить условие так, чтобы для определенных ситуаций (например, если склад-отправитель не является ордерным) работала логика "слепой приемки".
Пример алгоритма для доработки:
// В расширении переопределяем процедуру заполнения или подключаемся после нее
Если СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаПоПеремещению Тогда
// Проверяем, является ли склад-отправитель "доверенным" (например, ордерным)
// Если склад-отправитель обычный (неордерный), то мы не доверяем количеству
Если НЕ СкладОтправитель.ИспользоватьОрдернуюСхемуПриОтгрузке Тогда
// Очищаем количество факта, заставляя сканировать заново
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
СтрокаТЧ.Количество = 0;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Также можно вмешаться непосредственно в условие выбора варианта заполнения ("Номенклатура" вместо "НоменклатураКоличество"), добавив проверку типа склада-источника.
Если доработка невозможна, проанализируйте настройки самого мобильного рабочего места и профилей групп доступа:
Предзаполнение количества при перемещении — это не ошибка, а штатная логика 1С, рассчитанная на доверие к отгрузке с внутренних складов. Проблема "задвоения" возникает при наложении этой логики на процесс "слепой" приемки с использованием ТСД.
Лучшим решением является переход на штатный механизм «Товары в пути» в закупках, что позволит принимать товар по ордеру напрямую от поставщика с нулевым начальным количеством.