Почему в УТП 1.2 партии списываются приходным ордером при перемещении и как это изменить

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

При работе с конфигурацией «Управление торговым предприятием для Украины» (УТП 1.2) многие разработчики и аналитики сталкиваются с неочевидной на первый взгляд логикой: при использовании ордерной схемы перемещения товаров списание партий происходит не в момент отгрузки (расходным ордером), а в момент приемки (приходным ордером). В этой статье мы подробно разберем, почему типовая архитектура реализована именно так, какие риски несет изменение этой логики и как правильно внедрить схему «Товары в пути».

Анализ типовой логики ордерной схемы перемещения

Для начала проанализируем, как система ведет себя «из коробки». В УТП 1.2 реализовано строгое разделение между финансовым движением (стоимость, партии) и складским (физическое количество). Когда мы создаем документ ПеремещениеТоваров с установленным флагом ордерной схемы, система ожидает двух подтверждений:

  1. Расходный ордер на товары: подтверждает, что товар физически покинул склад-отправитель. На этом этапе в регистре Товары на складах количество уменьшается, но запись в регистр Партии товаров на складах не вносится.
  2. Приходный ордер на товары: подтверждает, что товар поступил на склад-получатель. Именно в этот момент система делает движение по партиям: списывает стоимость со склада-отправителя и приходует её на склад-получатель.

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

Риски принудительного списания партий расходным ордером

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

Решение проблемы через механизм «Товары в пути»

Чтобы реализовать требования бизнеса и при этом не нарушить логику 1С, проанализируем наиболее правильный метод — использование промежуточного (транзитного) склада. Посмотрим на алгоритм реализации по шагам:

  1. Создание виртуального склада: Создайте в справочнике Склады новый элемент (например, «Товары в пути (Автопарк)»). Укажите для него тип «Оптовый».
  2. Разделение перемещения на два этапа:
    • Первое перемещение: Склад-отправитель -> Склад «Товары в пути». Проводится в момент отгрузки. Партии сразу переходят на транзитный склад.
    • Второе перемещение: Склад «Товары в пути» -> Склад-получатель. Проводится в момент фактического прибытия товара.

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

Автоматизация схемы через доработку ордеров

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

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

Рассмотрим пример логики кода (схематично):


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

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

Особенности налогового учета в Украине

Проанализируем бухгалтерский аспект. В украинском учете перемещение между складами внутри одного предприятия обычно не порождает проводок по доходам/расходам, но меняет аналитику счета 281 (Товары на складе). Если вы используете схему с транзитным складом, убедитесь, что в плане счетов для этого склада настроены корректные субсчета. В идеале использовать счет 206 (Материалы, переданные в переработку) или создать субсчет 281/Транзит, чтобы бухгалтер всегда видел разницу между товаром на полке и товаром в грузовике.

Заключение и рекомендации

Подведем итоги нашего исследования. Попытка заставить Расходный ордер просто списывать партии «в никуда» — это путь к хаосу в себестоимости. Если задача стоит остро, рекомендуем придерживаться следующих правил:

  1. Используйте транзитные склады. Это единственный способ сохранить аналитическую связь и не потерять стоимость товара в период между отгрузкой и приемкой.
  2. Если объем перемещений велик, автоматизируйте создание парных документов через подписки на события или модификацию модулей проведения ордеров.
  3. Всегда контролируйте соответствие регистра Партии товаров на складах и складских остатков. Любое расхождение в ордерной схеме должно оперативно устраняться инвентаризацией или корректировкой записей регистров.

Помните, что в УТП 1.2 расчет себестоимости и партионный учет крайне чувствительны к последовательности документов. Внедряя изменения в ордерную схему, вы берете на себя ответственность за «чистоту» закрытия месяца у бухгалтерии.

← На главную