При активной работе в программе 1С:Розница пользователи часто сталкиваются с ситуацией, когда справочник характеристик номенклатуры переполняется. Ошибочно созданные дубли, устаревшие размеры или цвета, которые больше не поставляются, мешают быстрой работе продавцов на кассе и создают путаницу в документах. Выясним причину этой проблемы и подробно разберем, как безопасно очистить базу данных от лишнего "мусора", не нарушив при этом ведение учета.
Критически важно понимать: просто так физически удалить характеристику из базы данных нельзя, если она хотя бы один раз использовалась в документах поступления, продаж, списания или инвентаризации. В противном случае мы полностью разрушим ссылочную целостность базы данных, что приведет к фатальным ошибкам в отчетах по остаткам и продажам. Ниже мы рассмотрим несколько эффективных способов решения этой задачи — от самых простых (доступных обычному пользователю) до профессиональных инструментов разработчика.
Важное предупреждение перед началом работы: любые массовые изменения данных, групповые пометки и операции удаления могут быть необратимы. Перед выполнением описанных ниже шагов обязательно сделайте резервную копию (бэкап) вашей информационной базы!
---
Этот способ гениален в своей простоте и идеально подходит пользователям, которые не обладают навыками программирования, но хотят быстро очистить базу от характеристик, которые были созданы по ошибке и никогда реально не использовались в торговом учете. Разберем этот алгоритм по шагам:
Номенклатура и перейдем в список характеристик интересующего нас товара (или в общий список характеристик, если учет ведется в разрезе общих характеристик).В результате этой несложной процедуры все "живые" и используемые характеристики останутся нетронутыми, а весь ошибочный "мусор" навсегда исчезнет из базы данных.
---
Если мы работаем в современных конфигурациях, таких как 1С:Розница 3.0 или 1С:Управление нашей фирмой (УНФ), разработчики платформы уже предусмотрели изящное решение проблемы устаревших данных без их физического удаления. Это механизм использования флага недействительности.
Рассмотрим подробнее, как работает этот инструмент:
---
Что делать, если ошибочных или устаревших характеристик накопилось несколько тысяч, и заходить в карточку каждой из них вручную физически невозможно? Выясним, как автоматизировать этот процесс с помощью встроенного административного инструмента.
Разберем по шагам работу с обработкой группового изменения:
Характеристики номенклатуры.Пометка удаления и установим значение Да (или найдем реквизит Недействительна и также установим его в значение Истина).---
Если база данных огромная, а стандартные методы вызывают зависание системы, оптимальным решением станет привлечение программиста или написание небольшой внешней обработки. Схема ее работы заключается в выполнении прямого запроса к таблицам оборотов и остатков.
Проанализируем пример логики построения такого запроса на встроенном языке 1С. Нам необходимо выбрать все характеристики из справочника и соединить их левым соединением с оборотами регистра накопления (например, Закупки.Обороты или Продажи.Обороты) за весь период существования базы данных. Там, где связь не сопоставится (значение будет равно NULL), характеристику можно смело помечать на удаление.
Пример программного кода для автоматизации этого процесса:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Характеристики.Ссылка КАК Ссылка
|ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК Характеристики
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки.Обороты(,, Авто,,) КАК ЗакупкиОбороты
| ПО Характеристики.Ссылка = ЗакупкиОбороты.Характеристика
|ГДЕ
| ЗакупкиОбороты.Характеристика ЕСТЬ NULL";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектХарактеристики = Выборка.Ссылка.ПолучитьОбъект();
ОбъектХарактеристики.УстановитьПометкуУдаления(Истина);
КонецЦикла;
Этот код быстро пометит на удаление только те элементы, которые гарантированно не имеют оборотов по ключевым регистрам закупок и продаж. После выполнения этого скрипта останется лишь запустить стандартное удаление помеченных объектов.
---
Бывают ситуации, когда пользователь точно знает, что товар по данной характеристике никогда не закупался и не продавался, но стандартное "Удаление помеченных объектов" все равно блокирует операцию. Проанализируем, какие скрытые связи могут мешать очистке системы:
Установка цен номенклатуры), запись в регистре сведений заблокирует удаление. Сначала придется распровести или скорректировать этот документ.Штрихкоды номенклатуры намертво привязывает характеристику к коду. Решение: сначала удалить запись со штрихкодом.---
Если вы решили провести генеральную уборку в вашей 1С:Розница, критически важно соблюдать строгую последовательность действий. Ни в коем случае нельзя начинать чистить характеристики, если у вас не наведен порядок в самом справочнике товаров.
Соблюдайте следующий алгоритм действий:
Используя предложенные методики, мы сможем эффективно и безопасно освободить интерфейс программы от устаревших данных, сделав работу продавцов за кассовым узлом максимально комфортной и быстрой!