В процессе активной работы магазина справочник номенклатуры неизбежно разрастается. Со временем появляются позиции, которые больше не закупаются и не продаются, но продолжают отображаться в рабочем месте кассира (РМК). Это особенно критично для весового товара, который ищется вручную по названию: кассиру приходится пролистывать десятки похожих позиций, что замедляет обслуживание и ведет к ошибкам (пересортице). Рассмотрим подробно, как эффективно скрыть лишние товары, не прибегая к их полному удалению из базы.
Проанализируем самый правильный с точки зрения логики типового решения 1С:Розница способ — управление ассортиментом. Этот механизм позволяет жестко ограничить список товаров, доступных к продаже в конкретном магазине.
Для начала убедимся, что функционал включен. Перейдем в раздел Администрирование, далее выберем Маркетинг и установим флаг Управление ассортиментом. После включения этой опции нам станут доступны документы, управляющие жизненным циклом товара.
Разберем процесс настройки по шагам:
После проведения документа товары, выведенные из ассортимента, перестанут отображаться в подборе РМК, если в настройках профиля кассира установлены соответствующие фильтры. Проанализируем настройки РМК: важно убедиться, что система настроена на работу только с актуальным ассортиментом магазина.
Если нам нужно скрыть товар не только в конкретном магазине, а вообще во всей базе (например, товар больше никогда не будет поставляться), воспользуемся стандартным реквизитом Недействителен. Этот флаг появился в современных версиях конфигураций на управляемых формах.
Выясним, как это работает: при установке данного флага в карточке номенклатуры, объект перестает попадать в динамические списки выбора по умолчанию. При этом ссылочная целостность сохраняется: во всех старых документах (поступлениях, чеках прошлых лет) название товара останется доступным для отчетов.
Чтобы скрыть товар:
Важно: Если кассир использует полнотекстовый поиск, товар все равно может «всплывать», если индекс поиска не был обновлен.
Рассмотрим более гибкий способ фильтрации — сегментацию. Мы можем создать динамический сегмент Товары в продаже и настроить РМК так, чтобы поиск шел только по нему.
Проанализируем алгоритм настройки сегмента:
Номенклатура.ПометкаУдаления = Ложь И Номенклатура.ЭтоГруппа = Ложь И ОстаткиНаСкладах.ВНаличии > 0.Таким образом, в список поиска будут попадать только те товары, которые физически есть на складе и не помечены на удаление. Это радикально сократит список из 2000 позиций до актуальных нескольких сотен. Для автоматического ограничения поиска позициями в наличии можно использовать расширение для подбора товаров по остаткам на складе в РМК.
Часто пользователи жалуются: «Мы пометили товар на удаление или перенесли в папку Архив, а он все равно виден в поиске РМК». Выясним причину этой ситуации. Проблема заключается в индексе полнотекстового поиска.
Система 1С хранит отдельный индекс для быстрого поиска по строкам. Если вы изменили свойства товара, индекс может обновиться не сразу. Разберем, как принудительно обновить данные:
После этой процедуры «призраки» удаленных товаров исчезнут из результатов поиска в РМК.
Если ваш список из 2000 позиций состоит из однотипных товаров (например, «Колбаса Докторская в пленке», «Колбаса Докторская в синюге», «Колбаса Докторская мини»), рассмотрим переход на использование характеризок.
Вместо создания десятков карточек номенклатуры, мы создаем одну карточку Номенклатура «Колбаса Докторская» и включаем для нее ИспользоватьХарактеристики. В РМК кассир сначала находит общую позицию, и только после выбора открывается список доступных характеристик. Это визуально разгружает основной список поиска и делает работу более структурированной.
В самых сложных случаях, когда штатные фильтры не помогают или настройки постоянно сбрасываются, можно прибегнуть к механизму RLS (Record Level Security). Этот метод позволяет на уровне прав доступа запретить пользователю (продавцу) видеть определенные группы товаров.
Посмотрим, как это реализовать:
Теперь для кассира этих товаров просто не существует в базе данных. Программа даже не будет пытаться искать их, что также положительно скажется на производительности РМК.
Если ни один из штатных методов не подходит из-за специфики бизнес-процессов (например, когда нужно скрывать товары по очень сложному алгоритму), можно воспользоваться расширением. Расширение позволяет программно вмешаться в запрос поиска. Рассмотрим пример логики, которую обычно внедряют в такие расширения:
&НаСервере
Процедура ПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)
// Добавление жесткого фильтра в динамический список подбора
ОбщийСписок = ЭтаФорма.СписокНоменклатуры;
ЭлементОтбора = ОбщийСписок.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПометкаУдаления");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Ложь;
ЭлементОтбора.Использование = Истина;
КонецПроцедуры
Резюмируем: Для эффективной работы в РМК без лишнего «мусора» в поиске, рекомендуется в первую очередь настроить Управление ассортиментом и регулярно обновлять Индекс полнотекстового поиска. Если же товаров слишком много, использование Сегментов с фильтром по остаткам станет самым быстрым и надежным решением.