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