Как запретить использование несогласованной номенклатуры в 1С:ERP

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет
← На главную

В процессе работы крупных предприятий часто возникает проблема «засорения» справочника Номенклатура. Менеджеры или производственники могут создавать карточки-дубли или позиции с некорректными данными, которые затем попадают в заказы и отгрузки. Чтобы избежать управленческого хаоса, необходимо внедрить механизм контроля. Разберем подробно, какими способами в 1С:ERP можно запретить использование номенклатуры, которая еще не прошла проверку ответственным специалистом (НСИ-менеджером).

Метод 1. Использование встроенного механизма согласования

Рассмотрим самый правильный с точки зрения методологии системы путь. В 1С:ERP предусмотрена функциональная опция, которая разделяет процесс «хотения» новой позиции и ее реального появления в справочнике. Проанализируем, как это включить:

  1. Перейдем в раздел НСИ и администрирование — Настройка НСИ и разделов — Номенклатура.
  2. В подразделе Настройки создания установим флаг Согласование создания номенклатуры.
  3. Теперь пользователи не смогут создавать карточку напрямую в справочнике. Вместо этого они будут создавать документ Заявка на создание номенклатуры.

Выясним, как это работает на практике: инициатор заполняет все известные ему данные в заявке и отправляет ее на согласование. Ответственный за НСИ получает задачу, проверяет корректность заполнения реквизитов (вид номенклатуры, счета учета, единицы измерения) и только после нажатия кнопки Разрешить создание в справочнике появляется полноценная карточка, доступная для выбора. До этого момента никакой «мусорной» номенклатуры в базе просто не существует.

Метод 2. Ограничение через сегменты номенклатуры («Халявный способ»)

Посмотрим на ситуацию, когда номенклатура уже создана (например, загружена из внешней системы), но ее нельзя использовать в продажах до проверки. Разберем способ, который часто называют «консультантским» из-за отсутствия необходимости программирования:

Создадим динамический сегмент, который будет включать только «проверенные» позиции. Для этого:

  1. Добавим дополнительный реквизит для номенклатуры СостояниеСогласования (тип: Булево или Перечисление).
  2. В разделе CRM и маркетинг создадим новый Сегмент номенклатуры с методом формирования «Периодически обновлять» или «Формировать динамически».
  3. В настройках компоновки данных сегмента установим отбор: СостояниеСогласования РАВНО Истина (или статус «Согласовано»).
  4. В Типовом соглашении с клиентами (или в правилах продаж) установим ограничение: Продажа разрешена только из сегмента и выберем наш созданный сегмент.

Проанализируем результат: если менеджер попытается выбрать в Заказ клиента позицию, у которой не стоит признак согласования, система выдаст ошибку, так как эта позиция не входит в разрешенный сегмент. Это «железобетонный» способ для контура продаж.

Метод 3. Настройка групп доступа (Штатный RLS)

Если нам нужно, чтобы пользователи даже не видели несогласованную номенклатуру в списках подбора, воспользуемся механизмом RLS (Record Level Security). Рассмотрим по шагам:

  1. Включим ограничение доступа на уровне записей в разделе Администрирование — Настройки пользователей и прав.
  2. В справочнике Группы доступа номенклатуры создадим две группы: Черновики и Рабочие.
  3. В профилях групп доступа для обычных пользователей (менеджеров, кладовщиков) настроим ограничение так, чтобы им была доступна только группа доступа Рабочие.
  4. При создании новой номенклатуры ей по умолчанию (или вручную) присваивается группа Черновики.

В этом случае срабатывает стандартный фильтр платформы 1С:Предприятие 8.3. Пользователь открывает подбор, и система на уровне SQL-запроса отсекает все записи, принадлежащие группе Черновики. Чтобы позиция стала доступной, ответственный должен сменить группу доступа на Рабочие.

Метод 4. Использование признака «В архиве»

Разберем самый простой, но требующий дисциплины способ. В карточке номенклатуры есть штатный реквизит В архиве. Рассмотрим алгоритм его использования для контроля:

  1. Договоримся, что любая новая номенклатура создается с установленным флагом В архиве.
  2. По умолчанию в списках выбора и формах подбора архивные позиции скрыты.
  3. Пользователь не сможет выбрать такую позицию в документ, так как она считается недействующей.
  4. После проверки НСИ-менеджер снимает флаг В архиве, тем самым «выпуская» позицию в оборот.

Важный момент: этот способ требует настройки прав, чтобы обычные пользователи не могли самостоятельно снимать флаг архивации. Это можно сделать через «Настройку прав доступа к реквизитам» в расширении или через роли.

Метод 5. Программное ограничение через расширение

Если типовых средств недостаточно или они кажутся слишком громоздкими, проанализируем вариант с небольшим кодом в расширении. Мы можем перехватить событие начала выбора или обработки выбора в формах документов. Рассмотрим пример логики:


&НаСервере
Процедура ПроверитьСтатусНоменклатуры(НоменклатураСсылка)
    Если НоменклатураСсылка.ДополнительныеРеквизиты.Найти(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("СтатусСогласования")).Значение <> ПредопределенноеЗначение("Перечисление.СтатусыСогласования.Согласовано") Тогда
        ВызватьИсключение "Выбор данной номенклатуры запрещен, так как она не прошла согласование!";
    КонецЕсли;
КонецПроцедуры

Такой подход позволяет гибко настроить условия. Например, запретить использование в ЗаказНаПроизводство, но разрешить в ЗаявкаНаЗакупку, чтобы снабжение уже могло начать искать поставщика, пока технологи дорабатывают спецификацию.

Метод 6. Ограничение через виды цен

Выясним еще одну хитрость. В 1С:ERP можно запретить проведение документов отгрузки, если для номенклатуры не установлена цена. Проанализируем цепочку:

  1. В настройках параметров продаж устанавливаем запрет на продажу по нулевым ценам.
  2. Бизнес-процесс выстраиваем так: после создания карточки номенклатуры, она попадает в отдел ценообразования.
  3. Только после того, как ответственный установит цену документом Установка цен номенклатуры, менеджер сможет провести документ продажи.

Этот метод не запрещает выбрать позицию в заказ, но эффективно блокирует реализацию несогласованного товара.

Резюме и рекомендации

Проанализировав все варианты, можно сделать следующие выводы:

Помните, что 1С:ERP — система гибкая, и зачастую комбинация из «мягких» проверок (состояния заполнения) и «жестких» запретов (RLS) дает наилучший результат для обеспечения чистоты нормативно-справочной информации.

← На главную