Связь «основание → подчинённый документ» в 1С: как её разорвать и не испортить учёт

· 10 мин

Содержание

Разъединить документы в 1С — значит убрать ссылку одного документа на другой: очистить поле основания, поменять заказ или счёт в шапке, переназначить счёт-фактуру. Удалять сам документ для этого не нужно. Сначала откройте Структура подчиненности в форме документа и найдите, в каком поле хранится связь, затем очистите или замените это поле и перепроведите документ.

Частое заблуждение: связь живёт где-то отдельно, и её снимают специальной кнопкой «Отвязать». Такой кнопки в типовых конфигурациях нет. Связь — это обычный реквизит со ссылкой на другой документ. Поменяли реквизит — связь пропала. Отсюда и все способы ниже: от правки одного поля руками до обработки, которая чистит сотни документов за раз.

Когда документы приходится разъединять

Связь появляется при вводе на основании: из счёта создали реализацию, из реализации — счёт-фактуру, из поступления — возврат. Иногда эта связь мешает.

Типовые ситуации:

  • 🔗 Документ создали не на том основании. Реализацию ввели из чужого счёта на оплату, и теперь счёт числится оплаченным, а нужный — нет.
  • 🧾 Счёт-фактура привязан не к той реализации. Например, выставили один счёт-фактуру, а он должен относиться к другой отгрузке.
  • 💳 Оплата закрыла не тот долг. В расшифровке платежа указан не тот документ расчётов, и сальдо по контрагенту «разъехалось».
  • 🗑️ Документ нельзя удалить. Обработка удаления помеченных объектов пишет, что на него есть ссылки. Пока ссылки не убраны, объект останется в базе.
  • ✂️ В одном документе смешались две операции. Две отгрузки разными датами или два договора оформили одной реализацией, и её надо разделить.

Перед любыми действиями ответьте себе на вопрос: нужно убрать ссылку или разделить содержимое? Первое — правка одного поля. Второе — создание нового документа и перенос строк. Это разные процедуры.

Как разорвать связь вручную в форме документа

Ручной способ подходит, когда документов один-три. Работает во всех конфигурациях на платформе 8.3 с интерфейсом «Такси».

Шаг 1. Найдите, где хранится связь

  1. Откройте подчинённый документ (тот, что создан на основании).
  2. Нажмите в командной панели кнопку Структура подчиненности (значок иерархии) или найдите эту команду в меню Ещё.
  3. В дереве посмотрите, какой документ стоит выше текущего — это основание. Ниже — документы, созданные уже на основании текущего.
  4. Вернитесь в форму и найдите поле, где указано основание. Чаще всего это поле в шапке («Основание», «Счёт на оплату», «Заказ»), реже — колонка в табличной части.

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

Шаг 2. Очистите или замените ссылку

  1. Нажмите на поле и очистите его (крестик справа или Shift+F4) либо выберите правильный документ из списка.
  2. Проверьте, не заполнились ли от основания другие поля: договор, склад, цены, ставки НДС. При смене основания они могут остаться старыми.
  3. Нажмите Провести и закрыть. Если документ не был проведён — Записать и закрыть.

После этого снова откройте Структура подчиненности и убедитесь, что основание пропало из дерева.

Шаг 3. Отдельно — счёт-фактура и оплата

Эти две связи влияют на учёт, поэтому с ними осторожнее.

Счёт-фактура. Он ссылается на документ отгрузки или поступления, и по этой ссылке формируются записи книги продаж или покупок. Самый чистый путь в БП 3.0:

  1. Откройте неверный счёт-фактуру и пометьте его на удаление (Ещё → Пометить на удаление или Del в списке).
  2. Откройте нужную реализацию и создайте счёт-фактуру из неё ссылкой «Выписать счёт-фактуру» внизу формы.
  3. Сверьте номер: если номер должен остаться прежним, поправьте его вручную в новом документе.

Перепривязать счёт-фактуру, поменяв основание в его форме, тоже можно, но тогда проверьте книгу продаж за период: старые записи должны уйти, новые — появиться.

Оплата. В документах банка и кассы связь с долгом задаётся в расшифровке платежа. Там есть настройка погашения задолженности со значениями «Автоматически», «По документу» и «Не погашать». Чтобы отвязать оплату от конкретной реализации, выберите «Автоматически» или укажите другой документ расчётов и перепроведите платёж. Если в расшифровке есть колонка счёта на оплату — очистите и её, иначе счёт останется в статусе «оплачен».

Если период закрыт или по нему сдана отчётность, менять связь счёта-фактуры и оплаты задним числом нельзя без перерасчёта. Изменения коснутся книги покупок/продаж, сальдо по 62 и 60 счетам и закрытия месяца.

Как разделить один документ на два

Иногда «разъединить» значит другое: разбить одну реализацию или одно поступление на два документа. Например, отгрузку на 200 позиций по двум договорам провели одним документом.

Порядок:

  1. Откройте исходный документ и снимите с него проведение (Ещё → Отмена проведения) — так вы не получите задвоения на время работы.
  2. В списке документов выделите его и нажмите Скопировать (F9).
  3. В копии оставьте строки, которые уходят во второй документ, остальные удалите. Поправьте договор, дату, номер.
  4. В исходном документе удалите строки, перенесённые в копию.
  5. Сверьте итоговые суммы: сумма двух новых документов должна совпасть с суммой исходного до копейки.
  6. Проведите оба документа.

Не проводите копию, пока в оригинале остаются те же строки: товар спишется дважды, а выручка задвоится. Если копию провели по ошибке, отмените её проведение и пометьте на удаление.

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

СценарийЧто делатьРиск
Документ не проведён, подчинённых нетКопировать и удалить лишние строкиМинимальный
Документ проведён, подчинённых нетОтменить проведение, разделить, провести обаЗадвоение, если провести копию раньше
От документа выписан счёт-фактураРазделить, исправить первый счёт-фактуру, выписать второйОшибка в книге продаж
Период закрыт, отчётность сданаЛучше корректировочный или исправительный документ текущим периодомПересдача деклараций

Групповое снятие связей обработкой

Когда документов десятки, ручной способ не годится. В конфигурациях на БСП (БП 3.0, УТ 11, ЗУП 3.1) есть обработка группового изменения реквизитов.

Путь в БП 3.0: Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов.

  1. Сделайте резервную копию базы — выгрузку в .dt или копию каталога файловой базы.
  2. Откройте обработку и выберите вид документов, например «Реализация (акты, накладные, УПД)».
  3. Настройте отбор: период, организация, контрагент, нужное основание.
  4. В списке реквизитов отметьте поле со ссылкой на основание и оставьте новое значение пустым (или укажите правильный документ).
  5. Запустите изменение и посмотрите итог: обработка сообщит, сколько объектов изменено и какие не удалось записать.

Обработка меняет реквизиты, но сама не перепроводит документы. Если от поля зависят движения (НДС, расчёты), перепроведите изменённые документы: групповое перепроведение есть в той же группе Корректировка данных или выполняется через закрытие месяца .

Сначала прогоните обработку на одном-двух документах, проверьте результат и только потом запускайте на весь отбор.

Если документ нужно не перепривязать, а удалить, а удаление упирается в ссылки, обработка Администрирование → Обслуживание → Удаление помеченных объектов сама покажет, кто ссылается на объект. Пройдите по этому списку и уберите ссылки, затем повторите удаление.

Программное разъединение для разработчика

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

Найти все документы, которые ссылаются на объект

Платформенная функция НайтиПоСсылкам возвращает таблицу с колонками Ссылка, Данные и Метаданные:

&НаСервереБезКонтекста
Процедура ПоказатьСсылающиеся(ДокументОснование)
    МассивСсылок = Новый Массив;
    МассивСсылок.Добавить(ДокументОснование);
    Таблица = НайтиПоСсылкам(МассивСсылок);
    Для Каждого СтрокаТаблицы Из Таблица Цикл
        Сообщить(Строка(СтрокаТаблицы.Данные) + " — " + СтрокаТаблицы.Метаданные.Представление());
    КонецЦикла;
КонецПроцедуры

На большой базе функция работает долго: она проверяет все таблицы, где может храниться ссылка такого типа. Запускайте её в нерабочее время или ограничьтесь запросом к конкретным документам.

Очистить реквизит основания

&НаСервереБезКонтекста
Процедура ОчиститьОснование(СсылкаНаДокумент, ИмяРеквизита)
    Объект = СсылкаНаДокумент.ПолучитьОбъект();
    Попытка
        Объект.Заблокировать();
    Исключение
        Сообщить("Документ открыт другим пользователем: " + Строка(СсылкаНаДокумент));
        Возврат;
    КонецПопытки;
    Объект[ИмяРеквизита] = Неопределено;
    Если Объект.Проведен Тогда
        Объект.Записать(РежимЗаписиДокумента.Проведение);
    Иначе
        Объект.Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
КонецПроцедуры

Пояснения к коду:

  • 🧩 Имя реквизита у разных документов своё. Посмотрите его в конфигураторе в дереве метаданных документа или в форме через Ещё → Изменить форму.
  • 🧩 Неопределено подходит для реквизитов составного типа. Для реквизита одного ссылочного типа присвойте пустую ссылку, например Документы.СчетНаОплатуПокупателю.ПустаяСсылка().
  • 🧩 Режим Проведение пересоздаёт движения. Если документ проводится с ошибкой (закрытый период, нехватка остатков), запись не пройдёт — это правильно, не обходите проверку.
  • 🧩 Не ставьте ОбменДанными.Загрузка = Истина, чтобы «быстрее записать». Документ запишется без проверок, а движения останутся от старой связи.

Если ссылка хранится в табличной части, обойдите строки и очистите колонку в каждой, затем запишите объект один раз.

Где это делается по-разному: БП, УТ и ЗУП

Принцип везде один, отличаются поля, в которых живёт связь, и последствия.

КонфигурацияТипичная связьГде менятьНа что повлияет
Бухгалтерия 3.0Реализация ← счёт на оплату; счёт-фактура ← реализацияПоле счёта в документе; основание счёта-фактурыСтатус оплаты счёта, книга продаж
Бухгалтерия 3.0Оплата ← реализацияРасшифровка платежа, способ погашенияСальдо по 62/60, акт сверки
УТ 11Реализация ← заказ клиентаПоле заказа в шапке или в строках товаровСтатус и остатки к отгрузке по заказу, резервы
ЗУП 3.1Исправляющий документ ← исходныйСвязь не меняют, отменяют исправлениеПерерасчёт начислений

В УТ 11 смена заказа в реализации меняет картину исполнения заказа: отгрузка «уйдёт» с одного заказа и закроет другой. Проверьте оба заказа после правки.

В ЗУП 3.1 исправляющий документ создаётся из исходного и хранит на него ссылку. Разрывать её вручную нельзя: если исправление ошибочное, отмените проведение исправляющего документа и пометьте его на удаление — исходный снова станет действующим.

Если связь разорвали по ошибке

Вернуть связь проще, чем кажется, если знать, какой была ссылка.

  1. Журнал регистрации. Администрирование → Обслуживание → Журнал регистрации, отбор по событию изменения данных и по нужному документу. Видно, кто и когда записал документ.
  2. История изменений. Если в базе включено версионирование объектов, в форме документа есть команда Ещё → История изменений. Там можно сравнить версии и увидеть прежнее значение поля, а иногда — восстановить версию целиком.
  3. Резервная копия. Разверните копию базы рядом с рабочей, откройте в ней тот же документ и посмотрите основание. Затем руками укажите его в рабочей базе. Загружать .dt поверх рабочей базы ради одного поля не нужно — потеряете всё, что ввели после копии.
  4. Обработка массово. Если связь сняли у многих документов, выгрузите из копии пары «документ — основание» и восстановите их тем же кодом из раздела выше, только присваивая сохранённое значение.

После восстановления перепроведите документы и проверьте книгу продаж, взаиморасчёты и статусы заказов за затронутый период.

Ошибки при разъединении и как их не допустить

  • ❌ Удалить документ вместо смены ссылки. Вместе с ним уходят его движения, а подчинённые документы ссылаются на удалённый объект. Если нужен только разрыв связи — меняйте поле.
  • ❌ Не перепровести после правки. Поле поменяли, а движения регистров остались по старой связи. Отчёт показывает одно, документ — другое.
  • ❌ Править закрытый период. Изменения задевают уже рассчитанные итоги. Сначала снимите дату запрета изменения у ответственного, затем перезакройте месяц.
  • ❌ Оставить хвосты от основания. Договор, цены и ставки НДС заполнились из старого основания и остались в документе.
  • ❌ Групповая обработка без отбора. Пустое поле основания проставляется всем документам вида за всё время.

Чтобы связи не приходилось рвать, проверяйте четыре вещи перед вводом на основании:

Перед вводом на основании
Выполнено: 0 / 4

Частые вопросы

Можно ли разъединить документы без прав администратора?
Ручную правку поля в форме сделает любой пользователь с правом изменения документа. Групповое изменение реквизитов и внешние обработки обычно доступны только администратору.
Почему после очистки основания документ снова показывает старую связь?
Скорее всего, документ закрыли без записи или связь хранится ещё и в табличной части. Откройте структуру подчинённости повторно и проверьте строки товаров и услуг.
Удалится ли подчинённый документ, если удалить основание?
Нет. Удаление основания блокируется, пока на него есть ссылки. Обработка удаления помеченных объектов покажет подчинённые документы, и их надо отвязать или удалить отдельно.
Влияет ли разрыв связи на проводки?
Сама ссылка на основание проводок не формирует. Но от неё бывают зависимы НДС, взаиморасчёты и статусы заказов, поэтому после правки документ перепроводят.
Можно ли разъединить документы в распределённой базе с обменом?
Можно, но правка уйдёт в другие узлы при следующем обмене. Меняйте связь в одной базе и дождитесь синхронизации, иначе возможна коллизия изменений.