Copyright © 2010 Promsite. All Rights Reserved.
P  R  O  M  S  I  T  E
Статьи по 1С
стр. 1
стр. 1
Многофункциональная кнопка
       
       Когда на форме всего две кнопки: ОК и Закрыть проблема с многофункциональностью кнопок не возникает. Но вот когда нет места из-за обилия разных флажков, переключателей и других элементов формы, тогда приходится призадумываться об уплотнении.
       Задача: имеем только одну кнопку, но она должна менять не только название, но выполнять совершенно разные действия. Нижеследующий пример показывает как это можно сделать.

Всю работу можно условно разбить на 4-е этапа:

- 1.визуальное проектирование кнопки;
- 2.создание списка возможных значений кнопки;
- 3.изменение заголовка кнопки;
- 4.запуск нужной процедуры соответсвующей названию кнопки.

        1. Визуальное проектирование кнопки.











     
2. Создание списка возможных значений.

Это просто: создаем список значений и в него добавляем нужные значения, в примере их пять.

Сз=СоздатьОбъект("СписокЗначений");
Сз.ДобавитьЗначение("Удалить");
Сз.ДобавитьЗначение("Добавить");
Сз.ДобавитьЗначение("Очистить");
Сз.ДобавитьЗначение("Просмотр");
Сз.ДобавитьЗначение("Выход");

3. Изменение заголовка кнопки.

       Для этого будем использовать метод ВыбратьЗначение. У него пять параметров: первые два нам вообще не нужны, в третий параметр - в переменную Поз будем записывать номер строки из списка значений на которой щелкнули мышкой. Последний параметр, дело вкуса, он просто определяет вид списка. Мне нравится значение этого параметра = 1. Предпоследний параметр в общем-то также не нужен здесь(это таймаут)
Вот что получится:

Процедура ПриВыборе()
    Сз.ВыбратьЗначение(,,Поз,,1);
    Если Поз=1 Тогда
        Форма.Кнопка.Заголовок(Сз.ПолучитьЗначение(1));
    ИначеЕсли Поз=2 Тогда
        Форма.Кнопка.Заголовок(Сз.ПолучитьЗначение(2));
    ИначеЕсли Поз=3 Тогда
        Форма.Кнопка.Заголовок(Сз.ПолучитьЗначение(3));
    ИначеЕсли Поз=4 Тогда
        Форма.Кнопка.Заголовок(Сз.ПолучитьЗначение(4));
    Иначе
        Форма.Кнопка.Заголовок(Сз.ПолучитьЗначение(5));
    КонецЕсли;
КонецПроцедуры

       Все просто: кликаем на пятой строке в списке где значение - Выход, в переменной Поз появляется число 5.
При срабатывании процедуры ПриВыборе(),по значению в Поз=5 кнопке присваивается заголовок Выход.
       

 



       Основную кнопку создадим со стандартным заголовком Действие. Т.к. сменить заголовок кнопки не самоцель, и она должна ещё запускать нужную процедуру, придется создать еще одну вспомогательную маленькую кнопочку, которая будет управлять сменой заголовков в основной кнопке.

       В свойствах маленькой кнопки на закладке дополнительно в поле формула запишем: ПриВыборе()

страницы: 1   2
страницы: 1   2

Для отображения Облака ссылок
необходим
Adobe Flash Player 9
или выше.