Справочники и Данные · 9 мин
Как очистить номенклатуру в 1С
Как очистить номенклатуру в 1С: пометка на удаление, обработка дублей, групповая обработка справочника, контроль ссылок и типичные ошибки при чистке базы.
Разросшийся справочник номенклатуры — типичная проблема баз 1С, которые ведутся несколько лет. В нём накапливаются дубли товаров, позиции с опечатками, тестовые элементы и карточки, загруженные из старых прайсов. Это замедляет подбор товара в документах, искажает отчёты по остаткам и повышает риск ошибок при выписке счетов.
Очистить номенклатуру в 1С можно тремя способами: пометить ненужные элементы на удаление и удалить их штатной обработкой, объединить дубли через поиск и замену значений, либо выполнить групповую обработку справочника. Выбор зависит от того, есть ли по позициям движения в документах и насколько велика база.
Перед любыми действиями обязательно сделайте резервную копию информационной базы. Удаление элементов справочника — необратимая операция, и если по ошибке удалить позицию, использованную в документах, восстановить данные можно будет только из копии.
Определите, какие позиции подлежат очистке
Прежде чем удалять, сформируйте список кандидатов. Как правило, в него попадают позиции без движений за длительный период, дубли с похожими наименованиями, тестовые элементы и карточки с пустыми реквизитами. Универсального признака «мусорной» позиции нет — критерии определяет учётная политика компании.
Для анализа используйте отчёт «Остатки товаров на складах» или универсальный отчёт по регистрам накопления: отберите номенклатуру, по которой не было оборотов за выбранный период. Дополнительно проверьте позиции с нулевой ценой и незаполненной единицей измерения — это частый признак неполноценной карточки.
Проверьте отчётом по регистрам накопления
Запустите поиск дублей по наименованию и артикулу
Отберите списком с отбором по пустым реквизитам
Сделайте резервную копию перед очисткой
Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытых сеансах пользователей или выполнить выгрузку через конфигуратор: меню «Администрирование» → «Выгрузить информационную базу». Для клиент-серверной базы средствами СУБД создайте бэкап через SQL Server Management Studio или pg_dump для PostgreSQL.
Проверьте, что копия открывается: загрузите её в тестовую базу и убедитесь, что справочник на месте. Именно на тестовой копии стоит сначала отработать всю процедуру очистки, особенно если удаляются тысячи позиций.
Пометьте ненужные позиции на удаление
Откройте справочник «Номенклатура», выделите позиции и нажмите клавишу Delete или кнопку «Пометить на удаление» в меню «Ещё». Для массового выделения используйте отбор по условиям — например, по группе «Архив» или по дате создания.
Если позиций много, удобнее групповая обработка: «Администрирование» → «Обслуживание» → «Корректировка данных» → «Групповое изменение реквизитов» (в типовых конфигурациях на базе БСП). Выберите справочник номенклатуры, задайте отбор и в списке действий установите пометку удаления.
- 1Сделайте резервную копию базы
- 2Отберите кандидатов на удаление отчётом по движениям
- 3Пометьте позиции на удаление вручную или групповой обработкой
- 4Запустите «Удаление помеченных объектов» в монопольном режиме
- 5Просмотрите список объектов, мешающих удалению
- 6Проверьте справочник и отчёты после удаления
Выполните удаление помеченных объектов
Перейдите в раздел «Администрирование» → «Обслуживание» → «Удаление помеченных объектов». Операция требует монопольного доступа: все пользователи должны выйти из базы, а регламентные задания — быть отключены или завершены.
Выберите режим «Выборочное удаление», чтобы контролировать список, или «Автоматическое удаление всех помеченных объектов». После анализа программа покажет, какие объекты удалить нельзя, потому что на них ссылаются другие данные. Такие позиции останутся помеченными — их можно либо оставить в базе с пометкой (она не влияет на проведение), либо сначала устранить ссылки.
Объедините дубли номенклатуры
Дубли удалять напрямую нельзя, если по ним есть документы: сначала ссылки нужно перенести на «правильную» позицию. В типовых конфигурациях для этого служит обработка «Поиск и удаление дублей» («Администрирование» → «Обслуживание» → «Корректировка данных»).
Задайте правила поиска: совпадение по наименованию, артикулу, штрихкоду или комбинации полей. Обработка покажет группы дублей; для каждой группы выберите основной элемент и выполните замену. Все документы, цены и штрихкоды будут перепривязаны к основной позиции, а дубли — помечены на удаление.
Способы очистки номенклатуры
Подходит для десятков позиций; неудобна при больших объёмах
Быстрая массовая пометка по отбору; требует аккуратности с условиями отбора
Единственный безопасный способ убрать дубли с движениями; работает медленно на больших базах
Гибкие критерии и пакетное удаление; требует навыков разработки и тестирования на копии
Групповая обработка и программное удаление
Когда штатных средств не хватает — например, нужно очистить реквизиты у тысяч позиций или пометить элементы по сложному условию — применяют обработку «Групповое изменение реквизитов» с произвольным алгоритмом либо внешнюю обработку с кодом на встроенном языке.
Типовой фрагмент пометки на удаление выглядит так:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура
|ГДЕ НЕ ПометкаУдаления И Родитель = &Группа";
Запрос.УстановитьПараметр("Группа", ГруппаАрхив);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);
КонецЦикла;
Такой код запускайте только на копии базы и только если понимаете его логику. Ошибка в условии отбора пометит лишние позиции, и откатить это без резервной копии будет невозможно.
Проверьте результат после очистки
После удаления откройте справочник и включите отображение помеченных объектов: они не должны остаться, если удаление прошло полностью. Сформируйте отчёт по остаткам и проверьте, что в нём нет строк с «Объект не найден».
Дополнительно запустите «Тестирование и исправление» информационной базы с проверкой ссылочной целостности — это выявит скрытые битые ссылки. Если база файловая, после удаления большого объёма данных выполните сжатие таблиц, чтобы файл физически уменьшился.
Как проверить результат
Нет лишних и помеченных позиций
Остались дубли или объекты с пометкой удаления
Все товарные строки открываются корректно
Появились записи «Объект не найден»
Тестирование и исправление без ошибок
Ошибки нарушения целостности в протоколе
Частые вопросы об очистке номенклатуры
Можно ли удалить номенклатуру, по которой есть документы?
Штатно — нет: обработка удаления откажет из-за ссылок. Варианты: перенести ссылки на другую позицию через поиск дублей, оставить позицию помеченной (она не мешает работе) либо сначала свернуть базу по остаткам, после чего старые документы перестанут ссылаться на товар.
Чем пометка на удаление отличается от физического удаления?
Пометка — это флаг в данных: элемент скрывается из подбора, но хранится в базе. Физическое удаление происходит только в обработке «Удаление помеченных объектов» при монопольном доступе.
Уменьшится ли размер базы после удаления позиций?
Не сразу. Для файловой базы нужно выполнить тестирование и исправление с включённым сжатием таблиц. В клиент-серверных базах место освобождается средствами СУБД — shrink для MS SQL или vacuum для PostgreSQL.
Как найти дубли, если наименования написаны по-разному?
В обработке поиска дублей используйте нечёткое сравнение по наименованию и точное совпадение по артикулу или штрихкоду. Дополнительно помогает предварительная нормализация: групповой обработкой убрать лишние пробелы и привести наименования к единому регистру.
Можно ли очистить номенклатуру без монопольного режима?
Пометить элементы на удаление можно при работающих пользователях. А вот физическое удаление помеченных объектов требует монопольного доступа — выполняйте его в нерабочее время.
Что делать с позициями, которые больше не используются, но удалить их нельзя?
Перенесите их в отдельную группу «Архив», снимите с них цены через закрытие установки цен и оставьте пометку удаления. В подборе такие позиции не будут мешать, а история документов останется целостной.
Что важно запомнить
Очистка номенклатуры в 1С строится по схеме: резервная копия → отбор кандидатов → пометка на удаление → удаление помеченных объектов в монопольном режиме → проверка ссылочной целостности. Дубли с движениями объединяйте обработкой поиска дублей, а не удаляйте напрямую.