Ввод документа на основании другого: кнопка, клавиши, настройка и код
Содержание
Команда «Создать на основании» стоит в командной панели формы документа и формы списка. В интерфейсе «Такси» это кнопка с выпадающим меню: нажали, выбрали нужный документ, и он открывается уже заполненным данными исходного.
Работает она так: платформа берёт документ-основание, передаёт его в новый документ, а тот сам решает, какие реквизиты забрать. Поэтому набор пунктов в меню у каждого документа свой. В заказе покупателя вы увидите реализацию и счёт на оплату, в поступлении товаров — возврат поставщику, и так далее.
Где найти кнопку «Создать на основании» в интерфейсе
Есть два места, и разница в них заметная.
В форме документа. Откройте любой проведённый или записанный документ. В командной панели над реквизитами найдите кнопку «Создать на основании». Если панель не вмещает все кнопки, команда спрячется в меню «Ещё».
В списке документов. Выделите строку и нажмите ту же кнопку на панели списка. Новый документ будет создан на основании выделенного, без открытия самого основания. Это быстрее, когда нужно обработать десяток документов подряд.
Порядок действий:
- Откройте нужный документ или выделите его в журнале.
- Нажмите «Создать на основании» и выберите вид документа из списка.
- Проверьте заполненные реквизиты: контрагент, организация, склад, табличная часть.
- Запишите или проведите новый документ.
Основание не обязательно должно быть проведено. Но если исходный документ только записан, суммы в нём могут быть не пересчитаны, и новый документ унаследует неактуальные данные. Если документ-основание ещё меняется, лучше сначала провести его.
Что переносится, а что нет
Переносятся то, что разработчик конфигурации прописал в обработчике заполнения. Обычно это:
- 🏢 организация, контрагент, договор;
- 📦 склад и табличная часть с номенклатурой, количеством и ценой;
- 💱 валюта и вид цены;
- 🔗 ссылка на документ-основание в служебном реквизите.
Не переносятся комментарий, ответственный, дата и номер. Дата ставится текущая, номер присваивается по нумерации нового документа. Если вам нужна цепочка документов, смотрите связи через «Структуру подчинённости» (она есть в меню «Перейти» или в командах формы документа).
Горячие клавиши и работа без мыши
Отдельной общепринятой комбинации именно для «Создать на основании» в типовых конфигурациях нет. Зато вокруг этой команды работает набор стандартных клавиш, которые экономят время.
| Клавиша | Что делает |
|---|---|
Ins | Создать новый документ в списке |
F9 | Скопировать выделенный документ в списке |
F2 | Открыть выделенный элемент на изменение |
Enter | Открыть документ или выбрать пункт в меню |
Стрелки вверх/вниз | Двигаться по пунктам меню «Создать на основании» |
Esc | Закрыть меню без выбора |
Меню открывается щелчком мыши, а дальше им удобно управлять стрелками и Enter.
Не путайте копирование и ввод на основании. Копия (F9) повторяет документ целиком, вместе с датой и комментарием. Ввод на основании создаёт новый документ другого вида или того же, но заполняет его выборочно.
Копирование или основание: что выбрать
| Задача | Подходит |
|---|---|
| Нужна копия того же документа с теми же строками | Копирование, F9 |
| Нужен документ другого вида по данным первого | Создать на основании |
| Нужно создать несколько документов по одной цепочке сделки | Создать на основании, по очереди |
Как вызвать создание на основании программно
Если вы пишете обработку или доработку, ввод на основании описывается в двух местах. В палитре свойств документа в конфигураторе есть закладка «Ввод на основании»: там перечисляют, какие документы могут быть основанием для данного. А сам перенос данных делает процедура ОбработкаЗаполнения в модуле объекта.
Минимальный пример, который заполняет новый документ из заказа:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
Организация = ДанныеЗаполнения.Организация;
Контрагент = ДанныеЗаполнения.Контрагент;
Договор = ДанныеЗаполнения.Договор;
ДокументОснование = ДанныеЗаполнения;
Для Каждого Строка Из ДанныеЗаполнения.Товары Цикл
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = Строка.Номенклатура;
НоваяСтрока.Количество = Строка.Количество;
НоваяСтрока.Цена = Строка.Цена;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Имена документов и реквизитов здесь условные, у вас они будут другими.
Чтобы создать и записать такой документ из кода, не открывая форму:
НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДок.Заполнить(ЗаказСсылка);
НовыйДок.Записать(РежимЗаписиДокумента.Запись);
Метод Заполнить вызывает тот самый обработчик ОбработкаЗаполнения. Если вы хотите сразу провести документ
, используйте РежимЗаписиДокумента.Проведение, но тогда все обязательные реквизиты должны быть заполнены.
Прежде чем проверять код на рабочей базе, сделайте копию и прогоните его на тестовой. Массовое создание документов потом придётся откатывать вручную.
Кнопка «Создать на основании» пропала: как её вернуть
Причин обычно три, и проверять их стоит в таком порядке.
1. Для документа не настроен ввод на основании
Если в конфигурации у документа нет ни одного документа-основания, меню будет пустым или кнопки не будет вовсе. Это не ошибка, так задумал разработчик. В типовых конфигурациях в таких документах команды нет, и вернуть её без доработки нельзя.
2. Кнопку убрали из формы
Пользователь или администратор мог скрыть команду при настройке формы. Откройте документ и выберите «Ещё → Изменить форму». Найдите командную панель, проверьте, есть ли там «Создать на основании», и включите её видимость. Если пункта «Изменить форму» нет, значит, у вас нет права на настройку интерфейса или форма заблокирована.
3. Не хватает прав
Меню показывает только те документы, на создание которых у вас есть право. Если пользователю запрещено добавлять реализации, пункт «Реализация» в его меню не появится. Проверьте профиль доступа в разделе Администрирование → Настройки пользователей и прав.
После внесения изменений перезапустите сеанс 1С, чтобы права и настройки интерфейса подхватились.
Для быстрой диагностики подойдёт такая таблица:
ОбработкаЗаполнения не обрабатывает этот тип основания. Нужна доработка конфигурации.Мини-кейс: цепочка от заказа до реализации
Менеджер принял заказ клиента на 40 коробок по 250 рублей. Складу нужно отгрузить 30 коробок сейчас, остальные позже. Как это делается на основании:
- В заказе нажимаем «Создать на основании» и выбираем реализацию.
- В новом документе количество стоит 40. Меняем на 30 и проводим: сумма пересчитается в 7 500 рублей.
- Позже снова открываем заказ, создаём вторую реализацию, оставляем 10 коробок. Сумма будет 2 500 рублей.
В сумме получаем 10 000 рублей, как в заказе. Обе реализации связаны с одним основанием, и в структуре подчинённости видны оба документа. Если бы вы скопировали первую реализацию через F9, связь с заказом пришлось бы восстанавливать вручную.
Тот же приём работает и в обратную сторону. Если клиент вернул часть товара, откройте реализацию и создайте на её основании возврат: табличная часть придёт заполненной, останется оставить только возвращаемые строки и проверить количество. Так вы не наберёте номенклатуру руками и не ошибётесь в цене, которая должна совпасть с ценой продажи.
Если возврат оформляется спустя много дней, сверьте дату: программа поставит текущую, а для учёта может понадобиться дата фактического возврата. Также убедитесь, что договор в возврате тот же, что в продаже.
Когда ввод на основании не нужен
Иногда быстрее и надёжнее начать с чистого листа. Вот случаи, где основание только мешает.
- ✋ Данные в основании недостоверны: в нём ошибки, которые вы собираетесь исправлять. Сначала исправьте основание.
- ✋ Новый документ не связан с исходным по сути, а нужен лишь похожий набор строк. Тогда копирование проще и не создаёт ложных связей.
- ✋ Основание закрыто периодом, а в новом документе нужна дата из другого периода. Проверьте, не запретит ли программа проведение из-за даты запрета изменения данных.
- ✋ Вы работаете в чужой организации с отдельным учётом и разными настройками. Заполнение из основания перенесёт реквизиты, которые не подходят.
Что проверить в новом документе после заполнения
Автозаполнение экономит время, но не отменяет проверки. Пройдитесь по четырём точкам:
- 🔍 Шапка. Организация, контрагент, договор, склад. Часто именно здесь остаётся значение из основания, а нужно другое.
- 🔍 Табличная часть. Количество, цена, единицы измерения. Если в основании был частичный остаток, проверьте, не вернулась ли полная строка.
- 🔍 Даты. Дата документа ставится текущая. Если вы вносите задним числом, поправьте её до проведения.
- 🔍 Связь. В реквизите основания (или в структуре подчинённости) должна стоять ссылка на исходный документ.
Типичные ошибки при вводе на основании
Эти проблемы встречаются чаще других:
- ❌ Создали документ на основании непроведённого заказа. Сумма и ставка НДС не рассчитаны, а новый документ их забрал. Проверьте основание и пересчитайте.
- ❌ Дублирование документов. Нажали кнопку дважды и получили два одинаковых документа на одно основание. Перед созданием посмотрите, нет ли уже подчинённых документов.
- ❌ Не совпадает организация. Документ-основание относится к одной организации, а пользователь по умолчанию работает с другой. Проверьте поле «Организация» в созданном документе.
- ❌ Ожидали полного копирования. Разработчик не прописал перенос части реквизитов, и они остались пустыми.
Если документ создался, но вы поняли, что основание выбрано не то, пометьте его на удаление, а не правьте вручную. Так в журнале не остаётся полузаполненных черновиков.
Как ускорить рутину с созданием на основании
Если цепочка однотипная, используйте несколько приёмов.
- 📋 Групповое создание из списка. В ряде конфигураций команду можно применить сразу к нескольким выделенным строкам. Проверьте, доступна ли такая возможность в вашей версии.
- ⭐ Избранное. Часто используемые документы добавьте в избранное, чтобы переходить в них без поиска по меню.
- 🧩 Расширение конфигурации . Если нужного основания в типовой конфигурации нет, добавьте его через расширение, а не правкой типового кода. Так обновления не сломают доработку.
- 📑 Шаблоны. Для документов, которые заполняются по одному и тому же образцу, удобнее копирование (
F9), чем ввод на основании.