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

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

Как сделать документ на основании другого в 1С

Как создать документ на основании другого в 1С: кнопка «Создать на основании», ввод на основании в конфигураторе, типовые ошибки и проверка связей документов.

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

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

Механизм работает в двух плоскостях. Пользователь просто нажимает кнопку «Создать на основании» в форме документа или в списке. А разработчик или администратор настраивает, какие документы могут вводиться на основании друг друга, и какие поля при этом заполняются автоматически. Ниже разобраны оба сценария.

Как создать документ на основании: сценарий для пользователя

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

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

Порядок действий
  1. 1
    Откройте документ-основание в режиме просмотра или найдите его в списке документов
  2. 2
    Нажмите кнопку «Создать на основании» или стрелку рядом с ней
  3. 3
    Выберите из списка тип создаваемого документа
  4. 4
    Проверьте и откорректируйте автоматически заполненные поля и табличную часть
  5. 5
    Проведите документ и убедитесь, что суммы и количество соответствуют основанию

Тот же приём работает из списка документов: выделите строку с нужным документом и нажмите «Создать на основании» в командной панели списка. Это удобно, когда не нужно открывать сам документ. В некоторых конфигурациях кнопка называется «Ввести на основании» или вынесена в меню «Ещё» — состав команд зависит от настроек формы.

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

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

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

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

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

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

Новый документ отображается в дереве как подчинённый основанию

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

Документ создан, но в связях не виден — связь не записалась или документ создан копированием

Суммы и количество
Норма

Итоги нового документа совпадают с основанием или осознанно уменьшены

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

Суммы расходятся без причины — возможно, часть строк не перенеслась

Движения по регистрам
Норма

После проведения документ формирует ожидаемые проводки и записи

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

Документ проведён, но движений нет — проверьте заполнение обязательных полей

Что делать, если нужного варианта нет в списке

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

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

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

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

Кнопка есть, но нужного типа документа нет в спискеПроверьте права доступа и настройку «Вводится на основании» в конфигураторе
Кнопки «Создать на основании» нет вообщеПроверьте, не скрыта ли команда в меню «Ещё», и есть ли права на добавление документов
Документ создаётся, но поля пустыеПроверьте процедуру «ОбработкаЗаполнения» в модуле объекта — вероятно, заполнение не реализовано
Нужно одноразово перенести данные без связиИспользуйте копирование документа (F9 или «Скопировать») вместо ввода на основании

Настройка ввода на основании в конфигураторе

Для разработчика механизм настраивается в два приёма. Сначала в конфигураторе откройте свойства документа, который должен создаваться на основании другого. На закладке «Вводится на основании» (в палитре свойств — поле «Вводится на основании») отметьте документы-основания. Например, для «РеализацияТоваровУслуг» отметьте «ЗаказПокупателя». После этого платформа автоматически добавит команду ввода на основании в формы и списки основания.

Второй шаг — заполнение данных. В модуле объекта создаваемого документа опишите процедуру ОбработкаЗаполнения с параметром ДанныеЗаполнения: в неё платформа передаёт ссылку на документ-основание. Внутри процедуры переносятся реквизиты и табличные части. Если процедуру не написать, документ создастся пустым — связь будет, а данных нет.

bsl
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
		Организация = ДанныеЗаполнения.Организация;
		Контрагент = ДанныеЗаполнения.Контрагент;
		Договор = ДанныеЗаполнения.Договор;
		Для Каждого СтрокаТовары Из ДанныеЗаполнения.Товары Цикл
			НоваяСтрока = Товары.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовары);
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

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

Частичный ввод на основании и несколько оснований

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

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

Типичные ошибки и ограничения

Самая частая ошибка — путать ввод на основании с копированием. Копия документа не хранит ссылки на источник: связи в структуре подчинённости не будет, остатки по заказу не уменьшатся, и отчёты по взаиморасчётам могут показать ложную задолженность. Если нужна именно связь — используйте только «Создать на основании».

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

Типичные ошибки
01
Копирование документа вместо ввода на основании — теряется связь, ломается контроль остатков по заказам
02
Ручное увеличение количества сверх основания — ошибка контроля при проведении или скрытая пересортица
03
Удаление основания при наличии подчинённых документов — висящие ссылки и разрыв цепочки учёта
04
Доработка типовой конфигурации без расширения — сложности при обновлении релиза

FAQ

Итог

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

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

Чем ввод на основании отличается от копирования документа?

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

Почему кнопка «Создать на основании» неактивна или её нет?

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

Можно ли создать документ на основании нескольких документов сразу?

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

Что будет, если удалить документ-основание?

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

Документ создался на основании, но все поля пустые. В чём причина?

Связь настроена, а заполнение — нет: в модуле объекта создаваемого документа отсутствует или не срабатывает процедура «ОбработкаЗаполнения». Проверьте, что в ней корректно определяется тип параметра «ДанныеЗаполнения» и реквизиты переносятся из основания.

Как ввести на основании только часть товаров из заказа?

Создайте документ на основании заказа и вручную удалите лишние строки табличной части до проведения. В конфигурациях УТ и ERP заполнение часто происходит автоматически по неотгруженному остатку — тогда корректировать ничего не потребуется.