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