Удаление нескольких строк в 1С:Предприятие — рутинная задача, с которой сталкиваются бухгалтеры, кладовщики и администраторы баз. В зависимости от конфигурации (1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и Управление Персоналом) и версии платформы (8.3) способы массового удаления отличаются. Где-то достаточно стандартных инструментов интерфейса, а где-то потребуется написать запрос или даже программный код.

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

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

Самый очевидный способ — ручное удаление через интерфейс. Он подходит для небольшого количества строк (до 50-100) в табличных частях документов (Товары, Услуги, Сотрудники) или справочниках (Номенклатура, Контрагенты).

Как это сделать:

  • 📌 Откройте документ или справочник, где нужно удалить строки (например, Реализация товаров и услуг в 1С:УТ).
  • 🖱️ Выделите нужные строки мышью с зажатой клавишей Ctrl (для произвольного выбора) или Shift (для диапазона).
  • 🗑️ Нажмите Delete или правой кнопкой вызовите контекстное меню → Удалить.
  • 💾 Не забудьте сохранить документ (Ctrl+S), если работаете в режиме редактирования.
⚠️ Внимание: В некоторых конфигурациях (например, 1С:ERP) удаление строк в проведенных документах может блокироваться. В этом случае сначала снимите пометку проведения (Действия → Провести/Отменить проведение).
📊 Как часто вам приходится удалять строки в 1С?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не делал

Преимущества метода:

  • ✅ Не требует знаний программирования.
  • ✅ Визуальный контроль — вы видите, какие именно строки удаляете.
  • ✅ Подходит для разовых операций.

Недостатки:

  • ❌ Медленно при большом количестве строк (от 100+).
  • ❌ Риск случайного удаления — нет функции отмены после сохранения.

2. Массовое удаление через обработку «Групповое изменение реквизитов»

Если строк слишком много для ручного удаления, но вы не хотите писать код, используйте стандартную обработку «Групповое изменение реквизитов». Она есть во всех типовых конфигурациях (начиная с версии 8.3.10).

Пошаговая инструкция:

  1. Откройте список документов или справочник (например, Номенклатура).
  2. Выделите нужные элементы (можно использовать фильтр по реквизитам).
  3. Нажмите Ещё → Групповое изменение реквизитов.
  4. В открывшемся окне выберите действие Удалить помеченные объекты.
  5. Подтвердите удаление и дождитесь завершения операции.

Обратите внимание: обработка удаляет целые объекты (документы, элементы справочников), а не отдельные строки внутри них. Для удаления строк в табличных частях этот метод не подходит!

Отфильтруйте данные по критериям (дате, статусу, реквизиту)

Сделайте резервную копию базы (через Администрирование → Выгрузить информационную базу)

Проверьте, нет ли ссылок на удаляемые объекты в других документах

Закройте все сеансы пользователей (кроме своего)

-->

Конфигурация Поддерживается ли групповое удаление Ограничения
1С:Бухгалтерия 3.0 Да Не работает для строк в документах
1С:Управление торговлей 11 Да Требуются права администратора
1С:Зарплата и Управление Персоналом 3.1 Да Нельзя удалять проведенные документы
1С:ERP 2.5 Да Дополнительная проверка на связанные объекты

3. Удаление через запрос (для опытных пользователей)

Если нужно удалить строки по сложному условию (например, все товары с нулевым остатком или документы старше 5 лет), используйте запрос на языке 1С. Этот метод требует знаний SQL-подобного синтаксиса, но позволяет гибко фильтровать данные.

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

ВЫБРАТЬ

ПоступлениеТоваровУслуг.Ссылка КАК Ссылка

ИЗ

Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

ГДЕ

ПоступлениеТоваровУслуг.Дата < ДАТАВРЕМЯ(2020, 01, 01)

Чтобы выполнить удаление:

  1. Откройте Сервис → Запросы → Конструктор запросов.
  2. Вставьте свой запрос и нажмите Выполнить.
  3. Проверьте результат выборки — если данные корректны, добавьте оператор УДАЛИТЬ:
УДАЛИТЬ ИЗ Документ.ПоступлениеТоваровУслуг

ГДЕ Дата < ДАТАВРЕМЯ(2020, 01, 01)

⚠️ Внимание: Запросы с оператором УДАЛИТЬ необратимы! Перед выполнением сделайте резервную копию базы или протестируйте запрос на копии рабочей базы.
💡

Используйте конструкцию ПОМЕСТИТЬ ВТ_Удаляемые перед УДАЛИТЬ, чтобы сначала сохранить список удаляемых данных в временную таблицу и проверить её содержимое.

Преимущества метода:

  • 🎯 Точная фильтрация по любым реквизитам.
  • 🚀 Быстрота — обрабатывает тысячи строк за секунды.
  • 🔄 Можно использовать в регламентных заданиях для автоматической очистки.

4. Программное удаление с помощью скрипта

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

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

Процедура УдалитьСтрокиВДокументах()

Выборка = Документы.ПоступлениеТоваровУслуг.Выбрать();

Пока Выборка.Следующий() Цикл

Если Выборка.Дата < ТекущаяДата() - 365 * 3 Тогда // Удаляем документы старше 3 лет

Док = Выборка.ПолучитьОбъект();

Пока Док.Товары.Количество() > 0 Цикл

Док.Товары.Удалить(0);

КонецЦикла;

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

КонецЕсли;

КонецЦикла;

КонецПроцедуры

Как запустить скрипт:

  1. Откройте Файл → Новый → Внешняя обработка.
  2. Вставьте код в модуль обработки.
  3. Сохраните файл с расширением .epf.
  4. Запустите обработку через Файл → Открыть.
⚠️ Внимание: Скрипты, изменяющие данные, могут конфликтовать с блокировками других пользователей. Запускайте их в монопольном режиме (Администрирование → Регламентные задания → Запустить в монопольном режиме).
Что делать если скрипт зависает?

Если обработка долго выполняется (более 10 минут), проверьте:

1. Журнал регистрации (Администрирование → Журнал регистрации) на ошибки.

2. Блокировки объектов (Администрирование → Активные пользователи) — возможно, другой пользователь редактирует те же данные.

3. Объём транзакции — разбивайте удаление на пакеты по 100-200 документов за раз, чтобы избежать переполнения памяти.

5. Удаление через внешние обработки (например, «Универсальный отбор и обработка»)

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

  • 🛠️ «Универсальный отбор и обработка» (от 1С-Рарус) — позволяет гибко фильтровать и удалять данные без программирования.
  • 📊 «Групповая обработка справочников и документов» (от Инфостарт) — поддерживает сложные условия и логирование.
  • 🔍 «Поиск и замена данных» — полезна для очистки дублей.

Как работать с внешними обработками:

  1. Скачайте обработку с сайта Инфостарт или 1С-Софт (проверьте совместимость с вашей версией платформы!).
  2. Откройте её в через Файл → Открыть.
  3. Настройте фильтры (например, Дата < 01.01.2020 и Статус = "Закрыт").
  4. Выберите действие Удалить и запустите обработку.

Преимущества внешних обработок:

  • 🎛️ Гибкие настройки без программирования.
  • 📈 Поддержка больших объёмов данных (тестировано на базах с 1+ млн записей).
  • 📋 Логирование действий — можно отменить изменения, если что-то пошло не так.
💡

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

6. Особенности удаления в облачной версии 1С:Fresh

Если вы работаете в 1С:Fresh (облачная версия), учтите ограничения:

  • 🔒 Нет прямого доступа к базе данных — нельзя выполнять SQL-запросы или скрипты на сервере.
  • ⚙️ Ограничен функционал внешних обработок (только сертифицированные решения из 1С:АппСолutions).
  • 📤 Для массового удаления используйте выгрузку/загрузку данных через Администрирование → Выгрузка и загрузка данных.

Инструкция для 1С:Fresh:

  1. Выгрузите данные в файл .xml или .xlsx.
  2. Отредактируйте файл в Excel (удалите ненужные строки).
  3. Загрузите обратно через Администрирование → Загрузка данных.
⚠️ Внимание: В 1С:Fresh некоторые операции (например, удаление проведенных документов) могут требовать подтверждения от службы поддержки. Обращайтесь через Помощь → Техническая поддержка.

7. Как восстановить удалённые строки (если что-то пошло не так)

Если вы случайно удалили важные данные, попробуйте следующие способы восстановления:

Метод восстановления Когда работает Ограничения
Откат через журнал регистрации Если включено ведение журнала (Администрирование → Настройки программы → Журналы регистрации) Восстанавливает только последние изменения (глубина зависит от настроек)
Восстановление из резервной копии Если копия сделана до удаления Потеря всех изменений после создания копии
Использование обработки «Восстановление удалённых объектов» Для некоторых конфигураций (например, 1С:УТ) Не восстанавливает связанные данные (например, движения по регистрам)

Пошаговая инструкция для восстановления из резервной копии:

  1. Закройте всех пользователей в базе (Администрирование → Активные пользователи → Завершить сеансы).
  2. Сделайте текущую копию базы (Администрирование → Выгрузить информационную базу) на случай ошибок.
  3. Восстановите базу из резервной копии через Администрирование → Загрузить информационную базу.
  4. Проверьте целостность данных (Администрирование → Тестирование и исправление).

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

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

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

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

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

Используйте скрипт:

Процедура ОставитьОднуСтроку()

Док = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру("ПТ-000123");

Пока Док.Товары.Количество() > 1 Цикл

Док.Товары.Удалить(1); // Удаляем вторую строку (индексация с 0)

КонецЦикла;

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

КонецПроцедуры

Замените "ПТ-000123" на номер вашего документа.

Почему при удалении строки появляется ошибка «Объект используется»?

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

  • Товарная строка используется в документе Реализация.
  • Сотрудник привязан к кадровым документам.
  • Контрагент указан в договоре.

Решение: найдите все ссылки через Все функции → Поиск ссылок и сначала удалите или перенастройте зависимые объекты.

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

Используйте обработку «Поиск и удаление дублей» (доступна на Инфостарт). Или напишите запрос:

ВЫБРАТЬ РАЗЛИЧНЫЕ

Товары.Номенклатура КАК Номенклатура,

Товары.Количество КАК Количество

ИЗ

Документ.ПоступлениеТоваровУслуг.Товары КАК Товары

ГДЕ

Товары.Ссылка = &СсылкаНаДокумент

Затем сравните результат с оригинальной табличной частью и удалите лишние строки вручную или через скрипт.

Можно ли удалить строки в мобильной версии 1С?

В мобильном приложении функционал ограничен. Вы можете:

  • Удалять строки по одной в табличных частях.
  • Использовать отложенное удаление (пометка на удаление, которая синхронизируется с сервером).

Для массовых операций подключитесь к базе через 1С:Предприятие на ПК или используйте RDP-доступ к серверу.