"Переключатель" -
является реквизитом диалога. Его
назначение, я надеюсь, общепонятно. Однако
при работе с переключателями в 1С,
пользователи встречаются с некоторыми
проблемами, так как организация работы с
переключателями не имеет аналогов в других
языках. Итак, алгоритм, следуя которому Вы
без труда сможете организовать любое
количество групп переключателей в форме.
Порядок действий.
Требуется положить
в форму необходимое количество
переключателей. Очень редко, когда
используется всего один переключатель.
Как правило в формах диалога они
встречаются группами.
Для одного из
переключателей в его свойствах надо
установить признак "Первый в
группе". Этому же переключателю надо
присвоить идентификатор, который
потом поможет нам обращаться к целой
группе переключателей.
Важный момент, который
часто забывают сделать: надо настроить
порядок обхода реквизитов, таким
образом, чтобы "первыйВгруппе" был
первым по порядку обхода. А все остальные
переключатели, которые должны быть одной
группе должны следовать за ним в порядке
обхода.
Переключатели считаются
одной группой, если они расположены друг за
другом в порядке обхода.
Как установить порядок
обхода для реквизитов. Находясь в форме, в
меню "Диалог" надо снять галку "Автоматический
порядок обхода". После этого можно либо
воспользоваться "Диалог"->"Настройка
порядка обхода", либо "Диалог"->"Порядок
обхода". Наиболее удобным, мне кажется
второй способ. При этом способе у
каждого реквизита появляется картинка с
номером реквизита. Вам остается только
щелкать мышкой по цифрам, выбирая
реквизиты в том порядке, который нужен Вам.
Примеры обходов.
Рисунок 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.
В форме две группы переключателей. По
кнопке "Сформировать" программа
должна сообщить "Да"- если выбраны
одинаковые операции, "Нет" - если
выбраны разные операции. В случае, если в
одной из групп не установлен переключатель
- система должна установить его так же как
он установлен в соседней группе. Если в
обеих группах не установлен переключатель,
то в обеих группах должен быть установлен
переключатель "сложение". Подсказка: В
этой задаче не надо "мудрить" и
перебирать все возможные варианты. Решение
задачи - на много короче ее условия.