Как запретить изменение поля «Менеджер» в заказах и реализациях 1С:Управление торговлей 11.4?

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

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

Метод 1: Использование расширения конфигурации

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

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

  1. Добавьте в расширение формы документов ЗаказКлиента и РеализацияТоваровУслуг.
  2. В обработчике события ПриСозданииНаСервере формы необходимо добавить проверку прав текущего пользователя.
  3. Если у пользователя нет административных прав (например, роли «Полные права»), мы принудительно устанавливаем свойство ТолькоПросмотр для поля «Менеджер» в значение Истина.

Пример программной реализации логики проверки прав пользователя:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Проверяем наличие роли администратора
    Если Не РольДоступна("ПолныеПрава") Тогда
        Элементы.Менеджер.ТолькоПросмотр = Истина;
    КонецЕсли;
КонецПроцедуры

Этот подход позволяет гибко управлять доступом: вы можете создать собственную роль, например, РазрешитьИзменениеМенеджера, и проверять именно её наличие. Таким образом, даже пользователи с ограниченными правами смогут менять поле, если вы предоставите им соответствующее разрешение. Для настройки ограничений в пользовательском режиме без написания кода можно использовать расширение для управления доступом и видимостью реквизитов документов.

Метод 2: Контроль через проверку при записи документа

Даже если вы установили свойство ТолькоПросмотр на форме, опытный пользователь или программная обработка могут попытаться изменить данные в обход визуального интерфейса. Чтобы гарантировать защиту, добавьте проверку в модуль объекта документа (событие ПередЗаписью):


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

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

Метод 3: Использование истории изменений (Версионирование)

Если жесткий запрет кажется избыточным, можно воспользоваться встроенным механизмом Версионирования объектов. Это позволит не блокировать действия пользователей, а контролировать их.

  1. Включите версионирование для документов Заказ клиента и Реализация товаров и услуг в настройках программы.
  2. Регулярно (например, раз в неделю) анализируйте отчет История изменений.
  3. При обнаружении изменений поля «Менеджер» у конкретных сотрудников проводите административную работу.

Важные рекомендации при настройке

Рассмотрим несколько нюансов, которые помогут сделать систему защиты более надежной:

Применяя данные методы, вы сможете защитить важные реквизиты документов от случайных или преднамеренных изменений, сохранив при этом чистоту данных в вашей системе 1С:Управление торговлей 11.4.

← На главную