Как настроить права доступа в 1С для создания и изменения только одного документа, когда у пользователя есть только права на просмотр?

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

Рассмотрим распространенную ситуацию в 1С, когда требуется предоставить пользователю минимальные права доступа – только просмотр всех объектов системы – но при этом разрешить ему создавать и изменять всего лишь один конкретный документ, например, «Счет на оплату». На первый взгляд задача кажется простой: достаточно добавить права на этот документ в соответствующую роль и назначить ее пользователю. Однако, как показывает практика и обсуждаемая ситуация на форуме, часто возникают сложности, когда программа все равно не дает сохранить или провести документ, несмотря на предоставленные права.

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

1. Основы настройки ролей и профилей групп доступа в 1С

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

  1. Создание или изменение роли:

    Начнем с самого важного – роли. Если у пользователя уже есть роль с правами на просмотр всех объектов, мы можем создать новую роль специально для документа «Счет на оплату» или расширить существующую (что менее предпочтительно для сохранения чистоты прав).

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

    • Чтение: для просмотра существующих документов.
    • Добавление: для создания новых документов.
    • Изменение: для редактирования существующих документов.
    • Проведение: для проведения документа (создания движений по регистрам).
    • Удаление: если пользователю необходимо иметь возможность удалять свои счета.

    Важный момент: если вы только дадите право на Добавление и Изменение, но не дадите Проведение, пользователь сможет сохранить документ, но не сможет его провести. Это может быть источником недоразумений, о чем мы подробнее поговорим ниже.

  2. Работа с профилями групп доступа (для 1С 8.3 и выше):

    В современных конфигурациях 1С 8.3 рекомендуется использовать профили групп доступа. Это удобный механизм, который объединяет несколько ролей в единый набор полномочий. Мы разберем, как его использовать:

    1. Перейдите в режим «Предприятие» под пользователем с полными правами.
    2. Откройте раздел Администрирование → Настройки пользователей и прав → Профили групп доступа.
    3. Найдите существующий профиль, который наиболее близок к требуемым правам пользователя (например, «Только просмотр» или «Базовые права»).
    4. Скопируйте его: Создайте новый профиль, скопировав существующий. Дайте ему осмысленное имя, например, «ПросмотрВсех+СчетНаОплату».
    5. Добавьте новую роль: Внутрь созданного профиля добавьте нашу новую роль «СозданиеИзмСчетНаОплату».
    6. Назначьте профиль пользователю: Теперь этот новый профиль можно назначить пользователю через раздел Администрирование → Настройки пользователей и прав → Пользователи. Откройте нужного пользователя и на вкладке Группы доступа назначьте ему группу доступа, основанную на новом профиле.

    Такой подход позволяет гибко управлять правами и избежать дублирования.

2. Критически важные права на связанные объекты и регистры

Одной из наиболее частых причин невозможности сохранить или провести документ, даже если на него самого даны все права, является отсутствие прав на связанные объекты. Мы проанализируем, почему это так важно.

Любой документ в 1С – это не изолированный объект. При его создании, изменении и особенно проведении, он взаимодействует с множеством других сущностей системы. Например, «Счет на оплату» обязательно использует:

Пошаговая проверка прав на связанные объекты:

  1. Откройте Конфигуратор.
  2. Найдите документ Счет на оплату (или любой другой, для которого настраиваете права).
  3. Перейдите на вкладку Данные или Формы, чтобы понять, какие справочники и документы используются в его реквизитах.
  4. Если документ имеет форму, откройте ее и проанализируйте, к каким объектам обращается код в обработчиках ПриСозданииНаСервере, ПередЗаписью, ПриЗаписи, ОбработкаПроведения.
  5. Особое внимание уделите движениям документа. На вкладке Движения в конфигураторе посмотрите, в какие регистры документ создает движения. На все эти регистры должны быть даны соответствующие права в вашей роли.

3. Разграничение сохранения и проведения документов

Очень важно понимать разницу между операциями сохранения (записи) и проведения документа в 1С, а также как они влияют на требуемые права доступа.

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

4. Привилегированный режим проведения

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

Мы разберем, что это такое и как его применять:

5. Диагностика и поиск причин ошибок

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

  1. Получите точное сообщение об ошибке:

    Это самый первый и самый важный шаг. Вместо общих фраз типа "не дает сохранить", попросите пользователя точно скопировать текст ошибки, которую выдает программа. Сообщение 1С часто указывает на конкретный объект, для которого не хватает прав (например, "Недостаточно прав для записи регистра накопления 'ТоварыНаСкладах'" или "Недостаточно прав для чтения справочника 'Контрагенты'"). Это сразу сузит круг поиска.

  2. Анализируйте журнал регистрации:

    Журнал регистрации 1С – мощный инструмент для диагностики проблем. Мы посмотрим, как его использовать:

    • В режиме «Предприятие» перейдите в Администрирование → Поддержка и обслуживание → Журнал регистрации.
    • Отфильтруйте события по пользователю, у которого возникла проблема, и по типу события Ошибка или Доступ.
    • Мы можем увидеть записи, которые явно укажут на отказ в доступе к определенному объекту или регистру в момент попытки сохранения/проведения документа.
  3. Проверьте состав новой роли:

    Вернитесь в Конфигуратор и еще раз внимательно проверьте состав новой роли, которую вы создали. Убедитесь, что для всех критически важных справочников, документов и регистров (которые мы выявили в разделе 2) установлены необходимые права (Чтение, Добавление, Изменение, Проведение).

    Иногда даже незначительное упущение (например, забыли дать Чтение на справочник Валюты, если он используется) может привести к невозможности работы с документом.

  4. Используйте отладчик (для программистов):

    Если вы программист 1С, самым точным инструментом будет Отладчик. Мы можем:

    • Запустить 1С в режиме отладки под проблемным пользователем.
    • Установить точку останова в модуле объекта документа (например, в процедурах ПередЗаписью, ПриЗаписи или ОбработкаПроведения).
    • Пошагово выполнять код, наблюдая, на какой строке и при обращении к какому объекту происходит ошибка. Это даст исчерпывающую информацию о нехватке прав.
  5. Тестовый документ:

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

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

← На главную