Всем привет.
Есть ЗУП 2.5
Хочу пользователю с основным интерфейсом "Интерфейс1" отключить все прочие интерфейсы (вместе с теми, у которых Переключаемый = ложь).
Нашел в инете такой код, пишу его в модуле обычного приложения в ПриНачалеРаботыСистемы():
В отладчике вижу, что при ТекИнтерфейс.Видимость = Ложь и Интерфейс1.Переключаемый = Истина свойства Видимость и Переключаемый не меняют свое значение. Т.е. реальной записи значений в свойства не происходит.
В чем может быть проблема?
Как убрать пользователю все интерфейсы, кроме Интерфейс1?
Ограничение: менять в конфигураторе свойства объектов Интерфейс нельзя, они настроены для других задач.
Нашел решение. Людской логикой это не объяснить, но работает ВОТ ТАК:
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Если РольДоступна("НужнаяРоль") Тогда
Для каждого Интерфейс Из ГлавныйИнтерфейс Цикл
Если Интерфейс <> ГлавныйИнтерфейс.Интерфейс1 Тогда
Если Интерфейс.Переключаемый = Ложь Тогда //выглядит странно, но так надо.
Интерфейс.Переключаемый = Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ГлавныйИнтерфейс.ПереключитьИнтерфейс("Интерфейс1");
КонецЕсли;