При работе в типовой конфигурации Управление производственным предприятием 1.3 пользователи часто сталкиваются с тем, что документ Перемещение товаров не отображается в структуре подчиненности, даже если он был создан на основании другого документа, например, Поступление товаров и услуг. Давайте разберем, почему это происходит и как правильно решать подобные задачи, не прибегая к неоправданному изменению структуры метаданных.
В платформе 1С:Предприятие 8 механизм Структура подчиненности не является «магической» функцией, которая сама угадывает связи между документами. Она опирается на наличие конкретных реквизитов в объектах метаданных. Чаще всего это реквизит ДокументОснование или аналогичные ссылки.
Когда вы нажимаете кнопку Ввести на основании, вы инициируете программный вызов функции заполнения данных нового документа на базе старого. Однако само по себе заполнение полей не создает запись в информационной базе, которая связывала бы эти два документа жесткой ссылкой в структуре подчиненности. Для того чтобы документ появился в дереве связей, в структуре метаданных документа должен быть предусмотрен соответствующий реквизит, куда записывается ссылка на родительский объект.
В УПП 1.3 для документа Перемещение товаров разработчики фирмы 1С не предусмотрели такой реквизит. Это связано с бизнес-логикой: перемещение товаров часто является обобщающим документом. Он может собирать остатки из разных партий, сформированных различными документами поступления или производства. Жесткая привязка к одному документу-основанию существенно ограничила бы гибкость складского учета.
Первым порывом многих разработчиков является желание добавить недостающий реквизит ДокументОснование в документ Перемещение товаров и дописать код заполнения. Однако мы настоятельно рекомендуем оценить риски такого подхода:
Если ваша задача — проследить происхождение товара или понять, на основании чего было сформировано перемещение, лучше использовать более профессиональные и безопасные методы:
Вместо поиска ссылки в структуре подчиненности, мы рекомендуем анализировать движения документа по регистрам, таким как ТоварыНаСкладах или ПартииТоварыНаСкладах. Поскольку перемещение списывает товары, по регистру Партии товаров можно программно проследить, какие документы поступления были списаны данным перемещением.
Этот метод является наиболее точным, так как он базируется на фактических данных о движении товарно-материальных ценностей в базе, а не на «формальных» ссылках, которые могут быть пропущены при создании документа.
Вы можете создать внешний отчет, который будет выводить дерево связей для конкретного документа. В этом отчете вы можете реализовать алгоритм поиска по табличным частям или по регистрам движений. Преимущество этого подхода в том, что вы не снимаете конфигурацию с поддержки и сохраняете чистоту типовой структуры.
В некоторых случаях для отслеживания цепочек операций профессионалы используют регистр сведений Дополнительные связи. Он позволяет программно зарегистрировать отношение между двумя документами, что обеспечит визуализацию связи в интерфейсе без необходимости изменять метаданные самих документов перемещения.
Таким образом, отсутствие структуры подчиненности в Перемещении товаров — это не недоработка, а особенность архитектуры, обеспечивающая стабильность и масштабируемость системы. Рекомендуем направлять усилия на разработку инструментов анализа движений по регистрам, что позволит получить гораздо более глубокую и точную информацию о цепочках документов, чем просто стандартная структура подчиненности.