Где находится реквизит ДокументОснование в 1С:УПП и как связать перемещения товаров в цепочку?

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

При переходе с платформы «1С:Предприятие 7.7» или разработке новой функциональности в конфигурациях на базе платформы «1С:Предприятие 8» (таких как «Управление производственным предприятием», редакция 1.3, «Комплексная автоматизация 1.1» или «Управление торговлей 10.3») разработчики нередко сталкиваются с неожиданным поведением: в документах товародвижения (ПоступлениеТоваровУслуг, РеализацияТоваровУслуг, ПеремещениеТоваров) отсутствует стандартный реквизит ДокументОснование. Выясним причину такого архитектурного решения и рассмотрим штатные и программные способы связывания документов в общую цепочку подчиненности.

Архитектурные особенности: почему реквизита ДокументОснование нет в документах товародвижения

Проанализируем архитектуру платформы и конфигураций линейки УПП. В платформе 7.7 реквизит ДокументОснование присутствовал у документов как предопределенный системой. Начиная с версии 8, платформенного обязательного реквизита основания нет: разработчики конфигурации создают его вручную только там, где существует однозначная связь «один-к-одному» (например, в кассовых ордерах ПриходныйКассовыйОрдер, РасходныйКассовыйОрдер).

В товарных документах логика учета построена иначе:

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

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

Способ 1. Использование документа Внутренний заказ (штатный механизм)

Разберем наиболее правильный с точки зрения типовой методологии УПП подход — отражение потребности через предварительный заказ. Если требуется перевезти большой объем ТМЦ несколькими машинами, используем следующую цепочку:

  1. Создаем документ ВнутреннийЗаказ с видом операции «на склад». В нем указываем общий объем товаров, склад-отправитель и склад-получатель.
  2. На каждый отдельный рейс вводим отдельный документ ПеремещениеТоваров, в табличной части которого заполняем реквизит ВнутреннийЗаказ ссылкой на созданный ранее общий заказ.

В результате мы получаем следующие преимущества:

  1. В типовом отчете «Структура подчиненности» все документы перемещения будут привязаны к исходному внутреннему заказу.
  2. Движения фиксируются в типовом регистре накопления ВнутренниеЗаказы, что позволяет формировать стандартный отчет АнализВнутреннихЗаказов и контролировать остаток товаров, который еще предстоит перевезти.

Способ 2. Использование ордерной схемы перемещения

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

  1. В системе проводится один документ ПеремещениеТоваров на всю партию.
  2. Для складов настраивается ордерный режим учета.
  3. Под каждый конкретный рейс на складе-отправителе создается отдельный документ РасходныйОрдерНаТовары, а на складе-получателе — ПриходныйОрдерНаТовары. В качестве документа-основания у ордеров выступает единое ПеремещениеТоваров.

Способ 3. Доработка конфигурации: прямое связывание перемещений

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

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

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

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

← На главную