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

Быстрый старт · 10 мин

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

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

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

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

Что такое ввод на основании и когда он нужен

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

Типичные примеры цепочек в типовых конфигурациях: счет на оплату → реализация товаров и услуг → счет-фактура; заказ поставщику → поступление товаров; кадровый перевод → приказ о премии. Если такая цепочка в вашей работе повторяется, ввод на основании экономит время и гарантирует, что данные в связанных документах совпадают.

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

Порядок действий одинаков для большинства типовых конфигураций (1С:Бухгалтерия, Управление торговлей, ERP, Комплексная автоматизация):

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

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

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

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

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

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

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

Ссылка на основание
Норма

В новом документе заполнено поле «Документ-основание» или аналогичное

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

Поле пустое — связь не установлена, отчеты по цепочке будут неполными

Табличная часть
Норма

Товары и количество совпадают с основанием

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

Строки пустые или количество отличается без причины

Суммы и НДС
Норма

Итоговые суммы и ставки НДС соответствуют основанию

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

Расхождения в суммах, неверная ставка налога

Проведение
Норма

Документ проводится без сообщений об ошибках

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

Ошибки проведения: не хватает остатков, не заполнены обязательные поля

Дополнительно проверить связь можно через кнопку «Связанные документы» (или «Структура подчиненности») в форме документа-основания: там отображается вся цепочка созданных на его основе объектов.

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

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

Настройка свойства «Вводится на основании»

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

Обратная сторона настраивается автоматически: у документа-основания в списке кнопки появятся все документы, у которых он указан в свойстве «Вводится на основании». Удалять объект из этого свойства нужно осторожно: если в базе уже есть документы, созданные по этой связи, сама связь в данных сохранится, но создать новые документы таким способом станет нельзя.

Процедура «ОбработкаЗаполнения»

Логика переноса данных описывается в модуле объекта документа в предопределенной процедуре «ОбработкаЗаполнения». Параметр «ДанныеЗаполнения» содержит ссылку на документ-основание. Пример типовой реализации:

bsl
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

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

КонецПроцедуры

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

Альтернативные способы создания на основании

Помимо стандартной кнопки и конфигуратора, существуют и другие варианты, которые подходят в разных ситуациях.

Сравнение вариантов

Кнопка «Создать на основании»

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

Копирование документа

Кнопка «Скопировать» в журнале создает документ того же типа. Подходит, когда нужен аналогичный документ, а не следующий шаг цепочки.

Программное создание

Метод «СоздатьДокумент» с последующим вызовом «Заполнить(Основание)» используется в обработках и обменах. Требует прав на изменение конфигурации или внешнюю обработку.

Рабочие места и обработки формирования

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

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

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

Типичные ошибки
01
Создание документа на основании непроведенного или помеченного на удаление основания — данные могут быть неактуальны, а часть конфигураций блокирует такой ввод
02
Редактирование количества в новом документе без контроля остатка по основанию — по одному заказу можно отгрузить товар дважды
03
Отсутствие проверки типа «ДанныеЗаполнения» в модуле — ошибка при создании документа без основания
04
Добавление связи «Вводится на основании» без процедуры заполнения — документ создается пустым, пользователь заполняет все вручную
05
Игнорирование прав доступа: пользователь видит кнопку, но не может создать документ из-за отсутствия прав на нужный вид документов

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

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

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

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

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

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

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

Откройте документ и очистите поле «Документ-основание» (или аналогичное), затем перепроведите. Учтите: в типовых конфигурациях очистка основания может повлиять на контроль исполнения заказа и отчеты по взаиморасчетам. Если документ участвует в цепочке расчетов, корректнее удалить его целиком.

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

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

Чем «Создать на основании» отличается от копирования?

Копирование создает документ того же вида с теми же данными, без связи с исходным. Ввод на основании создает документ другого вида (следующий шаг цепочки) и сохраняет ссылку на основание, что обеспечивает прослеживаемость и контроль исполнения. Для повторяющихся однотипных документов используйте копирование, для цепочек документооборота — ввод на основании.

Можно ли настроить ввод на основании без изменения конфигурации?

Полноценно — нет: состав кнопки и логика заполнения задаются в конфигураторе. Частичное решение без доработки — внешние обработки, которые создают документы программно, либо использование расширения конфигурации, если база в режиме совместимости это позволяет. Расширение предпочтительнее, так как типовая конфигурация остается на поддержке.

Итог

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

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