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