Урок 14.
"Переключатели в формах".

 

"Переключатель" - является реквизитом диалога. Его назначение, я надеюсь, общепонятно. Однако при работе с переключателями в 1С, пользователи встречаются с некоторыми проблемами, так как организация работы с переключателями не имеет аналогов в других языках. Итак, алгоритм, следуя которому Вы без труда сможете организовать любое количество групп переключателей в форме. Порядок действий. 

  1.  Требуется положить в форму необходимое количество переключателей. Очень редко, когда используется всего один переключатель. Как правило в формах диалога они встречаются группами.

  2. Для одного из переключателей в его свойствах надо установить признак  "Первый в группе". Этому же переключателю надо присвоить идентификатор, который потом поможет нам обращаться к целой группе переключателей.

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

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

Как установить порядок обхода для реквизитов. Находясь в форме, в меню "Диалог" надо снять галку "Автоматический порядок обхода". После этого можно либо воспользоваться "Диалог"->"Настройка порядка обхода", либо "Диалог"->"Порядок обхода". Наиболее удобным, мне кажется второй способ.  При этом способе у каждого реквизита появляется картинка с номером реквизита. Вам остается только щелкать мышкой по цифрам,  выбирая реквизиты в том порядке, который нужен Вам.

Примеры обходов.


Рисунок 1. Это пример не правильного обхода. Видимо,  автор пытался сделать группу из 4-х переключателей, но третий реквизит в обходе - "рамка". И эта рамка разобьет группу из 4-х переключателей на 2 группы по 2 переключателя. Если быть более точным то ота форма будет работать как 2 группы: сложение+деление и вычитание+умножение. 

Рисунок 2. На этом рисунке 2 группы переключателей. Сложение+Вычитание и Умножение+Деление. Это 2 независимых друг от друга группы, так как реквизит №4 (рамка), разделяет порядок обхода переключателей на 2 части. У реквизитов "сложение" и "умножение" должен быть идентификатор и признак "первый в группе". 

Как работать с переключателями из языка. Обращение к группе переключателей осуществляется с помощью идентификатора первого в группе. Если пользователь выбирает "первыйВгруппе", то значение в идентификаторе будет равно 1. Для всех следующих по порядку обхода переключателей, значение идентификатора будет увеличиваться на единицу. 

Кроме этого, используемый идентификатор доступен  не только для чтения, но и для записи. В этом случае  - вы сможете установить значение переключателя из модуля формы.

Рассмотрим пример. Будем работать по рисунку №2.  Пусть в реквизите "сложение" стоит признак "первый в группе" и идентификатор "группа1". Пусть в реквизите "умножение" стоит признак "первый в группе" и идентификатор "группа2". По кнопке "Сформировать" будет выводиться название выбранного переключателя.

ПроцедураСформировать()
    Сообщить("В первой группе переключателей выбрано ");
    Если группа1=1 тогда 
        сообщить("Сложение");
    ИначеЕсли группа=2 тогда
        сообщить("Вычитание");
    иначе
        сообщить("Ничего не выбрано");
    конецЕсли;

    Сообщить("Во второй группе переключателей выбрано ");
    Если группа2=1 тогда 
        сообщить("Умножение");
    ИначеЕсли группа=2 тогда
        сообщить("Деление");
    иначе
        сообщить("Ничего не выбрано");
    конецЕсли;
КонецПроцедуры

В примере можно было бы использовать еще одно условие: Если ни один из переключателей в группе не выбран, то значение идентификатора будет равно нулю.

Задание для самостоятельной работы: 

Задача 1. Подправьте обход на рисунке 1 и добавьте 2 числовых реквизита. По кнопке "Сформировать"  должен выводиться результат выбранной пользователем операции. При открытии формы - флажок должен автоматически устанавливаться напротив пункта "умножение".

Задача 2. 

В форме  две группы переключателей.  По кнопке "Сформировать" программа должна сообщить "Да"- если выбраны одинаковые операции, "Нет" - если выбраны разные операции.  В случае, если в одной из групп не установлен переключатель - система должна установить его так же как он установлен в соседней группе. Если в обеих группах не установлен переключатель, то в обеих группах должен быть установлен переключатель "сложение". Подсказка: В этой задаче не надо "мудрить" и перебирать все возможные варианты. Решение задачи - на много короче ее условия.

Hosted by uCoz