Как скрыть конфиденциальные реквизиты от исполнителя задачи в 1С:Документооборот?

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

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

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

Архитектурное решение: Разделение сущностей (Бизнес-логика)

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

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

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

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

Стандартные инструменты 1С:Документооборот (без программирования)

Если разделение документов по каким-то причинам невозможно, и работа должна вестись в рамках одной карточки, разберем по шагам альтернативные стандартные механизмы настройки системы.

1. Настройка доступности реквизитов по состоянию

В версиях 1С:Документооборот КОРП (особенно в редакции 3.0) присутствует мощный типовой функционал Настройка доступности по состоянию. Этот инструмент позволяет гибко управлять видимостью и возможностью редактирования полей карточки документа без изменения конфигурации. Мы можем настроить правила следующим образом:

2. Дополнительные реквизиты с условиями видимости

Если конфиденциальные сведения вынесены в категорию дополнительных реквизитов, мы можем использовать встроенный конструктор условий. В настройках свойства дополнительного реквизита можно задать логическое выражение (например, показывать реквизит только в том случае, если текущий пользователь входит в роль ОтделПродаж). Это позволяет скрывать поля динамически на уровне интерфейса пользователя.

3. Использование автоподстановок в шаблонах задач

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

Для этого в шаблоне процесса настраивается Шаблон описания задачи с использованием автоподстановок. В тексте задачи пишется:

Проверить качество продукции: [Предмет.Товар] по рекламации № [Предмет.РегистрационныйНомер]. Описание проблемы: [Предмет.ОписаниеДефекта].

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

4. Настройка ролей файлов

Если файлы (например, сканы договоров или калькуляции) также содержат секретные данные, в 1С:ДО 3.0 их видимость можно ограничить с помощью механизма Роли файлов. Настроив роли (например, «Коммерческие документы» и «Техническое задание»), мы можем закрыть доступ к группе коммерческих файлов для рядовых исполнителей задач.

Разработка и кастомизация (Low-code и Расширения)

Когда типовых настроек недостаточно, на помощь приходят методы программирования на платформе 1С:Предприятие. Проанализируем, как реализовать скрытие полей наиболее безопасными методами.

1. Пользовательская видимость в Конфигураторе

В свойствах элементов формы любого документа в Конфигураторе доступна настройка Пользовательская видимость. Открыв эту настройку для элемента формы (например, поля ввода контрагента), разработчик может просто снять флажки видимости для определенных ролей пользователей. Платформа 1С автоматически скроет это поле для всех, у кого нет соответствующей роли в системе.

2. Использование расширений конфигурации

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

В модуле формы документа, заимствованном в расширение, добавим следующий обработчик события:


&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    
    // Проверяем, обладает ли пользователь правами на просмотр коммерческих данных
    Доступ Разрешен = РольДоступна("ПолныеПрава") Или РольДоступна("ДобавлениеИзменениеПродаж");
    
    Если Не ДоступРазрешен Тогда
        // Скрываем элементы интерфейса, содержащие конфиденциальные данные
        Элементы.ГруппаКонтрагент.Видимость = Ложь;
        Элементы.СуммаДокумента.Видимость = Ложь;
        Элементы.Договор.Видимость = Ложь;
    КонецЕсли;
    
КонецПроцедуры

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

Резюме

Мы проанализировали различные варианты скрытия реквизитов в задачах 1С:Документооборот. Наиболее простым и правильным архитектурным решением является создание подчиненного процесса или документа без конфиденциальных данных. Если же требуется оставить работу в рамках одной карточки, оптимально использовать встроенный механизм настройки доступности по состоянию или реализовать точечное скрытие полей через расширение конфигурации.

← На главную