К статье
Практический материал

Быстрый старт · 9 мин

Как удалить строку из табличной части в 1С

Как удалить строку из табличной части документа в 1С: горячие клавиши, команды меню, удаление нескольких строк и через код. Разбор ошибок и ограничений.

Табличная часть — это блок строк внутри документа или справочника: перечень товаров в накладной, начисления в документе по зарплате, этапы в заказе. Удалить строку из неё можно несколькими способами — мышью, клавиатурой, через команду «Подбор» или программно. Выбор зависит от того, сколько строк нужно убрать и в каком режиме работает конфигурация: обычные формы или управляемые.

Действие почти всегда обратимо до момента записи документа: если строка удалена по ошибке, достаточно закрыть форму без сохранения. Но после проведения документа удалённая строка уже повлияла на движения по регистрам — тогда исправление потребует перепроведения или ввода корректировки.

Где находится табличная часть и как выделить строку

Табличная часть отображается в форме документа как таблица с колонками: «Номенклатура», «Количество», «Цена», «Сумма» и другими. Над таблицей обычно расположена командная панель с кнопками «Добавить», «Скопировать», «Удалить», «Подбор». Активная строка подсвечивается, а в начале строки отображается её порядковый номер.

Чтобы выделить одну строку, щёлкните по ней мышью в любой ячейке. Для выделения нескольких строк подряд зажмите Shift и кликните по первой и последней строке диапазона. Для выборочного выделения несмежных строк зажмите Ctrl и кликайте по нужным строкам. Выделенные строки подсвечиваются одновременно — это визуальное подтверждение, что команда удаления затронет именно их.

В тонком клиенте и веб-клиенте выделение работает так же, но отрисовка может отличаться. Если клик по строке переводит её в режим редактирования ячейки, выделяйте строку кликом по области слева от первой колонки или по заголовку строки.

Удаление строки кнопкой, клавишей и через меню

Самый быстрый способ — выделить строку и нажать клавишу Delete. В большинстве конфигураций на управляемых формах (1С:Предприятие 8.3) строка удаляется сразу, без дополнительного подтверждения. В некоторых документах программа спросит подтверждение — ответьте «Да».

Альтернатива — кнопка с изображением красного крестика на командной панели табличной части. Если кнопок много и нужная не видна, откройте меню «Ещё» над таблицей: там находится полный список команд, включая «Удалить». Третий вариант — щёлкнуть по строке правой кнопкой мыши и выбрать «Удалить» в контекстном меню.

Порядок действий
  1. 1
    Откройте документ и перейдите на вкладку с табличной частью
  2. 2
    Выделите нужную строку кликом мыши (несколько строк — с Ctrl или Shift)
  3. 3
    Нажмите Delete, кнопку с крестиком или «Удалить» в контекстном меню
  4. 4
    Проверьте, что итоговые суммы документа пересчитались
  5. 5
    Запишите или проведите документ кнопкой «Провести» или «Записать»

После удаления проверьте итоги документа: сумма, количество, сумма НДС должны пересчитаться автоматически. Если итоги не изменились — возможно, строка не была удалена, а лишь снято выделение. Повторите действие и убедитесь, что номера строк сместились.

Удаление нескольких и всех строк сразу

Когда нужно убрать десятки строк, удалять их по одной нерационально. Выделите диапазон через Shift или набор строк через Ctrl и нажмите Delete — удалятся все выделенные строки одной командой. Это безопасно: до записи документа изменения легко отменить закрытием формы.

Для очистки всей табличной части во многих конфигурациях есть команда «Очистить» в меню «Ещё» над таблицей. Если её нет, выделите все строки сочетанием Ctrl+A (курсор должен находиться в таблице) и нажмите Delete. Учтите: в некоторых документах при полной очистке программа может выдать предупреждение или запретить проведение пустого документа — это нормальное поведение контроля.

Почему строка не удаляется: типичные причины

Если клавиша Delete и кнопка удаления не работают или неактивны (серые), причина обычно одна из четырёх. Первая — документ открыт в режиме просмотра или у пользователя нет прав на изменение: проверьте, доступна ли кнопка «Добавить». Вторая — документ находится в закрытом периоде, и действует дата запрета редактирования. Третья — строка добавлена автоматически механизмом конфигурации (например, по данным другого документа) и заблокирована от ручного изменения.

Четвёртая причина — документ создан на основании другого и связан с ним: например, строка реализации, сформированная из заказа, может контролироваться механизмом резервирования. В таком случае при попытке удаления программа выдаст сообщение с объяснением. Читайте текст сообщения внимательно — там указано, какой объект блокирует действие.

Типичные ошибки
01
Удаление строки в проведённом документе без перепроведения — в учёте остаются старые суммы и остатки
02
Попытка удалить строку в документе закрытого периода — действие блокируется датой запрета, нужно согласование с администратором
03
Удаление строк вместо отмены всего документа — если документ ошибочен целиком, корректнее пометить его на удаление или распровести
04
Очистка табличной части перед записью без проверки итогов — легко не заметить, что удалились лишние строки

Удаление строки программно (для разработчиков)

Во встроенном языке 1С строка табличной части удаляется методом Удалить() коллекции табличной части. Метод принимает либо объект строки, либо её индекс (нумерация индексов начинается с нуля, в отличие от номеров строк в интерфейсе).

1c
// Удалить текущую строку на форме
Объект.Товары.Удалить(Элементы.Товары.ТекущиеДанные);

// Удалить строку по индексу (первая строка — индекс 0)
Объект.Товары.Удалить(0);

// Удалить все строки, где количество равно нулю
Индекс = Объект.Товары.Количество() - 1;
Пока Индекс >= 0 Цикл
    Если Объект.Товары[Индекс].Количество = 0 Тогда
        Объект.Товары.Удалить(Индекс);
    КонецЕсли;
    Индекс = Индекс - 1;
КонецЦикла;

Важный нюанс: при удалении строк в цикле обходите коллекцию с конца к началу. Если идти с начала, после каждого удаления индексы оставшихся строк сдвигаются, и часть строк будет пропущена. Альтернатива — сначала собрать строки для удаления в отдельный массив, а затем удалять их по ссылке на объект строки.

Для полной очистки табличной части используйте метод Очистить(): Объект.Товары.Очистить();. Он быстрее циклического удаления и не требует контроля индексов.

Как проверить результат и отменить ошибочное удаление

Сразу после удаления сверьте три вещи: количество строк в табличной части, итоговую сумму документа и сумму НДС. Все показатели должны уменьшиться на значения удалённой строки. Если документ проведён, дополнительно перепроведите его и при необходимости проверьте движения через кнопку «Дт/Кт» или отчёт по проводкам.

Контрольные точки

Как проверить результат

Итоговая сумма документа
Норма

Уменьшилась на сумму удалённой строки

Тревожный признак

Не изменилась — строка не удалена или итоги не пересчитались

Нумерация строк
Норма

Номера идут подряд без пропусков

Тревожный признак

Есть пропуски — проверьте, какая строка удалена

Движения документа после перепроведения
Норма

Проводки соответствуют новому составу табличной части

Тревожный признак

Остались проводки по удалённой строке — документ не перепроведён

Если строка удалена по ошибке и документ ещё не записан — просто закройте форму кнопкой с крестиком и ответьте «Нет» на вопрос о сохранении. Документ откроется в исходном состоянии. Если документ уже записан, строку придётся добавить заново вручную или через «Подбор», поэтому перед массовым удалением в важных документах имеет смысл запомнить или сфотографировать состав табличной части.

Частые вопросы

Строка удалилась, но сумма документа не изменилась. Что делать?

Проверьте, действительно ли удалена нужная строка — возможно, была удалена другая. Затем закройте и заново откройте документ: итоги пересчитаются при открытии. Если сумма всё равно не совпадает, проверьте, нет ли в документе второй табличной части на другой вкладке.

Как удалить строку, если кнопка «Удалить» серая и не нажимается?

Сначала убедитесь, что курсор стоит внутри табличной части и строка выделена. Если кнопка всё равно неактивна — проверьте права доступа, дату запрета редактирования и не открыт ли документ в режиме просмотра. При отсутствии прав обратитесь к администратору 1С.

Можно ли восстановить удалённую строку после записи документа?

Штатной команды «отменить» в 1С нет. После записи строку придётся добавить заново вручную. Если удалено много строк, проще не сохранять документ, а если он уже записан — восстановить данные из резервной копии или по связанным документам-основаниям.

Как удалить строки только с определённым товаром?

В интерфейсе: отсортируйте таблицу кликом по заголовку колонки «Номенклатура», выделите нужные строки через Shift и нажмите Delete. Программно — переберите коллекцию с конца и удаляйте строки с совпадающим значением, как в примере кода выше.

Чем удаление строки отличается от пометки документа на удаление?

Удаление строки меняет состав одного документа, остальные строки и сам документ остаются в учёте. Пометка на удаление отменяет документ целиком со всеми его движениями. Если ошибочен весь документ — помечайте его на удаление, а не очищайте табличную часть.

Итог

Что важно запомнить

Строка табличной части удаляется клавишей Delete, кнопкой с крестиком или через контекстное меню; несколько строк — после выделения с Ctrl или Shift. До записи документа удаление обратимо, после проведения требуется перепроведение. Если команда недоступна — проверяйте права, дату запрета и блокировки механизмов конфигурации.