Почему в 1С форма документа открывается в режиме только для просмотра, хотя добавление новых документов разрешено?

Программист 1С v8.3 (Управляемые формы)
← К списку

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

Мы проанализируем различные аспекты системы 1С, начиная от прав доступа и заканчивая программным управлением формами, чтобы вы могли эффективно диагностировать и устранить эту проблему.

1. Основная причина — право "Интерактивное изменение проведенных"

Начнем с самого распространенного и часто упускаемого из виду сценария, который, как показывает наш опыт и обсуждения на форумах, является основной причиной данной проблемы. Мы говорим о праве "Интерактивное изменение проведенных".

  1. Суть проблемы: Пользователь может создавать новые документы, но при попытке открыть и отредактировать уже проведенный документ, форма открывается в режиме "только для просмотра". При этом кнопки "Записать", "Провести" и другие действия по изменению состояния документа деактивированы.

  2. Роль права "Интерактивное изменение проведенных": Это право не является очевидным, но его отсутствие критически влияет на возможность работы с проведенными документами. Если у пользователя нет этого права, система 1С автоматически блокирует любые интерактивные изменения для документов, которые уже имеют статус "Проведен". Это касается не только прямого редактирования полей, но и таких действий, как:

    • Перепроведение документа.
    • Отмена проведения документа.
    • Установка/снятие пометки удаления.
    • Изменение любых реквизитов проведенного документа.

    Без этого права форма проведенного документа будет принудительно открываться в режиме просмотра, даже если свойство ЭтаФорма.ТолькоПросмотр программно не установлено в Истина.

  3. Где найти и настроить: Мы можем найти это право в конфигураторе, в ветке "Роли". Для роли, назначенной проблемному пользователю, необходимо установить флаг напротив права "Интерактивное изменение проведенных". После установки этого флага и обновления конфигурации базы данных, а также переоткрытия программы пользователем, проблема, как правило, исчезает.

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

2. Свойство формы ЭтаФорма.ТолькоПросмотр

Давайте рассмотрим наиболее прямолинейный способ управления режимом просмотра формы — использование свойства ЭтаФорма.ТолькоПросмотр. Это свойство является базовым инструментом для программного управления доступностью формы для редактирования.

  1. Назначение свойства: Когда свойство ЭтаФорма.ТолькоПросмотр устанавливается в Истина, большинство элементов формы автоматически становятся недоступными для редактирования. Все кнопки, связанные с сохранением или проведением изменений (например, "Записать", "Записать и закрыть", "Провести"), деактивируются. Это дает разработчику гибкий контроль над тем, когда и при каких условиях пользователь может изменять данные.

  2. Типичное использование: Чаще всего это свойство устанавливается в обработчике события формы ПриОткрытии. Это позволяет нам анализировать состояние объекта (например, проведен ли документ, имеет ли определенный статус, или является ли пользователь администратором) и динамически решать, разрешено ли редактирование.

  3. Пример использования: Посмотрим на простой пример кода, демонстрирующий, как можно установить форму в режим только для просмотра, если документ уже проведен и пользователь не имеет прав администратора.

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

    В этом примере, если документ Объект.Проведен и текущий пользователь не имеет роли АдминистраторСистемы, форма будет открыта только для просмотра.

3. Дата запрета изменения данных

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

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

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

  3. Влияние на форму: При активной дате запрета, даже если у пользователя есть все необходимые права на изменение, форма документа будет вести себя как "только для просмотра", так как любые попытки записи будут отклонены системой.

4. Ограничения ролей и профилей доступа

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

  1. Структура прав: В 1С права пользователей управляются с помощью:

    • Ролей: Определяют базовые действия (например, "Чтение", "Изменение", "Удаление", "Проведение") для различных объектов метаданных (документов, справочников и т.д.).
    • Профилей доступа: Объединяют набор ролей, упрощая назначение прав группам пользователей.
    • Групп доступа: Связывают пользователей с профилями доступа.
  2. Зависимость интерактивных прав от неинтерактивных: Мы должны помнить, что многие интерактивные действия, выполняемые пользователем через интерфейс, зависят от их неинтерактивных аналогов. Например, право "Интерактивное удаление" требует наличия базового права "Удаление" для соответствующего объекта. Если неинтерактивное право снято, соответствующее интерактивное право также будет недоступно, даже если оно явно установлено.

  3. Право "Чтение": Это фундаментальное право. Без права "Чтение" на объект, пользователь не сможет открыть документ вообще, не говоря уже о его редактировании. Если документ открывается, значит, право на чтение у пользователя есть, но отсутствие права на "Изменение" или "Проведение" может привести к режиму "только для просмотра".

5. Особенности элементов формы и их свойств

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

  1. Свойства реквизитов формы: Каждый реквизит формы имеет свойство ТолькоПросмотр. Если оно установлено в Истина для конкретного поля, это поле будет недоступно для редактирования, независимо от общего состояния формы ЭтаФорма.ТолькоПросмотр.

  2. Свойства табличных частей: Для табличных частей формы (например, таблиц товаров в документе) также существуют свои свойства, управляющие доступностью строк и колонок. Например, свойство ТолькоПросмотр для самой табличной части или для отдельных ее колонок.

  3. Свойства команд: Команды формы (кнопки) имеют свойство ИзменяетСохраняемыеДанные. Если это свойство установлено в Истина, то при установке ЭтаФорма.ТолькоПросмотр = Истина, такие команды будут автоматически деактивироваться. Если же это свойство установлено некорректно или отсутствует, команда может оставаться активной, но при попытке ее выполнения возникнет ошибка или она не приведет к ожидаемому результату из-за общего режима просмотра формы.

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

Для настройки прав доступа и решения подобных проблем всегда требуются права администратора или соответствующие полномочия.

← К списку