Почему при создании приходного ордера в МРМ на основании перемещения количество заполняется автоматически, а при закупке — нет?

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

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

Рассмотрим следующую ситуацию: при создании приходного ордера на основании документа «Приобретение товаров и услуг» графа «Принято» пуста (равна нулю). Кладовщик сканирует товар, количество увеличивается, все работает корректно — идет "слепая" приемка.

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

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

Анализ программного кода: почему поведение отличается?

Чтобы понять корень проблемы, обратимся к программному коду, который отвечает за заполнение табличной части товаров в ордере. В типовых конфигурациях (КА 2.5, ERP) существует условие, определяющее метод заполнения в зависимости от хозяйственной операции.

Давайте посмотрим на фрагмент кода, который управляет этим процессом:


Если СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаПоПеремещению
    Или СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаПродукцииИзПроизводства Тогда
    // Заполняем и номенклатуру, и количество (План = Факт)
    ЗаполнитьТоварыПоТоварамКПоступлению("НоменклатураКоличество", ДатаПоступления);
Иначе
    // Заполняем только номенклатуру, количество оставляем пустым для сканирования
    ЗаполнитьТоварыПоТоварамКПоступлению("Номенклатура", ДатаПоступления);
КонецЕсли;

Как мы видим, система четко разделяет операции:

  1. Приемка по перемещению и из производства: вызывается метод с параметром "НоменклатураКоличество". Это означает, что система сразу подставляет плановое количество в колонку факта.
  2. Остальные операции (включая закупку у поставщика): вызывается метод с параметром "Номенклатура". Количество остается нулевым, ожидая ввода факта кладовщиком.

Логика разработчиков: доверие к источнику

Почему 1С реализовала именно такой алгоритм? Здесь заложен принцип доверия к источнику поступления товара.

1. Поступление от поставщика (Недоверенный источник).
Поставщик может ошибиться, прислать пересорт или недовложение. Поэтому система требует от кладовщика проведения пересчета. Поле "Принято" пустое, чтобы заставить сотрудника физически отсканировать или пересчитать каждую единицу.

2. Внутреннее перемещение (Доверенный источник).
Логика системы подразумевает, что если товар перемещается между нашими складами, то он уже был пересчитан при отгрузке со склада-отправителя. Следовательно, вероятность ошибки минимальна. Предзаполнение количества сделано для ускорения процесса: кладовщику нужно лишь подтвердить, что расхождений нет, либо отсканировать только проблемные позиции. Однако, если процесс на ТСД настроен на "сканирование = добавление", это вызывает задвоение.

Решение проблемы

Если ваша схема работы предполагает пересчет товара при перемещении (например, вы используете "Склад в пути" для отражения доставки собственным транспортом), стандартное поведение будет мешать. Рассмотрим три способа решения.

Способ 1: Методологический (Рекомендуемый) — Использование статуса «В пути»

Часто проблема возникает из-за использования устаревшей схемы, когда для учета товаров в дороге создается виртуальный "Транзитный склад". Бухгалтерия приходует товар на него, а по приезде машины делается перемещение на основной склад.

В современных версиях 1С:КА 2.5 и 1С:ERP рекомендуется использовать функционал «Товары в пути» (включается в настройках НСИ и Администрирование -> Закупки).

Как это работает:

  1. Оформляется документ Приобретение товаров и услуг со статусом «В пути». Товар числится на балансе, но не на складе.
  2. Когда машина приезжает, на основании этого приобретения создается Приходный ордер на товары сразу на целевой склад.
  3. Поскольку основанием является Приобретение, а не Перемещение, срабатывает ветка кода Иначе. Количество будет пустым, и кладовщики смогут нормально провести приемку с нуля.

Способ 2: Программная доработка (Расширение)

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

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

Пример алгоритма для доработки:


// В расширении переопределяем процедуру заполнения или подключаемся после нее
Если СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаПоПеремещению Тогда
    
    // Проверяем, является ли склад-отправитель "доверенным" (например, ордерным)
    // Если склад-отправитель обычный (неордерный), то мы не доверяем количеству
    Если НЕ СкладОтправитель.ИспользоватьОрдернуюСхемуПриОтгрузке Тогда
         // Очищаем количество факта, заставляя сканировать заново
         Для Каждого СтрокаТЧ Из Объект.Товары Цикл
             СтрокаТЧ.Количество = 0;
         КонецЦикла;
    КонецЕсли;

КонецЕсли;

Также можно вмешаться непосредственно в условие выбора варианта заполнения ("Номенклатура" вместо "НоменклатураКоличество"), добавив проверку типа склада-источника.

Способ 3: Настройка МРМ и процесса сканирования

Если доработка невозможна, проанализируйте настройки самого мобильного рабочего места и профилей групп доступа:

Резюме

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

Лучшим решением является переход на штатный механизм «Товары в пути» в закупках, что позволит принимать товар по ордеру напрямую от поставщика с нулевым начальным количеством.

← На главную