Имя: Пароль:
1C
1C 7.7
v7: как добавить в форму элемента справочника вкладку для размещения на ней новых реквизитов
0 alpha78
 
29.05.19
10:00
здравствуйте уважаемые коллеги, в 1с 77 как добавить в форму элемента справочника вкладку для размещения на ней новых реквизитов, такого элемента формы как вкладка не обнаружил, но в стандартных документах она есть.
спасибо
1 ДенисЧ
 
29.05.19
10:01
Слои используй.
2 kubik_live
 
29.05.19
10:08
ИспользоватьЗакладки(1)
3 HawkEye
 
29.05.19
10:08
(0) форма.использоватьЗакладку()
дальше работаешь с закладками как со списком значений
4 alpha78
 
29.05.19
10:11
понял спасибо
5 alpha78
 
29.05.19
10:11
всем удачи
6 NikVars
 
29.05.19
10:16
7 Arbuz
 
29.05.19
13:43
//******************************************************************************
// УстановкаВидимостиСлоев(НомерЗакладки)
//
// Параметры:
//  НомерЗакладки
//
// Возвращаемое значение:
//  Нет.
//
// Описание:
//  Устанавливает видимость слоев формы в зависимости от текущей закладки.
//
Процедура УстановкаВидимостиСлоев(НомерЗакладки)
    
    Если НомерЗакладки=1 Тогда
        Форма.ИспользоватьСлой("Шапка,Основной,Подвал");
    Иначе                                                                
        Форма.ИспользоватьСлой("Шапка,ТабличнаяЧасть,Подвал");
    КонецЕсли;      
    
КонецПроцедуры // УстановкаВидимостиСлоев()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()

    //создаем закладки
    Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение("Шапка");
    Форма.Закладки.ДобавитьЗначение("Табличная часть");
    
    Если Выбран() = 0 Тогда
        // новый документ/эл.справочника открываем на первой закладке
        Форма.Закладки.ТекущаяСтрока(1);
    Иначе
        // записанный документ/эл.справочника открываем на второй закладке
        Форма.Закладки.ТекущаяСтрока(2);
    КонецЕсли;
    
    УстановкаВидимостиСлоев(Форма.Закладки.ТекущаяСтрока());

КонецПроцедуры  // ПриОткрытии()

//******************************************************************************
// Предопределенная процедура
//
// срабатывает при интерактивном нажатии на закладку
//
Процедура ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)
                        
    УстановкаВидимостиСлоев(Форма.Закладки.ТекущаяСтрока());
    // делаем что-либо в зависимости от номера закладки
    Если НомерЗакладки=2 Тогда
        ОбновитьНадписи();
    КонецЕсли;      
    
КонецПроцедуры // ПриВыбореЗакладки()    
                                                            

это типовые процедуры для работы с закладками
у меня есть еще функция в глобальнике, позволяющая программно переключать закладку, не меняя код типовых модулей, но нужен 1с++. нужно передать контекст открытой формы и номер или название закладки, возвращает номер закладки или 0 если нет такой закладки.


Функция глПереключитьЗакладку(Конт, Закладка) Экспорт
    
    Перем СпЗакладок; // :"СписокЗначений"
    
    Конт.Форма.Закладки.Выгрузить(СпЗакладок);
    
    Если ТипЗначения(Закладка) = 1 Тогда
        Если (СпЗакладок.РазмерСписка() < Закладка)
                ИЛИ (Закладка < 1) Тогда
            Возврат 0;
        КонецЕсли;
    ИначеЕсли ТипЗначения(Закладка) = 2 Тогда
        Закладка = СпЗакладок.НайтиЗначение(Закладка);
        Если Закладка = 0 Тогда
            Возврат 0;
        КонецЕсли;
    Иначе
        Возврат 0;
    КонецЕсли;
    
    Конт.Форма.Закладки.ТекущаяСтрока(Закладка);
    Конт.ПриВыбореЗакладки(Закладка,СпЗакладок.ПолучитьЗначение(Закладка));
    Конт.Форма.Обновить(0);
    Возврат Закладка;
    
КонецФункции
8 alpha78
 
29.05.19
13:52
большое спасибо
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший