Волшебство
программирования на 1С:Предприятие 7.7 и 8.0 Выпуск 75 / 22.09.2004
Здравствуйте,
уважаемые подписчики.
Начинающие программисты на 8.0 иногда затрудняются
организовать подбор в 8.0. Подбирать можно все,
что угодно: товары, контрагентов, сотрудников. Это типичная задача
для автоматизированной системы, поэтому нельзя обойти это вниманием.
Но даже если вы многое знаете, прочитайте этот выпуск
- есть некоторые тонкости.
v8:
Будни: Организация подбора
1. Простой подбор
В форме размещаем кнопку "Подбор".
Это может быть кнопка панели инструментов или отдельно стоящая
кнопка.
В первой строке получаем форму выбора. Это особая форма, которая
может не совпадать с формой списка (а может совпадать). Форму
выбора
можно
создать
самому, или она будет сгенерирована системой автоматически, или
форма списка может работать в режиме выбора.
Если вы получили не форму подбора, а обычную форму (методом
ПолучитьФорму или ПолучитьФормуСписка), то по умолчанию у нее
не установлено
свойство РежимВыбора. Нужно или установить это свойство в Истина,
или
оповещать о выборе элемента самостоятельно (см. событие табличного поля "Выбор" метод
формы ОповеститьОВыборе).
Первым параметром можно передать имя формы или объект описания
метаданных типа формы. Если у объекта несколько форм выбора,
то здесь можно указать, какую форму нужно использовать.
Вторым параметр указывается владелец формы -
форма или элемент управления, из которого производится
вызов формы
выбора. После совершения выбора именно владельцу формы будет
послано оповещение о выборе, которое инициирует событие "ОбработкаВыбора" (у
формы или элемента формы).
Третьим параметром можно указать ключ уникальности для
поиска среди уже открытых форм. Если форма с таким ключом
уникальности будет найдена, то будет возвращена именно она.
Это удобно, если
не нужно
открывать новых форм выбора.
Вторая строка устанавливает режим, при котором после выбора
значения форма не будет закрываться, т.е. это и и есть основная
функция подбора. При множественном выборе это свойство имеет
смысл установить в Истина, но об этом ниже. Здесь же можно присвоить
и другие свойства открываемой формы, например, расположение на
экране, задать значения реквизитов формы или экспортных переменных
модуля формы.
Третья строка открывает форму выбора. После первой строки форма
еще не была открыта, но ее модуль уже был скомпилирован и инициализирован.
В свойствах формы должен
быть назначен обработчик события "ОбработкаВыбора".
Если Вопрос("Такой товар уже есть (" + СокрЛП(ЗначениеВыбора)
+ ")! Увеличить
кол-во?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
Строка.Количество = Строка.Количество + 1;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
2. Множественный выбор
При таком выборе пользователь
может выделить сразу несколько элементов (например, с помощью
клавиши Ctrl) и после нажатия кнопки "Выбрать" система
вернет массив выбранных элементов, а не один элемент, как
в первом случае.