Закладки На Пенели

Тема в разделе "1C и всё что с ней связано", создана пользователем Дайнеко, 12 июн 2012.

  1. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Задача стоит в программном создании нескольких закладок на Панели.

    * Первым неприятным сюрпризом стало то, что в любой панели уже существует "Страница1". Следовательно программе приходится анализировать и созданные в конф-ре страницы менять, а остальные добавлять.
    Может я чего не так понимаю?
    Такой текст:
    Код ( (Unknown Language)):
        ЭлементыФормы.Панель.Страницы.Очистить();
    Кол = ЭлементыФормы.Панель.Страницы.Количество();
    Ном = 0;
    Пока Ном < 5 Цикл
    Ном = Ном + 1;
    Если Ном > Кол Тогда
    ЭлементыФормы.Панель.Страницы.Добавить();
    КонецЕсли;

    ЭлементыФормы.Панель.Страницы[Ном-1].Имя       = Формат(Ном, "ЧЦ=3;ЧВН=");
    ЭлементыФормы.Панель.Страницы[Ном-1].Заголовок   = Выборка.Поле.Наименование;
    ЭлементыФормы.Панель.Страницы[Ном-1].Значение = Выборка.Поле;
    КонецЦикла;

    ЭлементыФормы.Панель.ОтображениеЗакладок = ОтображениеЗакладок.СверхуСПрокруткой;
    * А дальше сюрприз: То появляются страницы, то нет. Добавлял команду ЭтаФорма.Обновить() Вроде как влияла, а потом не видел зависимости.

    * Не появляются так:
    - созданные в конфигураторе видны всегда
    - Количество() всегда дает нужное количество
    - созданные программно существуют не только в отладчике, когда их много, появляется справа значок прокрутки, их просто нет на экране. Проверил все свойства "Видимость" и др. В точности равны первой, существующей в конф-ии.
    - ОтображениеЗакладок выкл/вкл реагирует только на "непрограммные".

    Короче, кто такое делал, поделитесь опытом.
     
  2. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    НоваяСтраница = ЭлементыФормы.Панель.Страницы.Добавить(Имя,Представление);
    НоваяСтраница.Видимость = истина;


    так не пойдет?
     
  3. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    А зачем перед циклом добавления страниц - удаление всех страниц? Не проще ли проверять какой-нибудь служебный реквизит? И такой вопрос, а "выборка" - это что за зверь? что в нем живет?
    Страницы не добавляются - скорее всего, пустая выборка. Не?
     
  4. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Сработало. НО! Честное слово - это барабашки в моем компе. Ведь одно и то-же, что в моем конечном варианте:
    Код ( (Unknown Language)):
        Кол = ЭлементыФормы.Панель.Страницы.Количество();
    Если Ном > Кол Тогда
    Страница = ЭлементыФормы.Панель.Страницы.Добавить();
    Иначе
    Страница = ЭлементыФормы.Панель.Страницы.Получить(Ном-1);
    КонецЕсли;
    Страница.Имя     = Формат(Ном, "ЧЦ=3;ЧВН=");
    Страница.Заголовок = Выборка.Поле.Наименование;
    Страница.Значение   = Выборка.Поле;
    Видимость = истина не нужна.
    Тресните меня в лоб, если чем отличается от первоначального:
    Код ( (Unknown Language)):
            ЭлементыФормы.Панель.Страницы[Ном-1].Имя       = Формат(Ном, "ЧЦ=3;ЧВН=");
    В ходе отладки они то появлялись, то после небольшого изменения кода пропадали. В конечном итоге я пришел к выводу, что корень зла в управлении их вкл/выключением (у меня птичка на диалоге).
    Код ( (Unknown Language)):
    Процедура ОтобразитьПриИзменении(Элемент)
    Если Отобразить Тогда
    ЭлементыФормы.Панель.ОтображениеЗакладок = ОтображениеЗакладок.СверхуСПрокруткой;
    Иначе
    ЭлементыФормы.Панель.ОтображениеЗакладок = ОтображениеЗакладок.НеИспользовать;
    КонецЕсли;
    КонецПроцедуры
    И вот кажется, если закладки изначально включены (в конф.) а метод их повторно включает на экране, то на экране видна рамка панели, но без закладок. Выключается всегда четко. Повторно включаешь, опять без закладок. Заклинило ее одним словом.

    Теперь привел в порядок - включение только выключенных и наоборот. Работает.
    Всем спасибо. Плюсики по желанию.

    Ну как же! Создались несколько страниц. Потом их спрятал. А для повторного раза старые нужно стереть. Только Фигня осталась старая - удаляются кроме одной.

    Обижаешь. Я по-молодости, за такое - на дуэль. Это список складов, авторов и т.д.
     
  5. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Вот зараза! Переношу на другую форму - опять ерунда всякая.
    И вот, помучавшись, теперь меня пронесло. Оказывается, надо выполнять пару правил:
    - Имя страницы желательно начинать с буковки. Я формировал вроде "002". Программно позволяет, а в конфигураторе ругается.
    - Не любит страниц с ПУСТЫМ название. Надеюсь, только в этом и загвоздка.
     
Загрузка...

Поделиться этой страницей