Администрирование · 11 мин
Как убрать строки в 1С: пошаговые инструкции для документов, списков и кода
Как убрать строки в 1С: удаление строк в табличной части документа, списках справочников, пометка на удаление и программная очистка строк через запрос и код.
Убрать строку в 1С можно несколькими способами, и правильный выбор зависит от того, где именно находится строка: в табличной части документа, в списке справочника, в журнале документов или в результате запроса. Каждый случай имеет свои команды, горячие клавиши и ограничения, связанные с правами пользователя и ссылочной целостностью базы.
Чаще всего под «убрать строку» понимают удаление позиции из табличной части документа — например, лишний товар в реализации или услугу в акте. Это простая операция, доступная клавишей Delete или через контекстное меню. Сложнее обстоит дело с удалением элементов справочников и документов из списков: здесь работает механизм пометки на удаление, защищающий базу от потери связанных данных.
Отдельная задача — программное удаление строк из табличной части или таблицы значений в коде 1С. Это требуется разработчикам и администраторам при доработке обработок, очистке данных и автоматизации. Ниже разобраны все сценарии: от пользовательских действий мышью до методов встроенного языка.
Как убрать строку из табличной части документа
Табличная часть — это блок строк внутри документа: товары, услуги, оплаты. Чтобы убрать одну строку, установите курсор на неё и нажмите клавишу Delete. В управляемых формах (1С:Предприятие 8.3) также работает кнопка с крестиком на панели табличной части и пункт «Удалить» в контекстном меню по правой кнопке мыши.
Если кнопка удаления неактивна, проверьте состояние документа. В проведённом документе редактирование может быть заблокировано настройками прав или запретом изменения данных в закрытом периоде. В этом случае сначала распроведите документ командой «Провести» → «Отменить проведение» или убедитесь, что у вашей роли есть право изменения.
После удаления строки документ нужно записать и провести заново: иначе движения по регистрам останутся старыми, и в отчётах позиция будет учитываться, как будто строка на месте. Признак успешного результата — исчезнувшая строка в табличной части и обновлённая итоговая сумма документа.
- 1Откройте документ и найдите нужную табличную часть
- 2Выделите строку щелчком мыши
- 3Нажмите Delete или кнопку с крестиком на панели табличной части
- 4Подтвердите удаление, если программа задаст вопрос
- 5Запишите и проведите документ заново
Как удалить несколько строк сразу
Для массового удаления выделите группу строк: смежные строки — с зажатой клавишей Shift (клик по первой и последней), произвольные — с зажатой Ctrl. Затем нажмите Delete. Все выделенные строки будут удалены одной операцией.
Если нужно очистить табличную часть полностью, выделите все строки комбинацией Ctrl+A (работает не во всех конфигурациях) и нажмите Delete. В некоторых типовых документах есть отдельная команда «Очистить» в меню «Ещё» табличной части — она убирает все строки без выделения.
Полезная альтернатива удалению — отбор строк. Если табличная часть большая, а убрать нужно позиции по определённому признаку, сначала отсортируйте или отфильтруйте список по колонке, затем выделите нужный блок. Это снижает риск случайного удаления нужных строк.
Как убрать строку из списка справочника или журнала документов
В списках справочников и журналах документов Delete работает иначе: он не удаляет строку физически, а ставит пометку на удаление. Помеченный элемент остаётся в базе, но исключается из обычной работы — документы на него больше не ссылаются как на актуальный, хотя старые ссылки сохраняются.
Порядок действий: выделите строку в списке, нажмите Delete (или F8, в зависимости от конфигурации) и подтвердите пометку. Повторное нажатие снимает пометку — это удобно при ошибке. Помеченные элементы обычно отображаются с перечёркнутым значком или серым цветом.
Физическое удаление помеченных объектов выполняется отдельной операцией: «Администрирование» → «Обслуживание» → «Удаление помеченных объектов» (в некоторых конфигурациях путь — «Операции» → «Удаление помеченных объектов»). Программа проверит ссылочную целостность: если на элемент есть ссылки из других объектов, он не будет удалён, и система покажет список мешающих ссылок.
Почему строка не удаляется: типичные причины
Если клавиша Delete не срабатывает, причина почти всегда одна из четырёх. Первая — нехватка прав: у роли пользователя нет права «Удаление» или «Интерактивное удаление» на данный объект. Вторая — установлен запрет изменения данных в закрытом периоде, и документ попадает в этот период.
Третья причина — объект заблокирован другим пользователем или фоновым заданием. В клиент-серверном режиме попробуйте повторить действие позже или уточните у администратора, кто держит блокировку. Четвёртая — объект участвует в обмене данными, и конфигурация запрещает удаление объектов, полученных из другого узла.
Отдельный случай — предопределённые элементы справочников. Их нельзя удалить, потому что на них ссылается код конфигурации. Единственный вариант — не использовать элемент, скрыв его отбором или отключив видимость через функциональные опции, если конфигурация это поддерживает.
Проверьте роль пользователя и дату запрета изменения данных
Откройте список мест использования из окна удаления помеченных
Отмените проведение или проверьте активные сеансы
Программное удаление строк в коде 1С
Разработчикам строки удаляют методами встроенного языка. Для табличной части объекта используется метод Удалить() с указанием строки или её индекса. Типовой приём — цикл с обходом строк и удалением по условию, при этом обход ведут с конца, чтобы индексы не сдвигались.
// Удаление строк по условию с конца табличной части
Для Инд = 1 По Объект.Товары.Количество() Цикл
СтрокаТаб = Объект.Товары[Объект.Товары.Количество() - Инд];
Если СтрокаТаб.Количество = 0 Тогда
Объект.Товары.Удалить(СтрокаТаб);
КонецЕсли;
КонецЦикла;Для таблицы значений логика та же: метод Удалить(Строка) или очистка всей таблицы методом Очистить(). Если нужно убрать строки из результата запроса, эффективнее не удалять их постфактум, а сразу исключить в тексте запроса условием ГДЕ — это быстрее и проще для сопровождения.
Распространённая ошибка — удаление строк в прямом цикле «Для Каждого … Из … Цикл». При удалении текущей строки коллекция меняется, и обход ломается. Используйте обратный цикл по индексу либо соберите удаляемые строки в отдельный массив и удалите их после обхода.
Как убрать строки в отчётах и печатных формах
Если задача — убрать строки из отчёта СКД (например, скрыть пустые группировки), редактируются настройки отчёта: отборы, параметры группировок, условное оформление. В пользовательском режиме откройте «Ещё» → «Изменить вариант» и добавьте отбор, исключающий ненужные строки.
В печатных формах строки убираются правкой макета или условием вывода области в коде формирования. Например, пустую строку итогов не выводят, если сумма равна нулю. Такие изменения требуют доработки конфигурации или внешней печатной формы — последний вариант предпочтительнее, так как не нарушает поддержку типового решения.
Как выбрать действие
Частые ошибки при удалении строк
Самая частая ошибка — удаление строки без перепроведения документа. Визуально позиция исчезла, но движения по регистрам остались, и отчёты показывают старые данные. Всегда проверяйте, что документ после правки записан и проведён.
Вторая ошибка — попытка физически удалить объект, на который есть ссылки, в обход механизма контролируемого удаления, например прямыми обработками «удалить всё». Это приводит к битым ссылкам вида «Объект не найден» в документах и отчётах. Используйте только штатное удаление помеченных объектов с проверкой ссылок.
Третья типичная ситуация — удаление строк в документе прошлого периода без понимания последствий: меняются остатки, себестоимость и взаиморасчёты на все последующие даты. Перед правкой закрытого периода согласуйте это с бухгалтером и сделайте копию базы.
Как проверить результат
Строка исчезла, итоговая сумма пересчитана, документ проведён
Строка исчезла, но сумма и движения старые
На элементе стоит пометка, после контролируемого удаления элемент отсутствует
Элемент остался — значит, есть ссылки, список которых показала программа
Удалённая позиция не участвует в оборотах
Позиция видна в отчёте — документ не перепроведён
Подводя итог: в пользовательском режиме строки убираются клавишей Delete в табличных частях и пометкой на удаление в списках, с обязательным контролем ссылок при физическом удалении. В коде используются методы Удалить() и Очистить() с обратным циклом. Любые массовые операции и правки прошлых периодов выполняйте только после резервного копирования.
Что важно запомнить
Строка табличной части удаляется клавишей Delete с последующим перепроведением документа. Элемент списка — через пометку на удаление и штатное удаление помеченных объектов с проверкой ссылок. В коде строки удаляют методом Удалить() в обратном цикле. Перед массовыми удалениями и правкой закрытых периодов делайте резервную копию.
Часто задаваемые вопросы
Почему в списке справочника Delete не удаляет элемент окончательно?
Так устроен механизм защиты данных в 1С: Delete ставит только пометку на удаление. Физическое удаление выполняется отдельно через «Администрирование» → «Удаление помеченных объектов», где программа проверяет, нет ли на элемент ссылок из других объектов. Это предотвращает появление битых ссылок.
Как восстановить случайно удалённую строку документа?
Если документ ещё не записан после удаления, закройте его без сохранения — строка вернётся. Если документ уже записан и проведён, строку придётся добавлять заново вручную. Откатить одну операцию штатной кнопкой «Отменить» в 1С нельзя, журнал регистрации лишь фиксирует факт изменения, но не восстанавливает данные.
Что делать, если объект помечен, но не удаляется из-за ссылок?
В окне удаления помеченных объектов откройте список мест использования — программа покажет все документы и записи, ссылающиеся на элемент. Варианты: заменить элемент в этих объектах на другой, пометить ссылающиеся объекты на удаление тоже или оставить элемент помеченным — работе он не мешает.
Можно ли запретить пользователям удалять строки и документы?
Да. В правах роли снимите флажки «Удаление» и «Интерактивное удаление» для нужных объектов — пользователь сможет только помечать на удаление или не сможет даже этого, в зависимости от настройки. Дополнительно используется дата запрета изменения данных, которая блокирует правки закрытых периодов для всех или выбранных пользователей.
Как удалить все строки табличной части программно одной командой?
Используйте метод Очистить(): например, Объект.Товары.Очистить(). Для таблицы значений метод аналогичный. Это быстрее и надёжнее цикла с удалением каждой строки. После очистки не забудьте записать объект, если работаете с данными документа.
Опасно ли удалять строки в документах прошлых месяцев?
Да. Изменение проведённого документа прошлого периода меняет движения по регистрам, что влияет на остатки, себестоимость, НДС и взаиморасчёты во всех последующих периодах. Перед такой правкой сделайте резервную копию, согласуйте изменение с ответственным бухгалтером и будьте готовы к перепроведению документов до текущей даты.