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

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

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

1. Когда можно удалить строку номенклатуры, а когда нельзя

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

  • 📄 Документах (реализация, поступление, инвентаризация, заказы клиентов).
  • 📊 Регистрах накопления (остатки товаров, себестоимость).
  • 🔗 Других справочниках (например, как компонент в номенклатурных наборах или комплектах).
  • 💰 Бухгалтерских проводках (если номенклатура участвовала в операциях).

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

📊 Как часто вы удаляете номенклатуру в 1С?
Регулярно (раз в неделю)
Иногда (раз в месяц)
Редико (раз в квартал)
Никогда не удаляю

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

⚠️ Внимание: В 1С:Бухгалтерии 3.0 удаление номенклатуры, использовавшейся в закрытых периодах, может привести к расхождению данных в отчётах Анализ счёта и Оборотно-сальдовая ведомость. Перед удалением проверьте настройки учёта в разделе Администрирование → Настройки программы → Учётная политика.

2. Способ 1: Удаление через интерфейс 1С (ручной метод)

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

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

  1. Откройте справочник Номенклатура через меню Справочники → Товары (номенклатура).
  2. Найдите нужную строку с помощью поиска (Ctrl+F) или фильтров.
  3. Выделите строку и нажмите Delete или кнопку Удалить на панели инструментов.
  4. Подтвердите действие в диалоговом окне.

Если кнопка Удалить неактивна, значит, номенклатура используется в базе. В этом случае 1С предложит пометить на удаление (об этом — в следующем разделе).

Номенклатура не используется в документах

Нет остатков на складах

Позиция не входит в комплекты или наборы

Нет ссылок в регистрах учёта-->

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

3. Способ 2: Пометка на удаление — когда прямое удаление невозможно

Если номенклатура используется в документах или регистрах, 1С заблокирует её удаление. В этом случае система предложит пометить объект на удаление. Это означает, что:

  • 🗑️ Строка останется в базе, но будет скрыта в интерфейсе (если не включен режим показа помеченных объектов).
  • 🔄 Данные о номенклатуре сохранятся в истории (её можно будет восстановить).
  • ⚠️ В некоторых отчётах (например, Анализ продаж) позиция может продолжать отображаться.

Как пометить на удаление:

  1. Откройте карточку номенклатуры двойным кликом.
  2. В меню Действия выберите Пометить на удаление.
  3. Подтвердите действие.

Чтобы полностью удалить помеченную номенклатуру, нужно:

  1. Запустить Администрирование → Поддержка и обслуживание → Тестирование и исправление.
  2. Выбрать Удаление помеченных объектов и выполнить операцию.
Что будет, если не удалять помеченные объекты?

Помеченные на удаление объекты занимают место в базе и могут замедлять её работу, особенно если их тысячи. Кроме того, они продолжают участвовать в некоторых отчётах (например, в Остатки товаров при включении галочки "Показывать помеченные на удаление"). Регулярная очистка базы от ненужных помеченных объектов — часть технического обслуживания 1С.

Нюанс для ERP-систем: В 1С:ERP пометка на удаление может заблокировать операции, связанные с планированием закупок или производством, если номенклатура включена в планы. Перед пометкой проверьте разделы Производство → Планы и Закупки → Заказы поставщикам.

4. Способ 3: Программное удаление через код (для разработчиков)

Если нужно удалить много строк или автоматизировать процесс, используйте встроенный язык 1С. Ниже приведён пример кода для удаления номенклатуры с проверкой связей.

Пример кода для удаления одной позиции:

Процедура УдалитьНоменклатуру(СсылкаНаНоменклатуру)

Если Номенклатура.Ссылка.Пустая() Тогда

Возврат;

КонецЕсли;

// Проверяем, используется ли номенклатура в документах

Если Номенклатура.Ссылка.ИспользуетсяВДокументах() Тогда

Сообщить("Номенклатура используется в документах! Удаление невозможно.");

Возврат;

КонецЕсли;

// Пытаемся удалить

Попытка

Номенклатура.Ссылка.Удалить();

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

Исключение

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

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

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

Для массового удаления можно использовать следующий код (с осторожностью!):

Процедура МассовоеУдалениеНоменклатуры()

Выборка = Справочники.Номенклатура.Выбрать();

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

Если НЕ Выборка.Ссылка.ИспользуетсяВДокументах() Тогда

Попытка

Выборка.Ссылка.Удалить();

Исключение

Продолжить;

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

КонецЕсли;

КонецЦикла;

Сообщить("Удаление завершено!");

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

Предупреждение: Массовое удаление может заблокировать базу на длительное время. Выполняйте его в нерабочие часы или на тестовой копии. Для больших баз (более 10 000 позиций) лучше использовать фоновые задания.

💡

Перед массовым удалением сделайте резервную копию базы через Администрирование → Выгрузка/загрузка данных. В случае ошибки вы сможете быстро восстановить данные.

5. Способ 4: Перенос в архив вместо удаления

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

Как создать архивный раздел:

  1. Откройте справочник Номенклатура.
  2. В дереве групп создайте новую группу (например, Архив 2026).
  3. Перенесите ненужные позиции в эту группу вручную или с помощью обработки.
  4. Настройте права доступа так, чтобы пользователи не могли случайно использовать архивные позиции (в Администрирование → Настройки пользователей).

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

Критерий Удаление Архивирование
Сохранение истории ❌ Удаляется навсегда ✅ Сохраняется
Влияние на отчёты ❌ Может исказить данные ✅ Не влияет
Возможность восстановления ❌ Только из резервной копии ✅ Можно вернуть в основной справочник
Скорость операции ✅ Быстро ✅ Быстро

В 1С:УТ 11 и 1С:ERP можно автоматизировать архивирование с помощью регламентного задания. Например, переносить в архив позиции, которые не использовались более года.

6. Способ 5: Использование обработок для очистки связей

Если номенклатура используется в документах, но вы всё равно хотите её удалить, придётся сначала очистить связи. Для этого можно:

  • 🔄 Перепровести документы с заменой номенклатуры на другую.
  • 🧹 Использовать специализированные обработки (например, "Поиск и замена ссылок" или "Очистка базы").
  • 📝 Вручную исправить регистры (только для опытных пользователей!).

Пример обработки для замены номенклатуры в документах:

Процедура ЗаменитьНоменклатуруВДокументах(СтараяНоменклатура, НоваяНоменклатура)

// Получаем все документы, где используется старая номенклатура

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Документ.Ссылка КАК Ссылка

|ИЗ

| Документ.РеализацияТоваровУслуг КАК Документ

|ГДЕ

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

Запрос.УстановитьПараметр("Ссылка", СтараяНоменклатура);

Результат = Запрос.Выполнить();

// Проходим по всем найденным документам и заменяем номенклатуру

Выборка = Результат.Выбрать();

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

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

Для Каждого СтрокаТовары Из Док.Товары Цикл

Если СтрокаТовары.Номенклатура = СтараяНоменклатура Тогда

СтрокаТовары.Номенклатура = НоваяНоменклатура;

КонецЕсли;

КонецЦикла;

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

КонецЦикла;

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

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

⚠️ Внимание: Очистка связей вручную или через обработки может нарушить целостность данных, если не учесть все зависимости. Например, в 1С:ERP замена номенклатуры в документе Заказ клиента не всегда автоматически обновляет связанный Документ реализации. Проверяйте связанные объекты вручную!

7. Типичные ошибки и как их избежать

Даже опытные пользователи 1С допускают ошибки при удалении номенклатуры. Вот самые распространённые:

  • 🚫 Удаление без проверки остатков — приводит к отрицательным остаткам на складах.
  • 🔄 Игнорирование пометки на удаление — помеченные объекты продолжают занимать место в базе.
  • 📉 Удаление в рабочее время — блокирует работу других пользователей.
  • 🔍 Неполная очистка связей — номенклатура остаётся в регистрах, что искажает отчёты.

Как избежать проблем:

  1. Всегда делайте резервную копию перед массовыми операциями.
  2. Используйте тестовую базу для отработки сценариев.
  3. Проверяйте логи транзакций после удаления (в Администрирование → Журнал регистрации).

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

💡

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

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

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

Нет, в большинстве конфигураций (например, 1С:Бухгалтерия 3.0) это приведёт к ошибкам при формировании регламентированной отчётности. Лучше пометить её на удаление или перенести в архив. Если необходимо полностью удалить, предварительно переоткройте период в настройках учёта (раздел Администрирование → Настройки программы → Учётная политика).

Как узнать, в каких документах используется номенклатура?

Откройте карточку номенклатуры, перейдите на закладку Связи или используйте отчёт Анализ использования объекта (доступен в некоторых конфигурациях через Все функции → Стандартные отчёты). Также можно выполнить запрос:

ВЫБРАТЬ

Документ.Вид() КАК ВидДокумента,

Документ.Ссылка КАК Ссылка

ИЗ

Документ КАК Документ

ГДЕ

Документ.Ссылка В (

ВЫБРАТЬ

Документ.Ссылка

ИЗ

Документ.РеализацияТоваровУслуг КАК Документ

ГДЕ

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

)

Что делать, если при удалении появляется ошибка "Объект используется"?

Эта ошибка означает, что номенклатура связана с другими объектами. Варианты решений:

  1. Используйте пометку на удаление.
  2. Найдите и удалите все ссылки вручную (через отчёт Анализ связей).
  3. Замените номенклатуру на другую в связанных документах (см. раздел про обработки).

В 1С:УТ 11 для поиска связей можно использовать обработку "Поиск и замена значений" из стандартного набора.

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

Чтобы восстановить помеченную номенклатуру:

  1. Включите отображение помеченных объектов в настройках справочника (галочка Показывать помеченные на удаление).
  2. Найдите нужную строку, откройте её карточку.
  3. В меню Действия выберите Снять пометку удаления.

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

Можно ли удалить номенклатуру через SQL-запрос к базе?

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

Пример опасности: удаление строки из таблицы SC{ГУИД} (где хранятся справочники) без очистки регистров приведёт к обрыву ссылок и ошибкам при проведении документов.