8.х переключатели

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Letos, 28 апр 2010.

  1. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Прочитал множество форумов, и не где не увидел доходчивого описания работы с «Переключателем». Вот решил написать сам.

    На МОЙ взгляд наиболее часто встречающаяся ошибка, это не правильное представлении об «Переключателе». Когда вы размещаете несколько так объектов, например 3, на форме, то многие считают что в логике программы это 3 разных объекта, которые влияют друг на друга. Но, по сути, программа воспринимает все 3 «Переключателя» как один объект. И выбор одного из них меняет состояние этого объекта. Рассмотрим пример.

    1. Создадим на форме три переключателя. Для удобства не будем менять названий.
    2. Выделите «Переключатель1». В его свойстве в разделе «ОСНОВНЫЕ» поставьте галочку первый в группе. «ТИП ЗНАЧЕНИЯ» выберем число. (Далее рассмотрим почему именно число). Длину можно поставить равной единице, но особой функциональности это не несёт.
    3. Выделяем «Переключатель2» в графе «ВЫБИРАЕМОЕ ЗНАЧЕНИЕ» поставим 1.
    4. Выделяем «Переключатель3» в графе «ВЫБИРАЕМОЕ ЗНАЧЕНИЕ» поставим 2.
    По сути 3 и 4 – м действиями вы установили флаг, который будет меняться при выборе соответствующего «Переключателя». В «Переключатель1» по дефолту «ВЫБИРАЕМОЕ ЗНАЧЕНИЕ» стоит ноль.
    5. Проверьте стоят ли переключатели в «ПОРЯДКЕ ОБХОДА» по порядку. (например: 13,14,15).
    6. Выделяем «Переключатель1» и пишем у него нужную нам процедуру.
    Например:
    Код:
    		
    ЭФ=ЭлементыФормы;
    Если Переключатель1=0 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда	</span>
    ЭФ.СостояниеОплаты.Значение = "Неоплачено";
    Иначе
    Если Переключатель1=1 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда	</span>
    ЭФ.СостояниеОплаты.Значение = "Частично оплачено";
    Иначе
    Если Переключатель1=2 Тогда
    ЭФ.СостояниеОплаты.Значение = "Оплачено";
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    
    7. Жмём F7. Жмём F5. Смотрим всё работает мы молодцы. И большой БОСС даёт нам премию.

    Код:
    ПОЯСНЕНИЕ К КОДУ 
    
    Почему везде стоит "Переключатель1"? Так как уже было сказано, программа воспринимает все три элемента как один, и так как "Переключатель1" является первым в группе, то Его программа и воспринимает как весь элемент, если вы поставите "Переключатель2" основным в группе то проверку правельности надо будет проводить по "Переключатель2".
    Ну а откуда "0","1","2"? Те значения, которые принимает объект при переключениях "Переключателей" их мы задавали в пункте 3 и 4.
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    За инициативу "Спасибо"

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