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