вторник, 6 августа 2013 г.

Программный переход к разделу 1С с открытием формы в главном окне

Недавно мне потребовалось сделать кнопку, по нажатию которой пользователь переносился в другой раздел на панели разделов при этом должны была открыться форма в пределах главного окна. Пытался найти в интернете, решения именно такой задачи не нашел, потому описываю сам.
Программный переход между разделами 1С

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

        ОткрытьФорму("ОбщаяФорма.Форма2", , , , Окно);

Но в таком случае смена раздела не происходит. Что бы сменить раздел можно воспользоваться функцией ПерейтиПоНавигационнойСсылке() и написать примерно так:

        ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/Подсистема2");
    ОткрытьФорму("ОбщаяФорма.Форма2", , , , Окно);

Но форма откроется уже в отдельном окне, а это не есть гут. Надо указать, что окно стоит открывать в главном окне. В итоге код получился таким:

        &НаКлиенте
    Процедура ПерейтиНаФорму2(Команда)
        ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/Подсистема2");
        ОткрытьФорму("ОбщаяФорма.Форма2", , , , ПолучитьОкна()[0]);
    КонецПроцедуры

Используется функция ПолучитьОкна(), которая возвращает массив окон приложения. В этом массиве под номером 0 указывается главное окно формы.
Данный метод одинаково хорошо работает на всех видах клиентов и в веб-клиенте тоже.

Комментариев нет:

Отправить комментарий