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