Документы и Печать · 10 мин
Как сделать документ на основании другого в 1С
Как создать документ на основании другого в 1С: кнопка «Создать на основании», ввод на основании в конфигураторе, типовые ошибки и проверка связей документов.
Ввод документа «на основании» — один из базовых механизмов 1С, который позволяет создавать связанные документы без ручного переноса данных. Например, из «Заказа покупателя» одной кнопкой создаётся «Реализация товаров и услуг», а из неё — «Счёт-фактура»: программа сама подставляет контрагента, номенклатуру, суммы и запоминает связь между документами.
Такой подход сокращает количество ошибок при вводе, ускоряет оформление цепочки документов и обеспечивает прослеживаемость: в любой момент можно увидеть, на основании чего создан документ и какие документы породил он сам. Это важно и для учёта, и для разбора расхождений с контрагентами.
Механизм работает в двух плоскостях. Пользователь просто нажимает кнопку «Создать на основании» в форме документа или в списке. А разработчик или администратор настраивает, какие документы могут вводиться на основании друг друга, и какие поля при этом заполняются автоматически. Ниже разобраны оба сценария.
Как создать документ на основании: сценарий для пользователя
В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP, Комплексная автоматизация) основной путь одинаков. Откройте документ, который будет основанием, — например, «Поступление товаров и услуг». В командной панели формы найдите кнопку «Создать на основании» — в интерфейсе «Такси» она обычно расположена рядом с кнопками «Провести» и «Печать». Если доступных вариантов несколько, рядом с кнопкой есть стрелка, раскрывающая список.
Выберите нужный тип документа из списка. Откроется форма нового документа, уже заполненная данными основания: организация, контрагент, договор, табличная часть с номенклатурой и суммами. Проверьте перенесённые данные, при необходимости отредактируйте их (например, если реализация частичная — удалите лишние строки), и проведите документ.
- 1Откройте документ-основание в режиме просмотра или найдите его в списке документов
- 2Нажмите кнопку «Создать на основании» или стрелку рядом с ней
- 3Выберите из списка тип создаваемого документа
- 4Проверьте и откорректируйте автоматически заполненные поля и табличную часть
- 5Проведите документ и убедитесь, что суммы и количество соответствуют основанию
Тот же приём работает из списка документов: выделите строку с нужным документом и нажмите «Создать на основании» в командной панели списка. Это удобно, когда не нужно открывать сам документ. В некоторых конфигурациях кнопка называется «Ввести на основании» или вынесена в меню «Ещё» — состав команд зависит от настроек формы.
Как проверить связь между документами
После создания полезно убедиться, что связь зафиксирована. В форме документа откройте команду «Связанные документы» (обычно в меню «Ещё» или на панели навигации) — откроется структура подчинённости: дерево, где видно основание и все документы, созданные на его основе, а также дальше по цепочке.
Структура подчинённости помогает находить дубли. Если на основании одного заказа случайно создали две реализации, в дереве это сразу видно. Также по связям удобно проверять полноту оформления: есть ли к реализации счёт-фактура, есть ли к поступлению оплата.
Как проверить результат
Новый документ отображается в дереве как подчинённый основанию
Документ создан, но в связях не виден — связь не записалась или документ создан копированием
Итоги нового документа совпадают с основанием или осознанно уменьшены
Суммы расходятся без причины — возможно, часть строк не перенеслась
После проведения документ формирует ожидаемые проводки и записи
Документ проведён, но движений нет — проверьте заполнение обязательных полей
Что делать, если нужного варианта нет в списке
Если в меню «Создать на основании» отсутствует нужный тип документа, причин несколько. Первая — связь просто не предусмотрена конфигурацией: разработчик не настроил ввод на основании для этой пары документов. Вторая — у пользователя нет прав на создание документов этого вида: тогда команда скрывается или неактивна. Третья — в некоторых конфигурациях состав команд зависит от статуса или вида операции документа-основания.
Начните с проверки прав: попросите коллегу с полными правами открыть тот же документ. Если у него команда есть — вопрос в роли пользователя, и её настраивает администратор через профили групп доступа. Если команды нет ни у кого, связь нужно добавлять в конфигураторе — об этом ниже.
Как выбрать действие
Настройка ввода на основании в конфигураторе
Для разработчика механизм настраивается в два приёма. Сначала в конфигураторе откройте свойства документа, который должен создаваться на основании другого. На закладке «Вводится на основании» (в палитре свойств — поле «Вводится на основании») отметьте документы-основания. Например, для «РеализацияТоваровУслуг» отметьте «ЗаказПокупателя». После этого платформа автоматически добавит команду ввода на основании в формы и списки основания.
Второй шаг — заполнение данных. В модуле объекта создаваемого документа опишите процедуру ОбработкаЗаполнения с параметром ДанныеЗаполнения: в неё платформа передаёт ссылку на документ-основание. Внутри процедуры переносятся реквизиты и табличные части. Если процедуру не написать, документ создастся пустым — связь будет, а данных нет.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
Организация = ДанныеЗаполнения.Организация;
Контрагент = ДанныеЗаполнения.Контрагент;
Договор = ДанныеЗаполнения.Договор;
Для Каждого СтрокаТовары Из ДанныеЗаполнения.Товары Цикл
НоваяСтрока = Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовары);
КонецЦикла;
КонецЕсли;
КонецПроцедурыДополнительно можно настроить критерий отбора «Связанные документы» и включить оба документа в него — тогда структура подчинённости будет показывать связь. В типовых конфигурациях часть этой работы уже сделана, и при доработке достаточно аккуратно расширить существующие процедуры, не ломая типовую логику.
Частичный ввод на основании и несколько оснований
На практике часто нужно отгрузить не весь заказ, а часть. В типовых конфигурациях это решается двумя способами: либо создаётся документ с полным списком товаров, и пользователь вручную удаляет лишние строки, либо предусмотрен механизм «по остаткам» — например, в УТ и ERP реализация на основании заказа заполняется только неотгруженным остатком с учётом уже созданных реализаций.
Возможна и обратная ситуация — один документ на основании нескольких: например, одна реализация по нескольким заказам. В типовых решениях это делается через рабочие места оформления (выделяете несколько заказов в списке и создаёте общий документ) либо через подбор в уже созданном документе — кнопка «Заполнить» или «Подобрать по заказам». В самописных конфигурациях такую логику нужно программировать отдельно, стандартная ОбработкаЗаполнения принимает только одно основание.
Типичные ошибки и ограничения
Самая частая ошибка — путать ввод на основании с копированием. Копия документа не хранит ссылки на источник: связи в структуре подчинённости не будет, остатки по заказу не уменьшатся, и отчёты по взаиморасчётам могут показать ложную задолженность. Если нужна именно связь — используйте только «Создать на основании».
Вторая группа ошибок связана с редактированием после переноса. Если в созданном документе вручную изменить количество на большее, чем в основании, типовые конфигурации при проведении могут выдать ошибку контроля остатков по заказу — это нормальная защита, а не сбой. Также помните: удаление или отмена проведения основания не удаляет подчинённые документы автоматически — цепочку нужно разбирать вручную, начиная с конца.
FAQ
Что важно запомнить
Документ на основании создаётся кнопкой «Создать на основании» из формы или списка основания; связь видна в структуре подчинённости. Если нужного варианта нет — проверьте права и настройку «Вводится на основании» в конфигураторе, а заполнение полей описывается в процедуре «ОбработкаЗаполнения». Не заменяйте ввод на основании копированием — теряется связь и контроль остатков.
Чем ввод на основании отличается от копирования документа?
Копирование создаёт независимый документ с теми же данными, но без ссылки на источник. Ввод на основании дополнительно записывает связь: она видна в структуре подчинённости, участвует в контроле остатков по заказам и в отчётах по цепочкам документов. Для учётных цепочек всегда используйте ввод на основании.
Почему кнопка «Создать на основании» неактивна или её нет?
Наиболее вероятные причины: у пользователя нет прав на добавление целевого типа документов, команда скрыта в меню «Ещё», либо в конфигурации не настроено свойство «Вводится на основании» для этой пары документов. Проверку начинайте с прав доступа, затем — с настроек конфигурации.
Можно ли создать документ на основании нескольких документов сразу?
Стандартная обработка заполнения принимает одно основание, но типовые конфигурации решают задачу иначе: через выделение нескольких строк в списке заказов или через механизм подбора оснований в уже открытом документе. В собственных конфигурациях такую логику программируют отдельно.
Что будет, если удалить документ-основание?
Подчинённые документы не удалятся автоматически — в них останется ссылка на несуществующий объект либо связь просто прервётся. Перед удалением основания сначала пометьте на удаление или отмените проведение всех созданных на его основе документов, двигаясь от конца цепочки к началу.
Документ создался на основании, но все поля пустые. В чём причина?
Связь настроена, а заполнение — нет: в модуле объекта создаваемого документа отсутствует или не срабатывает процедура «ОбработкаЗаполнения». Проверьте, что в ней корректно определяется тип параметра «ДанныеЗаполнения» и реквизиты переносятся из основания.
Как ввести на основании только часть товаров из заказа?
Создайте документ на основании заказа и вручную удалите лишние строки табличной части до проведения. В конфигурациях УТ и ERP заполнение часто происходит автоматически по неотгруженному остатку — тогда корректировать ничего не потребуется.