Удаление строк в таблицах 1С:Предприятие — одна из самых частых операций, с которой сталкиваются и обычные пользователи, и разработчики. Казалось бы, что может быть проще: выбрал строку, нажал Delete — и готово. Но на практике всё сложнее: платформа может выдавать ошибки из-за прав доступа, блокировок данных или особенностей конкретной конфигурации. В этой статье разберём все возможные способы удаления — от базовых до программных, — а также типичные проблемы и их решения.

Важно понимать, что процесс удаления зависит от типа таблицы: это может быть табличная часть документа, справочника, регистра сведений или даже динамический список в отчёте. Например, в табличной части документа строку часто можно удалить напрямую, а в регистре накопления потребуется корректировка движений. Мы рассмотрим универсальные методы, которые работают в большинстве конфигураций (1С:Бухгалтерия, 1С:ЗУП, 1С:УТ и др.), а также нюансы для конкретных случаев.

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

📊 Какой конфигурацией 1С вы чаще всего пользуетесь?
1С:Бухгалтерия
1С:Зарплата и Управление Персоналом
1С:Управление Торговлей
1С:ERP
Другая

1. Удаление строки вручную: базовый способ

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

  1. Откройте документ или справочник, в котором нужно удалить строку. Например, Документы → Реализация товаров или Справочники → Номенклатура.

  2. Найдите табличную часть (обычно она расположена в нижней части формы) и выделите строку, которую хотите удалить. Для выделения нескольких строк используйте клавишу Ctrl или Shift.

  3. Нажмите клавишу Delete на клавиатуре или выберите в контекстном меню (правая кнопка мыши) пункт Удалить.

  4. Подтвердите удаление в появившемся окне. В некоторых конфигурациях может потребоваться указать причину удаления.

Этот способ сработает, если:

  • 🔹 У вас есть права на редактирование документа или справочника.
  • 🔹 Строка не заблокирована другим пользователем или транзакцией.
  • 🔹 Конфигурация не запрещает удаление строк (например, в некоторых отраслевых решениях удаление разрешено только администратору).
💡

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

Частая ошибка: при попытке удаления строка как будто исчезает, но после сохранения документа снова появляется. Это означает, что платформа автоматически восстанавливает строку из-за связей с другими объектами (например, если по этой строке есть движения в регистрах). В таком случае потребуется удалить связанные данные или использовать программное удаление (см. раздел 4).

2. Удаление через контекстное меню и горячие клавиши

В 1С:Предприятие 8.3 и более новых версиях контекстное меню табличных частей расширено. Помимо стандартного Удалить, там могут быть дополнительные опции, например:

  • 📌 Удалить с контролем ссылок — проверяет, не используется ли строка в других документах.
  • 📌 Пометить на удаление — не удаляет сразу, а ставит пометку (полезно для массового удаления).
  • 📌 Удалить все строки — очищает табличную часть полностью.

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

Действие Клавиша/комбинация Примечание
Удалить выделенную строку Delete Работает в большинстве конфигураций
Удалить все строки табличной части Ctrl + Shift + Delete В некоторых конфигурациях требует подтверждения
Отменить удаление Ctrl + Z Работает до сохранения документа
Пометить на удаление Ctrl + Delete Включает режим пометки вместо полного удаления

Если горячие клавиши не срабатывают, проверьте настройки интерфейса: иногда они отключены в параметрах пользователя. Для этого перейдите в Сервис → Параметры → Настройки интерфейса и убедитесь, что опция Использовать горячие клавиши активна.

Почему не работает Delete?

В некоторых конфигурациях (например, в 1С:ERP) удаление строк заблокировано на уровне ролей. Также клавиша может не работать, если табличная часть открыта в режиме "только чтение" или если строка привязана к движениям регистров.

3. Массовое удаление строк: инструменты и ограничения

Когда нужно удалить много строк (например, очистить устаревшие записи в справочнике или исправить ошибочно загруженные данные), ручной метод становится неэффективным. В таких случаях используют:

  • 🔄 Групповое удаление через контекстное меню (пункт Удалить помеченные).
  • 📊 Обработки для массового удаления (например, Универсальная обработка удаления данных из стандартных поставок 1С).
  • 🤖 Программные методы (запросы или циклы на встроенном языке).

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

  1. Откройте обработку Администрирование → Поддержка и обслуживание → Удаление помеченных объектов.

  2. Выберите тип объекта (например, Документы.РеализацияТоваров).

  3. Установите фильтр по дате или другим реквизитам, чтобы точно определить, какие строки нужно удалить.

  4. Нажмите Выполнить и подтвердите удаление.

Сделать резервную копию базы|Проверить связи удаляемых данных с другими объектами|Убедиться, что нет активных пользователей в базе|Запустить тестовое удаление на копии базы-->

⚠️ Внимание: Массовое удаление может привести к нарушению целостности данных, если удаляемые строки связаны с движениями в регистрах или другими документами. Например, удаление строки в документе Поступление товаров без корректировки остатков приведёт к расхождению данных в регистре ТоварыНаСкладах.

Если вам нужно удалить строки в регистре сведений или регистре накопления, используйте обработку Корректировка регистров (доступна в меню Все функции). Она позволяет удалять записи с автоматическим пересчётом итогов.

4. Программное удаление строк на встроенном языке

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

// Получаем документ по ссылке

Док = Документы.РеализацияТоваров.НайтиПоНомеру("РТ-000123", Дата(2026, 05, 15));

// Проверяем, что документ найден

Если Док.Пустая() Тогда

Сообщить("Документ не найден!");

Возврат;

КонецЕсли;

// Получаем табличную часть "Товары"

ТабличнаяЧасть = Док.Товары;

// Ищем строку по определенному критерию (например, по номенклатуре)

Для Каждого Строка Из ТабличнаяЧасть Цикл

Если Строка.Номенклатура.Наименование = "Ноутбук Dell XPS 15" Тогда

// Удаляем строку

ТабличнаяЧасть.Удалить(Строка);

Сообщить("Строка удалена!");

Прервать;

КонецЕсли;

КонецЦикла;

// Сохраняем документ

Док.Записать();

Ключевые моменты при программном удалении:

  • 🔧 Всегда проверяйте, что объект не заблокирован другим пользователем (используйте Док.ПолученаСсылка()).
  • 🔧 Для удаления из регистров используйте объект РегистрСведенийМенеджер или РегистрНакопленияМенеджер.
  • 🔧 В транзакционных системах (например, 1С:ERP) оборачивайте удаление в транзакцию:
НачатьТранзакцию();

Попытка

// Код удаления

ЗафиксироватьТранзакцию();

Исключение

ОтменитьТранзакцию();

Сообщить("Ошибка: " + ОписаниеОшибки());

КонецПопытки;

⚠️ Внимание: При удалении строк из регистров сведений с периодичностью По регистратору платформа автоматически не пересчитывает итоги. Используйте метод ПересчитатьИтоги() для актуализации данных.

💡

Программное удаление позволяет обойти ограничения интерфейса, но требует знания встроенного языка и понимания структуры базы. Всегда тестируйте код на копии базы перед применением на рабочей системе.

5. Удаление строк с учётом прав доступа и блокировок

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

Документ заблокирован для изменения (пользователь: Иванов И.И., время: 10:30:45)

Как решить такие проблемы:

  • 🔐 Права доступа: Проверьте свою роль в Администрирование → Пользователи. Для удаления строк часто требуются права Редактирование или Полные права на объект.
  • 🔒 Блокировки: Если документ заблокирован, попробуйте:
    • 🔹 Дождаться, пока другой пользователь завершит работу.
    • 🔹 Использовать режим Монопольный доступ1С:Предприятие 8.3.20+ доступно через Файл → Режим работы).
    • 🔹 Обратиться к администратору для принудительного снятия блокировки.
  • 📜 Проведённые документы: Если строка принадлежит проведённому документу, сначала отмените проведение (Действия → Отменить проведение).

В некоторых конфигурациях (например, 1С:ЗУП) удаление строк в уже проведённых документах запрещено на уровне логики. В таком случае придётся:

  1. Создать документ корректировки (например, Корректировка записей регистров).

  2. Или ввести новый документ с обратными проводками (например, Сторно).

Как узнать, кто заблокировал документ?

В конфигураторе откройте Администрирование → Активные пользователи. Там отображаются все текущие сеансы и заблокированные объекты. Администратор может принудительно завершить сеанс другого пользователя через Все функции → Завершить сеанс.

6. Особенности удаления в разных конфигурациях 1С

Каждая конфигурация 1С:Предприятие имеет свои нюансы при удалении строк. Рассмотрим наиболее распространённые:

Конфигурация Особенности удаления Рекомендации
1С:Бухгалтерия 3.0 Удаление строк в проведённых документах требует отмены проведения. В регистрах бухгалтерии (например, Хозрасчетный) удаление записей может нарушить баланс. Используйте Корректировка записей или вводите сторнирующие документы.
1С:Зарплата и Управление Персоналом Удаление строк в документах начисления зарплаты (например, Начисление зарплаты) блокируется, если по ним уже сделаны выплаты. Сначала отмените выплаты, затем удаляйте строки.
1С:Управление Торговлей 11 В документах Реализация товаров и Поступление товаров удаление строк автоматически корректирует остатки, но может потребовать перепроведения документа. После удаления проверьте остатки через отчёт Ведомость по товарам.
1С:ERP 2.5 Удаление строк в производственных документах (например, Заказ на производство) требует согласования с планом-графиком. Используйте Корректировка плана производства перед удалением.

⚠️ Внимание: В конфигурациях с версионностью данных (например, 1С:Документооборот) удаление строк может создавать новые версии документов. Проверяйте историю изменений через Все действия → История изменений.

Если вы работаете с управляемыми формами (все современные конфигурации на платформе 8.3+), учтите, что некоторые табличные части могут быть Динамическими списками. В них удаление строк работает иначе: сначала строка помечается на удаление, а затем физически удаляется при записи документа. Пример:

// Для динамического списка

Строка.ПометкаУдаления = Истина;

Объект.Записать();

7. Типичные ошибки и их решения

При удалении строк в 1С пользователи часто сталкиваются с ошибками. Разберём самые распространённые:

  • 🚫 Ошибка: "Недостаточно прав для удаления"
    Причина: У пользователя нет роли с правом Удаление для данного объекта.
    Решение: Обратитесь к администратору для назначения прав или используйте учётную запись с полными правами.
  • 🚫 Ошибка: "Объект заблокирован для изменения"
    Причина: Документ или справочник открыт другим пользователем в монопольном режиме.
    Решение: Дождитесь разблокировки или завершите сеанс другого пользователя (только для администраторов).
  • 🚫 Ошибка: "Нельзя удалить строку, так как по ней есть движения"
    Причина: Строка связана с записями в регистрах (например, остатки товаров или расчёты с контрагентами).
    Решение: Отмените проведение документа или используйте Корректировку регистров.
  • 🚫 Ошибка: "Невозможно удалить строку, так как она используется в другом документе"
    Причина: На строку есть ссылка в связанных объектах (например, в Заказе покупателя или Счёте-фактуре).
    Решение: Найдите зависимые документы через отчёт Анализ ссылочной целостности (доступен в Все функции).

Если ошибка не устраняется, проверьте журнал регистрации (Администрирование → Журнал регистрации). Там можно найти подробное описание проблемы, включая стектрейс (для разработчиков).

💡

Чтобы избежать ошибок при удалении, всегда проверяйте связи объекта через отчёт Анализ ссылочной целостности. Он показывает, где именно используется удаляемая строка.

8. Альтернативные способы: когда удаление невозможно

Иногда удалить строку невозможно из-за логики конфигурации или ограничений платформы. В таких случаях используйте альтернативные методы:

  • 🔄 Сторнирование: Вместо удаления строки введите документ-сторно (например, Сторно начисления зарплаты). Это отменит эффект оригинальной строки без её физического удаления.
  • 📝 Корректирующие документы: Создайте новый документ с обратными проводками. Например, если нужно "удалить" строку поступления товара, оформите Возврат товара поставщику.
  • 🗑️ Архивация: Перенесите строку в архивный справочник или документ (если такая возможность предусмотрена в конфигурации).
  • 🔧 Изменение статуса: Вместо удаления пометьте строку как неактивную (например, установите реквизит Актуальность = Ложь).

В 1С:ERP и 1С:КА 2.4 для таких случаев предусмотрен механизм версионности: вместо удаления создаётся новая версия документа без проблемной строки. Это позволяет сохранить историю изменений и избежать нарушения ссылочной целостности.

Если ни один из методов не подходит, обратитесь к партнёру 1С или разработчику конфигурации. В некоторых отраслевых решениях (например, 1С:МедИнфо или 1С:Автосервис) удаление данных жёстко регламентировано и может требовать специальных обработок.

💡

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

FAQ: Частые вопросы по удалению строк в 1С

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

Если базу ещё не архивировали и не делали выгрузку/загрузку данных, восстановить строку можно через:

  • 🔙 Откат транзакции (если удаление было в рамках одной транзакции и база не сохранялась).
  • 🔙 Восстановление из резервной копии (требует помощи администратора).
  • 🔙 Просмотр истории изменений (в некоторых конфигурациях, например, 1С:Документооборот, ведётся журнал изменений).

Если строка была удалена давно, восстановить её можно только вручную — на основе сохранённых данных (например, из печатной формы документа).

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

Это происходит, если:

  • 🔄 Строка автоматически восстанавливается при записи документа (например, из-за обработчика события ПередЗаписью).
  • 🔄 В конфигурации настроено автозаполнение табличной части по какому-то правилу.
  • 🔄 Строка связана с движениями регистров, и платформа её восстанавливает для сохранения целостности данных.

Решение: проверьте логику заполнения табличной части в конфигураторе или обратитесь к разработчику.

Как удалить строку в таблице отчёта?

В динамических списках и отчётах (например, в Оборотно-сальдовой ведомости) строки нельзя удалить напрямую — они формируются по данным базы. Чтобы "удалить" строку из отчёта:

  1. Исправьте исходные данные (например, удалите или скорректируйте документ, который формирует эту строку).

  2. Используйте отбор в настройках отчёта, чтобы исключить ненужные строки.

  3. Если строка ошибочная, проверьте правила формирования отчёта в конфигураторе.

Можно ли удалить строку в регистре накопления без последствий?

Удаление строки в регистре накопления (например, ТоварыНаСкладах) всегда влияет на итоги. Чтобы избежать ошибок:

  • 📊 Используйте Корректировку регистров с флагом Пересчитывать итоги.
  • 📊 Перед удалением проверьте, как это повлияет на остатки, через отчёт Анализ субконто.
  • 📊 В 1С:Бухгалтерии для таких случаев предусмотрен документ Операция (бухгалтерский и налоговый учёт) с ручной корректировкой проводок.
Как удалить все строки в табличной части быстро?

Для массового удаления:

  1. Выделите все строки комбинацией Ctrl + A (если поддерживается).

  2. Нажмите Delete или выберите в контекстном меню Удалить все строки.

  3. Для программного удаления используйте цикл:

ТабличнаяЧасть.Очистить();

В некоторых конфигурациях (например, 1С:УТ 11) для массового удаления есть специальная обработка Очистка табличных частей.