К статье
Практический материал

Документы и Печать · 9 мин

Где в 1С хранится документ-основание и как его найти

Где в 1С хранится документ-основание: в табличной части, реквизите шапки или регистре. Как найти основание в типовых конфигурациях и через запрос.

Документ-основание в 1С — это ссылка на первичный документ, на базе которого создан текущий. Например, реализация товаров вводится на основании заказа покупателя, а счёт-фактура — на основании реализации. Проблема в том, что единого универсального места хранения этой ссылки нет: в разных конфигурациях и даже в разных документах одной конфигурации основание хранится по-разному.

Чаще всего ссылка на основание лежит в реквизите шапки документа, в табличной части «ДокументыОснования» (или с похожим названием) либо вычисляется через критерий отбора и регистры. Понимание этих вариантов позволяет быстро находить связанные документы, строить отчёты по цепочкам и писать корректные запросы.

Как устроено хранение основания в типовых конфигурациях

В конфигурациях на базе БСП (Библиотека стандартных подсистем) — «Управление торговлей», «ERP», «Комплексная автоматизация», «Бухгалтерия предприятия» — действует механизм ввода на основании. Он предполагает, что у документа может быть несколько оснований, поэтому ссылка хранится не в одном реквизите, а в табличной части.

Типовое имя такой табличной части — ДокументыОснования или Основания. В ней каждая строка содержит реквизит ДокументОснование с составным типом: туда можно записать ссылку на любой документ, разрешённый в настройках ввода на основании. В старых или узкоспециализированных документах встречается одиночный реквизит шапки с именем ДокументОснование, Основание или ЗаказПокупателя.

Три типовых способа хранения ссылки на основание

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

Способ храненияГде искатьОсобенности
Реквизит шапкиРеквизит «ДокументОснование» / «Основание»Только одно основание; простые запросы
Табличная частьТЧ «ДокументыОснования», реквизит «ДокументОснование»Несколько оснований; стандарт БСП
Критерий отбора / регистрКритерий отбора «СвязанныеДокументы», регистры сведенийСвязь вычисляется, а не хранится напрямую

Проверить, какой вариант используется, можно через конфигуратор: откройте объект «Документ» нужного вида и посмотрите список реквизитов и табличных частей. Если есть табличная часть с реквизитом составного типа, содержащего ссылки на другие документы, — это она и есть.

Как найти документ-основание в пользовательском режиме

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

Второй способ — поле «Основание» прямо в форме документа. В бухгалтерских документах (например, «Счёт-фактура выданный») оно выведено на форму и доступно для просмотра и перехода. Если поля нет на форме, это не значит, что его нет в данных — оно может быть скрыто настройками формы.

Как найти основание через интерфейс
  1. 1
    Откройте документ, для которого нужно найти основание
  2. 2
    Нажмите «Ещё» → «Связанные документы» или «Структура подчинённости»
  3. 3
    В дереве найдите документы уровнем выше — это основания
  4. 4
    Двойной щелчок откроет документ-основание для просмотра

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

В запросах обращение зависит от способа хранения. Для реквизита шапки всё просто: Док.ДокументОснование. Для табличной части нужно обращаться к ней как к отдельной таблице: Документ.РеализацияТоваровУслуг.ДокументыОснования, где поле связи — Ссылка, а основание — ДокументОснование.

В коде на встроенном языке для объектов с табличной частью основание получают перебором строк: Объект.ДокументыОснования[0].ДокументОснование. Для универсального доступа в БСП есть функции работы со связанными документами, которые учитывают и критерии отбора.

bsl
ВЫБРАТЬ
	Основания.Ссылка КАК Документ,
	Основания.ДокументОснование КАК Основание
ИЗ
	Документ.РеализацияТоваровУслуг.ДокументыОснования КАК Основания
ГДЕ
	Основания.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

Если конфигурация нестандартная, сначала выясните имя табличной части через конфигуратор или через универсальный отчёт по структуре метаданных — имена вроде «Основания», «ДокументыОснование», «ДокументыОснования» встречаются в разных вариациях.

Почему основание может быть пустым и что с этим делать

Пустое основание — частая ситуация, и не всегда это ошибка. Документ мог быть создан вручную, а не вводом на основании; загружен из обмена, где связь не передаётся; или основание было удалено, а ссылка очистилась. В старых базах встречаются «битые» ссылки — когда документ-основание удалён физически, а ссылка осталась в виде неразрешимого объекта.

Для поиска таких проблем используйте запрос с проверкой Основание ЕСТЬ NULL после левого соединения или отбор по пустому значению. Битые ссылки выявляются штатной обработкой «Поиск и удаление дублей» не всегда — надёжнее тестирование и исправление информационной базы с флагом проверки ссылочной целостности.

Типичные ошибки при работе с основаниями

Типичные ошибки
01
Предполагать, что основание всегда одно: в типовых конфигурациях у документа может быть несколько оснований, и обращение только к первой строке ТЧ теряет данные
02
Искать основание в реквизите шапки, когда оно хранится в табличной части — запрос вернёт пустой результат без ошибки
03
Соединять таблицы по составному полю «ДокументОснование» без ВЫРАЗИТЬ() — это резко замедляет запрос на больших объёмах
04
Заполнять основание программно без вызова типовых процедур ввода на основании — документ заполнится частично, без переноса табличных частей

Отдельная ошибка — путать «документ-основание» и «документ расчётов» или «заказ» в реквизитах. Например, в реализации может быть и заказ покупателя (как основание), и отдельный реквизит «Сделка» или «Заказ» для расчётов. Это разные связи с разной логикой проведения.

Как проверить результат и выбрать правильный подход

Контрольные точки

Как проверить результат

Запрос возвращает основания
Норма

Для документов, введённых на основании, поле заполнено ссылкой

Тревожный признак

Все строки пустые — вероятно, неверное имя ТЧ или реквизита

Структура подчинённости в форме
Норма

Дерево показывает основание и подчинённые документы

Тревожный признак

Дерево пустое у документа, который точно введён на основании

Переход по ссылке основания
Норма

Открывается форма реального документа

Тревожный признак

Ошибка «Объект не найден» — битая ссылка

Маршрут решения

Как выбрать действие

Нужно разово посмотреть основание одного документаИспользуйте «Связанные документы» в форме — это быстрее всего
Нужна массовая выборка по цепочке документовПишите запрос к табличной части «ДокументыОснования»
Конфигурация самописная и структура неизвестнаОткройте метаданные документа в конфигураторе и найдите реквизит составного типа
Основание отсутствует, хотя документ создан на его базеПроверьте обмен данными и права — связь могла не перенестись или быть недоступна

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

Итог

Что важно запомнить

Документ-основание в 1С хранится в реквизите шапки, табличной части «ДокументыОснования» или определяется критерием отбора. В пользовательском режиме связь видна через «Связанные документы», в запросах — через обращение к табличной части. Перед массовыми изменениями связей делайте резервную копию.

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

Где хранится основание у счёта-фактуры в 1С:Бухгалтерии?

У счёта-фактуры выданного ссылка на основание хранится в реквизите «ДокументОснование». В форме документа оно отображается как поле «Основание», доступно для перехода и заполняется автоматически при вводе на основании реализации или поступления.

Может ли у одного документа быть несколько оснований?

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

Почему в запросе поле «ДокументОснование» пустое, хотя связь есть?

Скорее всего, основание хранится не в реквизите шапки, а в табличной части, и запрос обращается не туда. Проверьте в конфигураторе структуру документа и перепишите запрос с обращением к табличной части через «Документ.ВидДокумента.ИмяТабличнойЧасти».

Что делать, если при открытии основания появляется «Объект не найден»?

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

Передаётся ли документ-основание при обмене между базами?

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

Как программно создать документ на основании другого?

Используйте метод ввода на основании: создайте объект документа, вызовите его метод «Заполнить» с параметром-ссылкой на основание, затем запишите. Это задействует типовую логику переноса данных, включая заполнение табличной части оснований, а не только простановку ссылки.