Удаление номенклатуры в 1С — казалось бы, простая операция, но при неверном подходе она может обернуться потерей связей в документах, ошибками при проведении или даже невозможностью восстановления критически важных данных. Особенно актуальна эта проблема для компаний с большой базой товаров, где ошибочное удаление позиций приводит к сбоям в отчетности и учете. В этой статье разберем все доступные способы удаления — от стандартного интерфейса до программных методов, а также расскажем, как минимизировать риски и что делать, если номенклатура уже удалена.
Важно понимать: процедура отличается в зависимости от конфигурации 1С (УТ 11, ERP, КА 2, Бухгалтерия 3.0) и прав пользователя. Например, в 1С:Управление торговлей удаление номенклатуры может быть заблокировано, если позиция используется в документах, а в 1С:Бухгалтерии — требует предварительной проверки связей. Мы рассмотрим универсальные решения и нюансы для популярных редакций.
1. Когда можно удалять номенклатуру, а когда нельзя
Прежде чем нажимать «Удалить», проверьте 4 критических условия, при которых удаление запрещено или нежелательно:
- 📄 Позиция используется в проведенных документах (накладные, счета, акты). В этом случае 1С заблокирует удаление или предложит пометить на удаление.
- 🔄 Номенклатура входит в серии, характеристики или комплекты. Удаление может нарушить структуру связанных элементов.
- 📊 Данные по товару попали в регламентированную отчетность (налоговые декларации, бухгалтерский баланс). Удаление приведет к расхождениям.
- 🔒 У пользователя недостаточно прав доступа. Например, в 1С:ERP удалять номенклатуру может только администратор или ответственный за справочники.
Если хотя бы одно из условий выполняется, лучше использовать альтернативные методы: пометку на удаление, архивирование или перенос в неактивные группы. О них подробнее расскажем в разделе 5.
⚠️ Внимание: В конфигурациях с включенным режимом управленческого учета (например, 1С:ERP 2.5) удаление номенклатуры может автоматически корректировать остатки по складам. Перед операцией сделайте резервную копию базы!
2. Стандартное удаление через интерфейс 1С
Самый простой способ — удаление непосредственно из справочника Номенклатура. Подходит для позиций, которые не используются в документах и не имеют связей. Инструкция:
- Откройте справочник
Номенклатурачерез менюСправочники → Товары (номенклатура). - Найдите нужную позицию с помощью фильтра или поиска (сочетание клавиш
Ctrl+F). - Выделите строку и нажмите
Delили кнопку «Удалить» на панели инструментов. - Подтвердите действие в диалоговом окне.
Если кнопка «Удалить» неактивна, значит номенклатура защищена от удаления. В этом случае:
- 🔍 Проверьте, не используется ли позиция в документах (кнопка «Где используется» в карточке номенклатуры).
- 👥 Убедитесь, что у вашей роли достаточно прав (меню
Администрирование → Пользователи). - 🔄 Попробуйте пометить на удаление (раздел 3).
Номенклатура не используется в документах
Есть права на удаление
Сделана резервная копия базы
Проверены связи с характеристиками/сериями
-->
3. Пометка на удаление: когда и как использовать
Если 1С блокирует обычное удаление, система предлагает пометить позицию на удаление. Это означает, что:
- 🗑️ Номенклатура исчезнет из списков, но останется в базе.
- 🔄 Ее можно будет восстановить через журнал удаленных объектов.
- 📊 В отчетах позиция будет отображаться как неактивная (если не настроен фильтр).
Как пометить на удаление:
- Откройте карточку номенклатуры двойным кликом.
- Нажмите кнопку «Еще» (или «Действия») → «Пометить на удаление».
- Подтвердите действие.
Чтобы полностью удалить помеченную позицию, нужно:
- Перейти в
Администрирование → Обслуживание → Удаление помеченных объектов. - Выбрать тип объектов «Номенклатура».
- Нажать «Удалить помеченные».
⚠️ Внимание: В 1С:УТ 11.4 и новее при массовом удалении помеченных объектов система может запросить подтверждение по каждому элементу. Отключить это можно в настройках обслуживания.
Что будет, если не удалять помеченные объекты?
Помеченные на удаление позиции продолжают занимать место в базе данных и могут замедлять работу системы, особенно при большом количестве (тысячи записей). Кроме того, они отображаются в некоторых отчетах (например, «Анализ номенклатуры»), если не настроен фильтр по активности. Рекомендуется периодически (раз в квартал) очищать помеченные объекты.
4. Программное удаление через обработки и запросы
Для опытных пользователей и администраторов доступны программные методы удаления, которые позволяют:
- 🤖 Автоматизировать массовое удаление.
- 🔍 Удалять номенклатуру по сложным критериям (например, неиспользуемые более года позиции).
- 🛠️ Обходить некоторые ограничения стандартного интерфейса.
Пример кода для удаления номенклатуры через внешнюю обработку (подходит для 1С:Предприятие 8.3):
Процедура УдалитьНоменклатуру(СсылкаНаОбъект)
Если НЕ СсылкаНаОбъект.Ссылка.Пустая() Тогда
Попытка
СсылкаНаОбъект.УстановитьПометкуУдаления(Истина);
Сообщить("Номенклатура помечена на удаление: " + СсылкаНаОбъект.Наименование);
Исключение
Сообщить("Ошибка: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Для массового удаления по условию (например, номенклатура без движений за последний год) используйте запрос:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.ПометкаУдаления
| И НЕ СУЩЕСТВУЕТ (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДвиженияНоменклатуры.Номенклатура КАК Номенклатура
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Движения КАК ДвиженияНоменклатуры
| ГДЕ
| ДвиженияНоменклатуры.Период > &ДатаНачалаГода
| )";
Запрос.УстановитьПараметр("ДатаНачалаГода", НачалоГода(ТекущаяДата()));
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
УдалитьНоменклатуру(Выборка.Ссылка);
КонецЦикла;
⚠️ Внимание: Программное удаление может нарушить целостность данных, если не учтены все связи. Перед выполнением скрипта обязательно протестируйте его на копии базы!
Для массовых операций используйте режим отладки (Ctrl+Alt+F12) в 1С, чтобы отследить возможные ошибки до применения изменений.
5. Альтернативные методы: архивирование и перенос
Если удаление невозможно или нежелательно, рассмотрите 3 альтернативных подхода:
| Метод | Преимущества | Недостатки | Когда использовать |
|---|---|---|---|
| Перенос в архивную группу | Сохраняет историю, не ломает связи в документах | Загромождает справочник, требует настройки фильтров | Для временно неиспользуемой номенклатуры |
| Пометка как неактивная | Исключает из отчетов, но сохраняет в базе | Может отображаться в некоторых аналитиках | Для сезонных товаров или устаревших позиций |
| Замена на аналогичную номенклатуру | Сохраняет целостность документов | Требует ручной обработки связей | При ребрендинге или смене артикулов |
Как перенести номенклатуру в архивную группу:
- Создайте группу «Архив» в справочнике
Номенклатура. - Выделите нужные позиции и перетащите их в группу мышью или используйте
Действия → Переместить в группу. - Настройте права доступа так, чтобы обычные пользователи не видели архив (меню
Администрирование → Настройка прав).
Для пометки как неактивной:
- Откройте карточку номенклатуры.
- Снимите флаг «Активна» (вкладка «Основное» или «Дополнительно», в зависимости от конфигурации).
- Сохраните изменения.
Архивирование — самый безопасный способ "удалить" номенклатуру без риска потери данных. Используйте его для позиций, которые могут понадобиться в будущем (например, для анализа продаж за прошлые периоды).
6. Восстановление удаленной номенклатуры
Если номенклатура была удалена ошибочно, ее можно восстановить 3 способами:
- 🗑️ Через журнал удаленных объектов (если позиция была помечена на удаление, но не удалена окончательно):
Администрирование → Обслуживание → Журнал удаленных объектов
- Восстановите базу из бэкапа на тестовом сервере.
- Экспортируйте нужную номенклатуру через
Файл → Экспорт данных. - Импортируйте ее в рабочую базу.
Если номенклатура была полностью удалена (не через пометку), восстановить ее можно только из резервной копии. В этом случае:
- Свяжитесь с администратором 1С или IT-отделом для восстановления бэкапа.
- Укажите точную дату, когда позиция еще существовала в базе.
- После восстановления экспортируйте номенклатуру и перенесите ее в актуальную базу.
⚠️ Внимание: В 1С:Cloud и некоторых версиях 1С:ERP журнал удаленных объектов хранится ограниченное время (по умолчанию — 30 дней). После этого восстановление возможно только из резервной копии.
7. Частые ошибки и как их избежать
При удалении номенклатуры пользователи часто сталкиваются с 5 типичными проблемами:
| Ошибка | Причина | Решение |
|---|---|---|
Номенклатура используется в документах |
Позиция есть в проведенных накладных, счетах или актах | Используйте пометку на удаление или архивирование |
Недостаточно прав |
У пользователя нет роли «Администратор» или «Редактор справочников» | Обратитесь к администратору за расширением прав |
Номенклатура входит в серию/характеристику |
Позиция связана с дополнительными аналитиками | Сначала удалите связи в справочниках Серии номенклатуры или Характеристики |
Ошибка блокировки данных |
База заблокирована другим пользователем или процессом | Закройте все сеансы 1С и повторите попытку |
Не удается удалить группу номенклатуры |
В группе есть вложенные элементы | Сначала перенесите или удалите все позиции внутри группы |
Чтобы избежать ошибок:
- 🔍 Всегда проверяйте связи через кнопку «Где используется» в карточке номенклатуры.
- 📅 Удаляйте позиции в нерабочее время, когда в базе минимальное количество пользователей.
- 📋 Ведите журнал изменений (например, в 1С:Документооборот), где фиксируйте, какую номенклатуру и почему удаляете.
Большинство ошибок при удалении номенклатуры связано с игнорированием проверки связей. Всегда используйте инструмент «Где используется» (Ctrl+Alt+F7) перед удалением!
FAQ: Ответы на частые вопросы
Можно ли удалить номенклатуру, если она есть в закрытом периоде?
Нет, если номенклатура используется в проведенных документах закрытого периода (например, в накладных за прошлый год), 1С заблокирует удаление. В этом случае:
- Используйте пометку на удаление.
- Перенесите позицию в архивную группу.
- Если необходимо полностью удалить — сначала переоткройте период (меню
Администрирование → Настройка учета → Периоды), но это может потребовать согласования с бухгалтерией.
Как массово удалить неиспользуемую номенклатуру?
Для массового удаления:
- Сформируйте отчет «Анализ номенклатуры» с фильтром по дате последнего движения (например, старше 2 лет).
- Экспортируйте список в Excel и отметьте позиции для удаления.
- Используйте внешнюю обработку (пример кода в разделе 4) или стандартный механизм пометки на удаление для выбранных позиций.
Для 1С:УТ 11 и ERP есть готовые обработки на Инфостарте, например, «Массовое удаление неиспользуемой номенклатуры».
Что делать, если после удаления номенклатуры перестали проводиться документы?
Это означает, что удаленная позиция была связана с другими элементами (характеристиками, сериями, комплектами). Чтобы исправить:
- Восстановите номенклатуру из резервной копии или журнала удаленных объектов.
- Проверьте цепочку связей через отчет «Анализ связей объектов» (
Администрирование → Обслуживание). - Если восстановление невозможно — создайте новую номенклатуру с теми же реквизитами и вручную перенастройте связи в документах.
В будущем перед удалением всегда проверяйте зависимости через кнопку «Где используется» (Ctrl+Alt+F7).
Как удалить номенклатуру в 1С:Бухгалтерия 3.0?
В 1С:Бухгалтерия 3.0 удаление номенклатуры имеет особенности:
- Перейдите в
Справочники → Товары и услуги (номенклатура). - Если позиция используется в документах, система предложит только пометить на удаление.
- Для полного удаления сначала нужно удалить все движения по номенклатуре (перепровести документы с ее участием или создать корректировочные записи).
В этой конфигурации особенно важно проверять, не попала ли номенклатура в налоговые регистры (НДС, прибыль). Удаление таких позиций может привести к расхождениям в декларациях.
Можно ли удалить номенклатуру через SQL-запрос к базе 1С?
Технически да, но это крайне не рекомендуется. Прямое удаление через SQL (например, DELETE FROM Reference10 WHERE ...) нарушает целостность данных, так как:
- Не обновляются регистры накопления (остатки, движения).
- Не корректируются связи в документах.
- Может привести к ошибкам при проведении или открытии базы.
Если необходимо массовое удаление, лучше использовать внешние обработки или типовой функционал 1С с предварительной проверкой связей.