Почему не активна кнопка проведения документа в 1С и как это исправить?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

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

Главная причина: различие между правами «Изменение» и «Редактирование»

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

  1. Право «Изменение»: позволяет модифицировать данные объекта программным путем (например, из внешних обработок или фоновых заданий). При наличии только этого права пользователь не получает автоматического разрешения менять данные через диалоговые формы.
  2. Право «Редактирование»: определяет возможность интерактивной правки данных в пользовательском интерфейсе. Если право Редактирование для документа снято (хотя право Изменение установлено), платформа автоматически переводит форму документа в режим только для чтения. При этом свойство формы ЭтаФорма.ТолькоПросмотр принимает значение Истина, а все стандартные кнопки интерактивной записи, проведения и подтверждения (ОК) отключаются.

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

Пошаговая диагностика режима «ТолькоПросмотр»

Когда в пользовательском сеансе кнопка проведения не нажимается, первым делом выясним, в каком состоянии открыта форма. Разберем шаги проверки:

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

Дополнительные факторы, блокирующие интерактивное проведение

Если право Редактирование на сам документ включено, но кнопки по-прежнему неактивны, рассмотрим другие распространенные причины:

  1. Отсутствие права «Вставка»: если пользователь пытается создать и сразу провести новый документ, платформе требуется не только право на изменение, но и право Вставка (а также интерактивное право ИнтерактивноеДобавление). Без них новый объект нельзя даже сохранить.
  2. Права на связанные регистры сведений и накопления: документ в процессе проведения выполняет движения по регистрам. Если в роли отсутствуют права Чтение или Запись на хотя бы один из регистров, в которые документ делает записи, интерактивное проведение будет заблокировано либо завершится исключением нарушения прав доступа.
  3. Ограничения доступа на уровне записей (RLS): если для роли включен механизм ограничения доступа к данным, условие RLS для конкретной организации, подразделения или типа документа может возвращать ложь. В этом случае документ доступен для просмотра, но закрыт для интерактивной модификации.
  4. Даты запрета изменения данных: типовые конфигурации контролируют даты запрета редактирования. Важно помнить, что проверка может выполняться дифференцированно: отдельно по пользователям, ролям, конкретным организациям или разделам учета. Даже если общая дата запрета не установлена, персональная настройка для пользователя заблокирует проведение документов за прошлые даты.
  5. Статусы и бизнес-процессы документа: во многих прикладных решениях (например, в конфигурациях на базе БСП) действуют механизмы состояний. Если документ переведен в статус «Утвержден», «Закрыт» или находится на согласовании, прикладной код блокирует доступность элементов управления и команд проведения.
  6. Пессимистическая и оптимистическая блокировка данных: если документ уже открыт на редактирование другим пользователем или обрабатывается длительной фоновой транзакцией, платформа откроет форму в режиме чтения во избежание конфликтов параллельной записи.
  7. Свойства командной панели формы: проверим свойства формы и ее командной панели. Если снят флаг Автозаполнение, стандартные кнопки проведения могут отсутствовать в интерфейсе или быть отключены вручную в структуре элементов формы.

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

← На главную