Почему в документе Перемещение товаров отсутствует структура подчиненности и как с этим работать?

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

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

Разберем архитектурную причину проблемы

В платформе 1С:Предприятие 8 механизм Структура подчиненности не является «магической» функцией, которая сама угадывает связи между документами. Она опирается на наличие конкретных реквизитов в объектах метаданных. Чаще всего это реквизит ДокументОснование или аналогичные ссылки.

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

В УПП 1.3 для документа Перемещение товаров разработчики фирмы 1С не предусмотрели такой реквизит. Это связано с бизнес-логикой: перемещение товаров часто является обобщающим документом. Он может собирать остатки из разных партий, сформированных различными документами поступления или производства. Жесткая привязка к одному документу-основанию существенно ограничила бы гибкость складского учета.

Почему не стоит «курочить» конфигурацию

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

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

Рассмотрим альтернативные методы решения задачи

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

1. Анализ движений по регистрам накопления

Вместо поиска ссылки в структуре подчиненности, мы рекомендуем анализировать движения документа по регистрам, таким как ТоварыНаСкладах или ПартииТоварыНаСкладах. Поскольку перемещение списывает товары, по регистру Партии товаров можно программно проследить, какие документы поступления были списаны данным перемещением.

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

2. Использование механизма внешних отчетов

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

3. Механизм дополнительных связей

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

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

← На главную