При ежедневной работе с взаиморасчетами в 1С пользователи часто сталкиваются с ситуацией: строки с привязкой оплаты к реализации были удалены из табличной части «Расшифровка платежа» или со вкладки «Предоплата», однако при открытии отчетов «Структура подчиненности документа» или «Связанные документы» эти документы по-прежнему отображаются связанными единой цепочкой. Разберем по шагам, почему возникает эта скрытая связь и как ее полностью устранить.
Выясним причину такого поведения системы. Структура подчиненности строится не по фактическим движениям в регистрах накопления и бухгалтерии, а на основе специального объекта метаданных конфигурации — Критерий отбора (чаще всего с именами СвязанныеДокументы или СтруктураПодчиненности).
В состав этого критерия разработчиками включен определенный перечень реквизитов шапки документов и реквизитов их табличных частей. Платформа анализирует ссылки в обе стороны: находит как документы, на которые ссылается открытый объект, так и документы, которые содержат ссылку на него в любом из реквизитов, входящих в критерий отбора. До тех пор, пока ссылка сохраняется хотя бы в одном служебном поле, связь будет отображаться в дереве, даже если документ помечен на удаление.
Проанализируем типовые конфигурации (например, 1С:Управление торговлей 10.3 или аналогичные редакции на обычных формах). Чаще всего связь удерживают следующие реквизиты:
ДокументОснование в шапке документа. Когда платежный документ (например, ПриходныйКассовыйОрдер или ПлатежноеПоручениеВходящее) вводится на основании счета или накладной, реквизит ДокументОснование заполняется автоматически. При этом на саму экранную форму документа этот реквизит по умолчанию разработчиками часто не выводится. Пользователь очищает видимую табличную часть РасшифровкаПлатежа, но ссылка в шапке остается нетронутой.ДокументыОснования. В ряде конфигураций основание может храниться не в одном реквизите шапки, а в отдельной скрытой табличной части.Сделка и СчетНаОплату. Ссылка на связанный заказ или счет может храниться в одноименных полях шапки или строк документов.РеализацияТоваровУслуг.Рассмотрим простейший способ, примененный автором темы, если в конфигурации включена возможность пользовательской настройки диалога:
ДокументОснование и установим его.После очистки реквизита откроем структуру подчиненности повторно: связь между документами полностью пропадет.
Если реквизит заблокирован для вывода на форму или требуется исправить множество документов сразу, воспользуемся стандартной сервисной обработкой «Групповое изменение реквизитов» (в обычных формах — «Универсальный подбор и обработка объектов»):
ПриходныйКассовыйОрдер).ДокументОснование Равно требуемому документу реализации.Документ основание, поставим флаг для изменения и оставим само значение пустым.Посмотрим на пример кода, если требуется программно очистить реквизит ДокументОснование у найденного документа:
ДокументОбъект = ВыбраннаяСсылка.ПолучитьОбъект();
ДокументОбъект.ДокументОснование = Неопределено;
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
Если документ уже был проведен, вместо режима записи без проведения можно использовать обычную перезапись или перепроведение в зависимости от учетной политики:
ДокументОбъект = СсылкаНаПлатеж.ПолучитьОбъект();
ДокументОбъект.ДокументОснование = Неопределено;
Попытка
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщить("Ошибка при проведении документа: " + ОписаниеОшибки());
КонецПопытки;
Если визуально определить реквизит не удается, разберем инструмент платформы «Поиск ссылок на объект». Выделим реализацию в списке, вызовем контекстное меню и нажмем команду «Найти ссылки на объект». В сформированном отчете платформа прямо укажет метаданные, в которых фигурирует документ: например, строку вида Приходный кассовый ордер: ДокументОснование или имя конкретной табличной части.
Важно помнить: сам по себе реквизит ДокументОснование в типовых конфигурациях чаще всего играет вспомогательную роль — он служит для заполнения формы при вводе на основании и для построения дерева подчиненности. Реальные движения по взаиморасчетам формируются по строкам табличной части РасшифровкаПлатежа и регистру «Расчеты с контрагентами по документам расчетов».
Если после очистки строк в табличной части сальдо по накладной закрывается некорректно, причина кроется не в структуре подчиненности, а в нарушении хронологической последовательности документов. В таком случае требуется выполнить перепроведение по цепочке или воспользоваться процедурой восстановления последовательности расчетов.