Документ-основание и цепочка подчинённых документов: от счёта до счёта-фактуры
Содержание
Подчинённый документ в 1С — это документ, созданный на основании другого документа и хранящий ссылку на него. Создают его кнопкой Создать на основании в форме или списке документа-основания: программа сама переносит контрагента, договор, товары и суммы. Посмотреть всю цепочку связанных документов можно командой «Структура подчиненности».
Так устроена работа почти во всех конфигурациях на платформе 8.3: Бухгалтерии 3.0, Управлении торговлей 11, ЗУП 3.1, ERP. Пользователь экономит время на заполнении, а бухгалтер получает прозрачную цепочку «счёт → реализация → счёт-фактура → оплата». Разработчику связь даёт два механизма: ввод на основании и критерий отбора для структуры подчинённости.
Что такое подчинённый документ и чем он отличается от копии
Документ-основание — исходная бумага, с которой начинается операция. Подчинённый документ продолжает её: отгрузка по счёту, счёт-фактура к реализации, возврат по накладной.
Связь держится на одном реквизите. В подчинённом документе есть поле со ссылкой на основание: в типовых конфигурациях оно обычно называется «Документ-основание», «Основание» или «Счёт на оплату». Пока ссылка заполнена, 1С считает документы связанными.
Чем это отличается от копирования (F9 или команда «Скопировать»):
| Способ | Что переносится | Есть ли связь | Когда выбирать |
|---|---|---|---|
| Создать на основании | Данные основания по правилам конкретного документа | Да, ссылка на основание | Следующий шаг операции: счёт → реализация |
| Копирование | Все реквизиты один в один, тот же вид документа | Нет | Похожая операция с другим контрагентом или датой |
| Ввод вручную | Ничего | Нет, если не заполнить поле основания | Разовая операция без предыстории |
💡 Копия всегда того же вида, что и исходник. Подчинённый документ почти всегда другого вида: из заказа получается реализация, а не второй заказ.
Зачем вообще нужны подчинённые документы:
- ⏱ меньше ручного ввода — номенклатура, цены, ставки НДС и договор переносятся автоматически;
- 🔗 видна история сделки — за минуту находите, оплачен ли счёт и выставлен ли счёт-фактура;
- ✅ меньше расхождений — суммы в цепочке совпадают, если их не правили руками;
- 📊 работают отчёты по выполнению: «что отгружено по заказу», «что не оплачено по счетам».
Как в 1С устроена связь между документами
Связь однонаправленная. Подчинённый документ знает своё основание, а основание о подчинённых «не помнит»: в нём нет списка созданных из него документов. Структуру подчинённости программа каждый раз собирает поиском — какие документы ссылаются на этот.
Отсюда три практических следствия:
- Изменение основания не меняет подчинённые документы. Поправили цену в счёте — в уже созданной реализации осталась старая цена.
- Отмена проведения основания не отменяет проведение подчинённых. Каждый документ проводится сам по себе.
- Один документ может иметь несколько подчинённых и сам быть подчинённым. Получается дерево: заказ → две частичные реализации → к каждой свой счёт-фактура.
Бывает и обратная зависимость по данным. В УТ 11 реализация по заказу влияет на статус заказа и остатки к отгрузке: заказ «узнаёт» о выполнении через регистры, а не через свой реквизит. В Бухгалтерии 3.0 похожим образом по счёту на оплату видно, оплачен он или нет.
Связь «на основании» и связь в табличной части — не одно и то же. Платёжное поручение может ссылаться на счёт в строке расшифровки платежа. Для взаиморасчётов это важно, а в дереве подчинённости такая ссылка появляется, только если её учли в настройке конфигурации.
Цепочки подчинённых документов в БП 3.0, УТ 11 и ЗУП 3.1
Типовые цепочки, с которыми бухгалтер сталкивается каждый день:
| Конфигурация | Основание | Подчинённый документ |
|---|---|---|
| Бухгалтерия 3.0 | Счёт покупателю | Реализация (акт, накладная, УПД), поступление на расчётный счёт |
| Бухгалтерия 3.0 | Реализация (акт, накладная, УПД) | Счёт-фактура выданный, возврат товаров от покупателя |
| Бухгалтерия 3.0 | Поступление (акт, накладная, УПД) | Счёт-фактура полученный, возврат товаров поставщику |
| УТ 11 | Заказ клиента | Реализация товаров и услуг, счёт на оплату клиенту |
| УТ 11 | Заказ поставщику | Приобретение товаров и услуг |
| ЗУП 3.1 | Приём на работу | Кадровый перевод, увольнение |
В ЗУП логика та же, но цепочки короче. Кадровые документы создают на основании, чтобы не выбирать сотрудника и его текущие условия заново.
💡 В БП 3.0 счёт-фактуру к реализации чаще создают не через Создать на основании, а кнопкой «Выписать счёт-фактуру» внизу формы проведённой реализации. Результат тот же: счёт-фактура подчинён реализации, а в форме основания появляется ссылка на него.
Как создать подчинённый документ: пошагово
Возьмём самый частый случай в БП 3.0 — реализацию по счёту покупателю. Для других пар порядок такой же.
Из формы документа-основания
- Откройте счёт:
Продажи → Счета покупателям→ нужный документ. - Если документ проводится, проведите его. Часть документов не даёт создать подчинённый, пока основание не проведено или не записано.
- На командной панели нажмите
Создать на основании(значок с зелёной стрелкой). - В выпадающем списке выберите вид документа, например «Реализация (акт, накладная, УПД)».
- Если программа спрашивает вид операции — выберите его: товары, услуги, товары и услуги.
- Проверьте открывшийся документ. Шапка и табличная часть заполнены из счёта, поле основания содержит ссылку на счёт.
- Поправьте то, что отличается: дату отгрузки, склад, количество при частичной отгрузке.
- Нажмите
Провести и закрыть.
Из списка документов
- Откройте журнал, например
Продажи → Счета покупателям. - Выделите строку с нужным счётом.
- Нажмите
Создать на основаниина командной панели списка и выберите вид документа.
Этот способ удобен, когда по одному основанию нужно быстро создать несколько документов: открывать каждый счёт не придётся.
Если кнопки «Создать на основании» не видно
- 🔍 Откройте меню
Ещёна командной панели — кнопка могла уйти туда из-за ширины окна. - 🛠 Через
Ещё → Изменить формуверните её на панель. - 🔒 Проверьте права. Если у пользователя нет права добавлять документ нужного вида, команда для него не выводится.
- 📋 Убедитесь, что пара документов вообще предусмотрена конфигурацией. Ввести на основании можно только то, что заложил разработчик.
Частичная отгрузка: заказ на 100 штук, отгрузили 60. Создайте реализацию на основании, уменьшите количество до 60 и проведите. Остаток 40 позже отгрузите второй реализацией по тому же заказу. В УТ 11 вторая реализация обычно сама подставляет только неотгруженный остаток.
Структура подчинённости: как найти все связанные документы
Главный инструмент — форма «Структура подчиненности». Она показывает дерево: основания выше текущего документа, подчинённые ниже, сам документ выделен.
Как открыть:
- В форме документа на командной панели нажмите кнопку со значком иерархии (подсказка «Структура подчиненности»). Если её нет на панели, ищите команду в меню
Ещё. - В списке документов выделите строку и вызовите ту же команду.
Что видно в дереве:
- ✅ проведённые документы отмечены значком проведения;
- ❌ помеченные на удаление — перечёркнутым значком;
- 💰 суммы и даты, чтобы сравнить звенья цепочки без открытия каждого документа.
Двойной щелчок по строке открывает документ. Отсюда удобно пройти всю сделку: от заказа до оплаты и возврата.
Отчёты и проверки по связанным документам
Структура подчинённости отвечает на вопрос по одному документу. Для массовых проверок используйте другие приёмы:
- 📑 Отбор в списке. В журнале реализаций настройте отбор по полю основания в настройках списка (меню
Ещё). Так видно все отгрузки по конкретному счёту или заказу. - 📊 Отчёты о выполнении. В УТ 11 есть отчёты о состоянии заказов клиентов и поставщикам — они строятся по регистрам, а не по ссылкам, и показывают, что осталось отгрузить или оплатить.
- 🔎 Консоль запросов. Для нестандартной проверки, например «реализации без счёта-фактуры», хватает одного запроса:
ВЫБРАТЬ
Реализация.Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный.ДокументыОснования КАК СФ
ПО СФ.ДокументОснование = Реализация.Ссылка
ГДЕ
Реализация.Проведен
И СФ.Ссылка ЕСТЬ NULL
Имена объектов и реквизитов здесь даны по БП 3.0. В другой конфигурации сверьте их в конфигураторе: дерево метаданных подскажет точные названия.
Настройка ввода на основании в конфигураторе
Раздел для тех, кто дорабатывает конфигурацию. В типовых решениях изменения лучше вносить расширением, чтобы не снимать конфигурацию с поддержки.
Шаг 1. Разрешить ввод на основании
Откройте свойства документа, который должен создаваться на основании, вкладка «Ввод на основании»:
- в список «Вводится на основании» добавьте виды документов-оснований;
- у основания аналогичный список называется «Является основанием для».
После этого платформа выводит команду создания в форме основания. В конфигурациях на БСП (БП 3.0, УТ 11, ЗУП 3.1) команды создания на основании формирует подсистема подключаемых команд: их описывают в модуле менеджера документа, в процедуре ДобавитьКомандыСозданияНаОсновании. Если команда не появилась в типовой конфигурации, ищите её там.
Шаг 2. Описать заполнение
Логику переноса данных пишут в модуле объекта, в обработчике ОбработкаЗаполнения. Пример для реализации по заказу:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Заказ.Контрагент,
| Заказ.Договор
|ИЗ
| Документ.ЗаказПокупателя КАК Заказ
|ГДЕ
| Заказ.Ссылка = &Основание;
|
|ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Количество,
| Товары.Цена,
| Товары.Сумма
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК Товары
|ГДЕ
| Товары.Ссылка = &Основание";
Запрос.УстановитьПараметр("Основание", ДанныеЗаполнения);
Результаты = Запрос.ВыполнитьПакет();
Шапка = Результаты[0].Выбрать();
Если Шапка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Шапка);
КонецЕсли;
ДокументОснование = ДанныеЗаполнения;
Товары.Загрузить(Результаты[1].Выгрузить());
КонецЕсли;
КонецПроцедуры
Названия документа и реквизитов условные — замените на свои. Реквизит ДокументОснование должен быть в подчинённом документе: именно он хранит связь. Товары.Загрузить переносит колонки с совпадающими именами, остальные останутся пустыми.
Создать подчинённый документ из кода можно так:
НовыйДокумент = Документы.РеализацияТоваров.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДатаСеанса();
НовыйДокумент.Заполнить(СсылкаНаЗаказ);
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
Метод Заполнить вызывает тот же обработчик ОбработкаЗаполнения, поэтому логика переноса данных живёт в одном месте.
Шаг 3. Показать документ в структуре подчинённости
Наличие реквизита-ссылки ещё не гарантирует, что документ появится в дереве. В конфигурациях на БСП дерево строится по общему критерию отбора СвязанныеДокументы: откройте его в ветке Общие → Критерии отбора и добавьте в состав реквизит нового документа, который ссылается на основание. После обновления конфигурации базы связь появится в форме «Структура подчиненности».
Добавляйте в критерий только реквизиты-ссылки на документы. Лишние реквизиты, например ссылки на справочники, засоряют дерево и замедляют его построение на больших базах.
Ошибки при работе с подчинёнными документами
Большинство проблем возникает не при создании, а позже — когда основание правят или удаляют.
Перед массовым удалением документов сделайте резервную копию базы. Удаление помеченных объектов необратимо, а цепочки часто тянут за собой оплаты и счета-фактуры, о которых вы не помнили.
Ещё одна ловушка — копирование подчинённого документа. Копия наследует ссылку на основание. В итоге у счёта появляются «две отгрузки», хотя вторая к нему не относится. После копирования очистите поле основания или выберите правильное.