Как ограничить ручные скидки для пользователей в 1С:Управление торговлей 11?

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

Одной из частых задач при администрировании 1С:Управление торговлей 11 является необходимость строгого контроля за действиями менеджеров. В частности, часто требуется ограничить возможность назначения ручных скидок определенным процентом, чтобы исключить необоснованное занижение цен. Рассмотрим, как реализовать такой контроль типовыми средствами конфигурации.

Настройка ограничений в настройках системы

Первым делом необходимо активировать сам функционал ограничений. Для этого проследуем по следующему пути в интерфейсе:

  1. Перейдем в раздел НСИ и администрирование.
  2. Откроем пункт CRM и маркетинг.
  3. Найдем группу Ручные скидки в продажах и установим флажок Ограничение ручных скидок в продажах по пользователям.

После активации настройки необходимо указать лимиты для конкретных сотрудников. Это делается в разделе НСИ и администрирование -> Настройки пользователей и прав -> Пользователи. Выбрав нужного пользователя, перейдем по кнопке Правила продаж, где можно задать максимальный процент ручной скидки или наценки.

Важность ролевой модели и прав доступа

Важно понимать, что система ограничений может не срабатывать, если у пользователя есть избыточные права. Главным «виновником» игнорирования лимитов является роль Отклонение от условий продаж. Если эта роль включена в профиль пользователя, программа позволяет менеджеру назначать любые скидки, игнорируя заданные маркетинговые ограничения.

Для корректной работы лимитов выполним следующие действия:

  1. Перейдем в НСИ и администрирование -> Администрирование -> Профили групп доступа.
  2. Найдем предопределенный профиль Менеджер по продажам.
  3. Поскольку изменять типовые профили не рекомендуется, создадим копию этого профиля.
  4. В скопированном профиле удалим роль Отклонение от условий продаж.
  5. Назначим этот новый профиль целевым пользователям.

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

Взаимодействие с Соглашениями с клиентами

При настройке необходимо учитывать приоритетность. Если в системе используется Соглашение с клиентом, в котором разрешена ручная скидка, и одновременно задано ограничение для пользователя, система выбирает наиболее строгое (минимальное) значение. Например, если в соглашении разрешено 10%, а у пользователя в профиле стоит лимит 5%, менеджер сможет применить скидку не более 5%.

Особенности работы в документах

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

Можно ли реализовать гибкую привязку к менеджеру документа?

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

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


// Пример псевдокода для расширения логики
Процедура ПриПроверкеЗаполнения(Отказ, ПроверяемыеРеквизиты)
    МенеджерДокумента = ЭтотОбъект.Менеджер;
    ЛимитСкидки = ПолучитьМаксимальнуюСкидкуПользователя(МенеджерДокумента);
    
    Для Каждого СтрокаТЧ Из ЭтотОбъект.Товары Цикл
        Если СтрокаТЧ.ПроцентРучнойСкидки > ЛимитСкидки Тогда
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Скидка превышает лимит менеджера!");
            Отказ = Истина;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

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

← На главную