Разработка и Конфигурация · 10 мин
Как убрать кнопку «Создать» из формы списка в 1С
Способы убрать кнопку «Создать» из формы списка 1С: права доступа, настройка формы, программное скрытие команд и расширение конфигурации. Пошаговые инструкции и разбор ошибок.
Кнопка «Создать» в форме списка документа или справочника появляется автоматически — платформа 1С сама формирует командную панель на основе стандартных команд объекта. Скрыть её можно несколькими способами: через права доступа, настройку формы в конфигураторе, программное изменение видимости команд или расширение конфигурации. Выбор зависит от того, требуется ли запретить создание объектов полностью или только убрать кнопку из интерфейса конкретной формы.
Важно понимать разницу между двумя задачами. Первая — запретить пользователю создавать новые элементы вообще, чтобы он не мог обойти ограничение через ввод по строке, копирование или команду из другого окна. Вторая — только убрать кнопку с конкретной формы, например чтобы не загромождать интерфейс, когда создание выполняется из другого рабочего места. Эти задачи решаются разными инструментами, и путать их — частая ошибка.
Ниже разобраны рабочие способы для управляемых форм (такси-интерфейс), порядок проверки результата и типичные проблемы, с которыми сталкиваются при настройке.
Определите задачу: запрет создания или только скрытие кнопки
Перед изменениями ответьте на вопрос: пользователь вообще не должен создавать новые объекты или ему просто неудобно видеть лишнюю кнопку? От ответа зависит инструмент. Скрытие кнопки на форме не защищает данные: пользователь сможет создать объект через копирование существующего, через ввод по строке в поле ввода, через обработку или внешнюю загрузку.
Если требуется настоящий запрет — используйте права доступа (роли). Если задача чисто интерфейсная — достаточно настройки формы или расширения. В смешанных случаях, когда разным пользователям нужно разное поведение, комбинируют оба подхода: роль ограничивает добавление, а форма дополнительно очищается от лишних команд.
Как выбрать действие
Способ 1. Убрать кнопку через права доступа (роли)
Это единственный способ, который одновременно скрывает кнопку и реально блокирует создание. Платформа сама анализирует права: если у пользователя нет права «Добавление» на объект, команда «Создать» не отображается ни в форме списка, ни в панели навигации, ни в меню «Файл».
Порядок действий для типовой конфигурации с профилями групп доступа: откройте раздел администрирования, найдите профиль пользователя, снимите разрешение на добавление нужного вида документов или справочников. Если конфигурация без БСП — откройте конфигуратор, найдите роль, назначенную пользователю, и в дереве прав снимите флажок «Добавление» для нужного объекта метаданных. После обновления конфигурации пользователь должен перезайти в сеанс.
Проверка: войдите под учётной записью пользователя, откройте список — кнопки «Создать» не должно быть. Дополнительно попробуйте скопировать существующий элемент: при отсутствии права добавления платформа выдаст сообщение о нарушении прав доступа. Это подтверждает, что запрет работает на уровне данных, а не только интерфейса.
Способ 2. Отключить команду в форме списка через конфигуратор
Если форма списка — собственная (созданная разработчиком, а не автоматически генерируемая), кнопку можно убрать непосредственно в редакторе формы. Откройте конфигуратор, найдите объект (документ или справочник), разверните ветку «Формы», откройте форму списка. В дереве элементов найдите командную панель списка — обычно она называется «КоманднаяПанель» или привязана к таблице списка.
Найдите кнопку, связанную со стандартной командой «Создать» (стандартная команда списка). Удалите элемент кнопки или установите у неё свойство «Видимость» = Ложь. Если кнопка добавлена платформой автоматически через автозаполнение командной панели, сначала отключите у командной панели свойство «Автозаполнение», затем добавьте вручную только нужные команды — кроме «Создать».
Ограничение способа: он работает только для конкретной формы. Если список открывается через автоматически генерируемую форму (когда собственной формы списка нет в конфигурации), редактировать нечего — придётся создать свою форму списка или использовать расширение.
- 1Откройте форму списка объекта в конфигураторе
- 2Найдите командную панель таблицы списка в дереве элементов
- 3Проверьте свойство Автозаполнение: если включено, отключите его
- 4Удалите кнопку со стандартной командой Создать или установите Видимость = Ложь
- 5Обновите конфигурацию базы данных и проверьте форму в режиме предприятия
Способ 3. Скрыть кнопку программно в модуле формы
Когда видимость кнопки должна зависеть от условий — роли пользователя, даты запрета редактирования, режима работы — используйте программное управление. В модуле формы списка в обработчике ПриСозданииНаСервере найдите элемент командной панели и установите видимость.
Пример кода для управляемой формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КнопкаСоздать = Элементы.Найти("СписокСоздать");
Если КнопкаСоздать <> Неопределено Тогда
КнопкаСоздать.Видимость = Ложь;
КонецЕсли;
КонецПроцедурыИмя элемента зависит от того, как сформирована форма: в автоматически генерируемых формах платформа присваивает кнопкам стандартных команд служебные имена, которые отличаются от формы к форме. Надёжнее искать кнопку по имени команды, перебирая элементы командной панели, либо заранее открыть форму в конфигураторе и посмотреть точное имя элемента.
Учтите: программное скрытие срабатывает при каждом открытии формы и не защищает от создания объекта другими путями. Для условного запрета, влияющего на данные, комбинируйте с проверками в обработчиках записи объекта или с подписками на события.
Способ 4. Расширение конфигурации — когда типовую менять нельзя
Если конфигурация на полной поддержке и снимать её с поддержки нежелательно, кнопку убирают через расширение. Создайте новое расширение, добавьте в него форму списка нужного объекта (заимствуйте форму из конфигурации), затем в расширенной форме измените командную панель: удалите кнопку «Создать» или установите ей невидимость. Альтернатива — добавить в расширении обработчик ПриСозданииНаСервере с кодом скрытия, как в предыдущем разделе.
Порядок: конфигуратор → меню «Конфигурация» → «Расширения конфигурации» → создать. Затем в дереве конфигурации правой кнопкой по форме списка → «Добавить в расширение». После доработки сохраните расширение и проверьте его применимость. Расширение переживает обновления типовой конфигурации, но после крупных обновлений его нужно проверять на совместимость — структура заимствованной формы могла измениться у поставщика.
Сравнение вариантов
Единственный способ реально запретить создание; кнопка исчезает везде. Не подходит, если запрет нужен выборочно по ситуации
Просто и наглядно, но требует снятия конфигурации с поддержки и действует только на одну форму
Гибкие условия показа, но код нужно поддерживать и он не защищает данные
Сохраняет поддержку типовой, но требует проверки совместимости после обновлений
Проверка результата и типичные ошибки
После любого способа проверьте результат под учётной записью целевого пользователя, а не под администратором — у администратора полные права, и кнопка может отображаться независимо от настроек. Откройте форму списка, убедитесь, что кнопки нет ни в командной панели, ни в контекстном меню списка, ни в меню «Ещё».
Отдельно проверьте обходные пути: копирование элемента (Ctrl+F9 или кнопка «Скопировать»), ввод нового значения в поле ввода с выбором «Создать новый», открытие списка из других рабочих мест. Если запрет реализован только скрытием кнопки, эти пути останутся открытыми — и это нужно осознанно принять или закрыть правами.
Ещё одна частая ситуация: после обновления конфигурации заимствованная в расширение форма перестаёт открываться или ведёт себя иначе. Признак — ошибки при открытии списка у пользователей. Решение — заново заимствовать форму из обновлённой конфигурации и перенести свои изменения.
Что важно запомнить
Полный запрет создания объектов даёт только снятие права «Добавление» — кнопка при этом исчезает сама. Скрытие кнопки в форме, программно или через расширение, решает лишь интерфейсную задачу и не защищает данные. Результат всегда проверяйте под учётной записью пользователя, включая копирование и ввод по строке.
Частые вопросы
Почему кнопка «Создать» всё равно видна после снятия права у роли?
Скорее всего, пользователю назначено несколько ролей, и хотя бы одна из них сохраняет право «Добавление». Проверьте полный состав ролей пользователя или его профиль группы доступа. Также пользователь должен перезапустить сеанс — права применяются при входе.
Как убрать кнопку «Создать» только для одного пользователя?
Через индивидуальный профиль группы доступа без права добавления на этот объект. Интерфейсные способы (форма, расширение) действуют на всех пользователей формы, поэтому для персональной настройки подходят только права или программная проверка текущего пользователя в ПриСозданииНаСервере.
Можно ли скрыть кнопку без конфигуратора, прямо в режиме предприятия?
Штатной настройки «спрятать кнопку» в пользовательском режиме нет: команда «Создать» — стандартная, и её состав не редактируется через «Изменить форму». В режиме предприятия доступно только ограничение через профили групп доступа, если в конфигурации есть механизм прав.
Кнопка скрыта, но пользователь создаёт документы копированием. Что делать?
Скрытие кнопки не закрывает копирование. Снимите право «Добавление» у роли пользователя — тогда копирование тоже завершится ошибкой нарушения прав. Либо дополнительно скройте команду «Скопировать» в командной панели, понимая, что это снова только интерфейсная мера.
Сломается ли расширение со скрытой кнопкой после обновления конфигурации?
Может, если поставщик изменил структуру заимствованной формы. После каждого обновления открывайте список под тестовым пользователем и проверяйте, что форма открывается без ошибок и кнопка по-прежнему скрыта. При ошибках пересоздайте заимствование формы в расширении.