Здравствуйте! Помогите, пожалуйста..
У меня есть справочник "Клиенты" и некоторые реквизиты в нем недоступны для редактирования (Проставлена галочка "только просмотр"), мне нужно создать кнопку "Изменить", она будет видна только пользователям с конкретной ролью, после нажатия на кнопку должен появиться доступ к редактированию нескольких определенных реквизитов.
Как создать роль и кнопку я понимаю, не получается написать саму команду для кнопки, которая откроет доступ к редактированию.
---
Смотри процедуру
ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(Форма, Реквизиты)

```1c
    // Устанавливает доступность элементов формы, связанных с заданными реквизитами,
    // для которых установлено разрешение изменения. Если передать массив реквизитов,
    // тогда сначала будет дополнен состав реквизитов, разрешенных для изменения.
    // Если разблокировка элементов формы, связанных с заданными реквизитами,
    // снята для всех реквизитов, тогда кнопка разрешения редактирования блокируется.
    //
    // Параметры:
    // Форма - ФормаКлиентскогоПриложения - форма, в которой требуется разрешить
    // редактирование элементов формы, заданных реквизитов.
    //
    // Реквизиты - Массив - значения:
    // * Строка - имена реквизитов, для которых нужно установить разрешенность изменения.
    // Используется, когда функция РазрешитьРедактированиеРеквизитовОбъекта не используется.
    // - Неопределено - состав реквизитов, доступных для редактирования, не изменяется,
    // а для элементов формы, связанных с реквизитами, изменение которых разрешено,
    // устанавливается доступность.
    //
    Процедура УстановитьДоступностьЭлементовФормы(Знач Форма, Знач Реквизиты = Неопределено) Экспорт

    УстановитьРазрешенностьРедактированияРеквизитов(Форма, Реквизиты);

    Для Каждого ОписаниеБлокируемогоРеквизита Из Форма.ПараметрыЗапретаРедактированияРеквизитов Цикл
    Если ОписаниеБлокируемогоРеквизита.РедактированиеРазрешено Тогда
    Для Каждого БлокируемыйЭлементФормы Из ОписаниеБлокируемогоРеквизита.БлокируемыеЭлементы Цикл
    ЭлементФормы = Форма.Элементы.Найти(БлокируемыйЭлементФормы.Значение);
    Если ЭлементФормы <> Неопределено Тогда
    Если ТипЗнч(ЭлементФормы) = Тип("ПолеФормы")
    И ЭлементФормы.Вид <> ВидПоляФормы.ПолеНадписи
    Или ТипЗнч(ЭлементФормы) = Тип("ТаблицаФормы") Тогда
    ЭлементФормы.ТолькоПросмотр = Ложь;
    Иначе
    ЭлементФормы.Доступность = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```
---
Смотри процедуру
ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(Форма, Реквизиты)

```1c
    // Устанавливает доступность элементов формы, связанных с заданными реквизитами,
    // для которых установлено разрешение изменения. Если передать массив реквизитов,
    // тогда сначала будет дополнен состав реквизитов, разрешенных для изменения.
    // Если разблокировка элементов формы, связанных с заданными реквизитами,
    // снята для всех реквизитов, тогда кнопка разрешения редактирования блокируется.
    //
    // Параметры:
    // Форма - ФормаКлиентскогоПриложения - форма, в которой требуется разрешить
    // редактирование элементов формы, заданных реквизитов.
    //
    // Реквизиты - Массив - значения:
    // * Строка - имена реквизитов, для которых нужно установить разрешенность изменения.
    // Используется, когда функция РазрешитьРедактированиеРеквизитовОбъекта не используется.
    // - Неопределено - состав реквизитов, доступных для редактирования, не изменяется,
    // а для элементов формы, связанных с реквизитами, изменение которых разрешено,
    // устанавливается доступность.
    //
    Процедура УстановитьДоступностьЭлементовФормы(Знач Форма, Знач Реквизиты = Неопределено) Экспорт

    УстановитьРазрешенностьРедактированияРеквизитов(Форма, Реквизиты);

    Для Каждого ОписаниеБлокируемогоРеквизита Из Форма.ПараметрыЗапретаРедактированияРеквизитов Цикл
    Если ОписаниеБлокируемогоРеквизита.РедактированиеРазрешено Тогда
    Для Каждого БлокируемыйЭлементФормы Из ОписаниеБлокируемогоРеквизита.БлокируемыеЭлементы Цикл
    ЭлементФормы = Форма.Элементы.Найти(БлокируемыйЭлементФормы.Значение);
    Если ЭлементФормы <> Неопределено Тогда
    Если ТипЗнч(ЭлементФормы) = Тип("ПолеФормы")
    И ЭлементФормы.Вид <> ВидПоляФормы.ПолеНадписи
    Или ТипЗнч(ЭлементФормы) = Тип("ТаблицаФормы") Тогда
    ЭлементФормы.ТолькоПросмотр = Ложь;
    Иначе
    ЭлементФормы.Доступность = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```
---
Элементы.НужныйРеквизитФормы.ТолькоПросмотр = Ложь, это если вся форма не заблокирована