7.7 Как програмно выбрать закладку?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Kaboom, 9 июл 2007.

  1. TopicStarter Overlay
    Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Как можно выбрать закладку програмно (из кода). Сразу предупреждаю возможные ответы: знаю что закладки - это список значений и можно использовать имеющиеся методы, но это не работает!!!:( Может я чего недопонимаю?
  2. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    Нужно выбирать не закладку, а слой, с которым она связана. Вот простой пример, документ с двумя закладками, код тела модуля:
    Код:
    // Инициализируем закладки
    Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение(1,"Настройка");
    Форма.Закладки.ДобавитьЗначение(2,"Табличная часть");
    Форма.ИспользоватьСлой("Основной,Шапка",2); 
    
    
    А теперь процедура обработки выбора закладок:
    Код:
        Если Номер=1 Тогда
    Форма.ИспользоватьСлой("Основной,Шапка",2);
    Форма.ИспользоватьСлой("ТабличнаяЧасть",0);
    ИначеЕсли Номер=2 Тогда
    Форма.ИспользоватьСлой("Основной,ТабличнаяЧасть",2);
    Форма.ИспользоватьСлой("Шапка",0);
    КонецЕсли;
    
    
    Номера закладок соответствуют порядку слоев, так что выбирается без проблем.
  3. TopicStarter Overlay
    Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Все верно, но я забыл сказать одну важную вещь - закладки не я создаю, а 1С. Использую метод справочника ЗакладкиОтбора(ИмяОтбора, ЗначениеОтбора), который создает закладки для отбора значений по реквизиту ИмяОтбора. Вопрос - как мне теперь быть, можно ли узнать какие создает слои 1С, и вообще создает ли она слои.
    Извините что с самого начала неправильно описал проблему
  4. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    Мдя... опять же не полное описание задачи. Какая конфигурация? Где отбор производиться? Я так предполагаю, что в журнале. Тогда нет, там не создаются слои. Там это работает несколько по другому.
    Вот как пример: журнал в котором устанавливается отбор по контрагентам:
    Код:
    //***************
    Процедура Отобрать()
    Если ОбъектОтбора.Выбран()=0 Тогда
    УстановитьОтбор("",);
    Иначе
    УстановитьОтбор("Контрагент",ОбъектОтбора);
    КонецЕсли;
    КонецПроцедуры
    
    
    //****************
    Процедура ВключитьЗакладки()
    Если ФлагЗакладкиОтбора=1 Тогда
    ЗакладкиОтбора("Контрагент",1,ОбъектОтбора.Выбран(),ОбъектОтбора);
    Иначе
    ЗакладкиОтбора("");
    КонецЕсли;
    КонецПроцедуры
    
    
    //*********
    ВидыОтбора("");
    
    Не заметил про метод справочника. Ну там аналогично журналу. Опишите задачу, что требуется сделать. Можете код показать.
  5. TopicStarter Overlay
    Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Так я уже сделал:)
    Подробное описания задачи: Есть комплексная конфиграция для Украины (вряд ли это поможет :)), в нужно создать новую форму справочника, чтобы были закладки по маркам автомобилей (есть реквизит в справочнике ТМЦ) и реализовать поиск по наименованию. Уже сделал закладки и поиск, но проблема в том что когда использую метод АктивизироватьЭлемент, если элемент находится на текущей вкладке - то все нормально, но если элемента нет на вкладке то ничего не происходит. Возникла идея найти вкладку с элементом и установить её текущей тогда уже делать активизацию элемента. Но я не знаю как это сделать:(
    фу ... вроде все:)
  6. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    Так, ну уже более понятно. Не могу щас проверить, но по-моему если применить метод УстановитьОтбор() откроется вкладка с значением отбора. Ну а дальше уже свой код.
    Т.е. находим элемент по наименованию, потом берем из него реквизит по которому отбор делается на закладках, марка авто в данном случае, потом устанавливаем отбор в форме списка по этому реквизиту. Должна открыться нужная вкладка.
  7. TopicStarter Overlay
    Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Счас проверю
  8. TopicStarter Overlay
    Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    не помогает :(
  9. TopicStarter Overlay
    Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Ладно, пока что сделал поиск не по всему справочнику а по текущей вкладке, так конечно все работает. Но если кто узнает как выбрать закладку пишите - всегда рад получить помощь:)
  10. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    Вот так работает:
    Код:
    Процедура ПриОткрытии()
    Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение("Все сотрудники");
    Форма.Закладки.ДобавитьЗначение("Принятые");
    Форма.Закладки.ДобавитьЗначение("Уволенные");
    КонецПроцедуры
    
    
    Процедура ПриВыбореЗакладки(Ном,Зн)
    Если Зн="Все сотрудники" Тогда
    УстановитьОтбор(,);
    ИначеЕсли Зн="Принятые" Тогда
    УстановитьОтбор("Состояние",Перечисление.ПринятУволен.Принят);
    ИначеЕсли Зн="Уволенные" Тогда
    УстановитьОтбор("Состояние",Перечисление.ПринятУволен.Уволен);
    КонецЕсли;
    КонецПроцедуры
    
    Процедура Показать()
    УстановитьОтбор("Состояние",Перечисление.ПринятУволен.Уволен);
    Форма.Закладки.ТекущаяСтрока(3);
    КонецПроцедуры    
    
    Процедура Показать() висит на кнопке в форме списка.

    Собственно интересна только строка Форма.Закладки.ТекущаяСтрока(й) й-номер нужной закладки. Работать так же как со списком значений.
  11. TopicStarter Overlay
    Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Так работает. Спасибо за помощь.
  12. Nega
    Offline

    Nega

    Регистрация:
    24 июл 2008
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Привет )
    У меня проблемка с закладками по сотрудникам, при переходе с закладки "Уволенные" на "Все сотрудники" список сотрудников отображает уволенных, помогите разобраться )
  13. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    1. причем тут конфигурарование?
    2. какой документ, какая конфа, какая версия 1С?
    3. может ты всех уволил по ошибке? :)
  14. Nega
    Offline

    Nega

    Регистрация:
    24 июл 2008
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    ммм
    версия 1С: 7.7
    задача- создать закладки "Все сотрудники", "Принятые", "Уволеные" для справочника "Сотрудники"
    проблема-смотреть выше )
  15. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    где тебе эти закладки нужны? конфа ЗиК? закладка с уволенными нормально работает? при смене закладки табличку свою переформировываешь?
  16. Nega
    Offline

    Nega

    Регистрация:
    24 июл 2008
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    ммм
    Закладки идут в таком порядке "Все сотрудники", "Принятые", "Уволенные"
    и должны отображаться в справочнике "Сотрудники"
    все отображается нормально, только когда перехожу с закладки "Уволенные" на закладку "Все сотрудники", отображаются уволенные
    Код такой же как и у Steel Rain только нет процедуры Показать()
  17. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    проверь написание "Все сотрудники"... должно быть везде одинаково... единственное что приходит в голову...

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