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

Справочники и Данные · 11 мин

Как удалить строку в программе 1С

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

Фраза «удалить строку в 1С» означает разные действия в зависимости от того, где находится эта строка. Чаще всего речь идёт о строке табличной части документа — например, позиции товара в накладной. Но строкой может быть и запись в журнале документов, элемент списка справочника или строка таблицы значений в программном коде. Способ удаления в каждом случае свой, и путаница между ними — главная причина ошибок.

Важно понимать принципиальную разницу: строка табличной части удаляется сразу и физически, а объект целиком (документ, элемент справочника) в 1С сначала помечается на удаление, и только потом удаляется окончательно через специальную обработку. Это сделано для защиты данных: пометку можно снять, а физически удалённую строку восстановить нельзя.

Ниже разобраны все основные сценарии: удаление строки в документе, работа с журналами и списками, программное удаление, а также типичные ошибки и способы проверить результат.

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

Табличная часть — это список строк внутри документа: товары в реализации, услуги в счёте, сотрудники в ведомости. Чтобы удалить такую строку, откройте документ, установите курсор на нужную строку и нажмите клавишу Delete на клавиатуре. Строка исчезнет из таблицы сразу, но фактически изменение сохранится только после записи документа.

Альтернативный способ — кнопка с красным крестиком на командной панели табличной части или команда «Удалить» в контекстном меню (правая кнопка мыши по строке). В тонком клиенте и веб-клиенте набор кнопок может отличаться, но команда удаления присутствует всегда, если у пользователя есть права на изменение документа.

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

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

Удаление строки в журнале документов и списке справочника

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

Помеченный объект продолжает существовать в базе, но большинство отчётов и обработок его игнорируют. Пометку можно снять тем же способом — повторным нажатием Delete или командой «Снять пометку». Это удобно, если объект удалили по ошибке.

Окончательное удаление выполняется через раздел «Администрирование → Удаление помеченных объектов» (в некоторых конфигурациях — «Операции → Удаление помеченных объектов»). Программа проверит, нет ли ссылок на удаляемый объект в других документах и справочниках. Если ссылки есть — объект не удалится, и система покажет список мест использования. Сначала нужно убрать эти ссылки, затем повторить удаление.

Горячие клавиши и особенности интерфейса «Такси»

В интерфейсе «Такси», который используется в актуальных конфигурациях (Бухгалтерия 3.0, Управление торговлей 11, ЗУП 3.1 и других), основные операции со строками выполняются стандартными клавишами. Знание этих сочетаний заметно ускоряет работу, особенно при обработке больших табличных частей.

  • Delete — удалить текущую строку табличной части или пометить объект на удаление в списке;
  • Shift + Delete — в некоторых списках: вызов непосредственного удаления (если разрешено настройками конфигурации);
  • F9 — скопировать строку (полезно, если нужно перенести строку перед удалением);
  • Ctrl + Z — отмена последнего действия в поле ввода; обратите внимание, что отмена удаления строки табличной части этой комбинацией не всегда срабатывает;
  • Esc — закрыть форму без сохранения изменений, если документ ещё не записан.

Если строка удалилась случайно и документ ещё не записан, самый надёжный способ — закрыть документ без сохранения (Esc, ответить «Нет» на вопрос о записи) и открыть его заново. Все изменения, включая удаление строки, будут отменены.

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

Если клавиша Delete не срабатывает или команда удаления неактивна, причин обычно несколько. Самая частая — недостаток прав: пользователю разрешён просмотр документа, но запрещено изменение. В этом случае кнопки редактирования в форме будут серыми, а табличная часть доступна только для чтения. Права настраивает администратор через профили групп доступа.

Вторая причина — документ находится в закрытом периоде. Если установлена дата запрета изменения данных, документы раньше этой даты нельзя редактировать, включая удаление строк. Система выдаст сообщение о запрете при попытке записи.

Третья группа причин — программные ограничения конфигурации. Например, строку нельзя удалить, если она добавлена автоматически обменом данными, если документ находится в статусе «Согласован», или если по строке есть связанные данные (частичная оплата, складской ордер). В таких случаях программа выводит поясняющее сообщение — прочитайте его, там указано, что именно блокирует удаление.

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

Как удалить строку программно на встроенном языке 1С

Разработчикам и администраторам, работающим с кодом, строки удаляют методами встроенного языка. Для табличной части объекта используется метод Удалить() коллекции строк, для таблицы значений — аналогичный метод. Ниже пример удаления строки из табличной части «Товары» документа.

ДокументОбъект = ДокументСсылка.ПолучитьОбъект();

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

ДокументОбъект.Записать();

Чтобы удалить не одну, а все строки, подходящие под условие, используют цикл с обходом коллекции в обратном порядке — иначе индексы сдвинутся, и часть строк будет пропущена. Либо применяют метод НайтиСтроки() и удаляют найденные строки по ссылке на строку, а не по индексу.

СтрокиКУдалению = ТаблицаЗначений.НайтиСтроки(Новый Структура("Отметка", Истина));

Для Каждого Строка Из СтрокиКУдалению Цикл

ТаблицаЗначений.Удалить(Строка);

КонецЦикла;

Для полной очистки табличной части или таблицы значений есть метод Очистить() — он удаляет все строки за один вызов. Помните, что изменения объекта вступают в силу только после Записать(), а для проведённого документа — после перепроведения.

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

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

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

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

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

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

Строка в табличной части
Норма

Строка исчезла, итоги пересчитались, документ записан без ошибок

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

Строка вернулась после переоткрытия — документ не был записан

Объект в журнале или списке
Норма

После «Удаления помеченных» объект исчез из списка полностью

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

Объект остался с пометкой — есть ссылки на него в других объектах

Проведённый документ
Норма

Документ перепровёлся, отчёты по остаткам корректны

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

Ошибки проведения, отрицательные остатки — есть зависимые документы

Если удалили строку или объект по ошибке, порядок действий такой: строку табличной части в незаписанном документе восстановите закрытием формы без сохранения; помеченный объект — снятием пометки; физически удалённый объект — только восстановлением из резервной копии. Поэтому регулярное резервное копирование базы — обязательное условие безопасной работы.

Итог

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

Строка табличной части удаляется клавишей Delete и фиксируется записью документа. Объект в журнале или списке сначала помечается на удаление, а удаляется окончательно через специальную обработку с контролем ссылок. Перед массовыми или необратимыми удалениями делайте резервную копию базы.

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

Почему в 1С нельзя удалить документ сразу, а только пометить?

Это защитный механизм платформы. Пометка на удаление обратима, а физическое удаление — нет. Кроме того, перед окончательным удалением система проверяет ссылки: если на документ ссылаются другие объекты (например, счёт-фактура ссылается на реализацию), удаление будет заблокировано, что предотвращает появление «битых» ссылок в базе.

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

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

Как восстановить случайно удалённую строку документа?

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

Кнопка удаления серая и не нажимается. В чём причина?

Обычно это недостаток прав пользователя на изменение объекта или установленная дата запрета редактирования данных. Также команда может быть заблокирована статусом документа (например, «Согласован») или тем, что строка добавлена обменом данными. Обратитесь к администратору 1С для проверки прав и настроек.

Чем отличается «Удалить» от «Очистить» в табличной части?

«Удалить» убирает только выделенную строку (или несколько выделенных). «Очистить» удаляет все строки табличной части целиком. Перед нажатием «Очистить» убедитесь, что вам действительно нужно удалить всё содержимое таблицы.

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

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