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