Довідковий матеріал

Робота з полем вибору

Елемент керування "Поле вибору" призначений для зберігання та швидкого вибору одного зі значень, що входять до його списку вибору. Список вибору для поля вибору є списком значень. Значенням поля вибору є одне єдине значення, а не весь список вибору.Встановлення значення в полі вибору. Подання значення, що зберігається в полі вибору. Пошук значення в полі вибору за введеним текстом. Зв'язок поля вибору з даними. Особливості ініціалізації та використання списку вибору. Використання поля вибору: приклад 1. Використання поля вибору: приклад 2. Використання поля вибору: приклад 3

Робота з полем вибору

Встановлення значення в полі вибору

Подання значення, що зберігається в полі вибору

Пошук значення в полі вибору за введеним текстом

Зв'язок поля вибору з даними

Особливості ініціалізації та використання списку вибору

Використання поля вибору: приклад 1

Використання поля вибору: приклад 2

Використання поля вибору: приклад 3

 

Елемент керування "Поле вибору" призначений для зберігання та швидкого вибору одного зі значень, що входять до його списку вибору. Список вибору для поля вибору є списком значень. Значенням поля вибору є одне єдине значення, а не весь список вибору.

Встановлення значення в полі вибору

У Полі вибору можна встановити будь-яке значення. У процесі встановлення значення буде виконано його пошук серед значень, що входять до списку вибору. Якщо встановлюване значення знайдено у списку вибору, воно буде збережене в полі вибору, інакше в полі вибору буде встановлено значення "Невизначено". Винятком є значення "Невизначено", яке можна встановити в полі вибору в будь-якому разі, незалежно від того, які значення при цьому зберігаються у списку вибору.

Наприклад, якщо список вибору має значеннями числа 1, 2 і 3, тоді в полі вибору вдасться встановити будь-яке з цих значень. Під час встановлення інших значень, хоча помилки часу виконання й не станеться, вони збережені не будуть.

Подання значення, що зберігається в полі вибору

Як подання значення, що зберігається в полі вибору, використовується подання елемента списку вибору, значення якого еквівалентне значенню поля вибору. Якщо в елемента списку вибору подання не зазначено, воно формується як текстове подання самого значення. У ситуаціях, коли у списку вибору є кілька однакових значень із різними поданнями, використовуватиметься перше знайдене з цих значень. Подання значення при цьому буде сформовано на його основі, як описувалося вище.

Пошук значення в полі вибору за введеним текстом

Пошук значень за текстом здійснюється на основі подань для елементів списку вибору. Для тих елементів, у яких подання значення не зазначено, використовується подання самого значення, що зберігається в ньому.

Зв'язок поля вибору з даними

Поле вибору можна пов'язувати за даними з вибраним значенням, а не зі списком значень. Наприклад, якщо ми хочемо, щоб у полі вибору можна було вибирати число, і воно було пов'язане за даними зі значенням деякого реквізиту, типом даних для реквізиту має бути число, а не список значень.

Особливості ініціалізації та використання списку вибору

Для правильного відображення в полі вибору даних, з якими воно пов'язане, список вибору має формуватися в тілі модуля форми. Формувати список вибору для поля вибору в обробнику будь-якої з подій форми — запізно. Це призведе до того, що в полі вибору буде встановлено значення «Невизначено», хоча в реквізиті при цьому може бути будь-яке значення.

Така ситуація виникає через те, що дані встановлюються в пов'язані з ними елементи керування форми в процесі створення форми. А обробники подій ПередВідкриттям(), ПриВідкритті() викликаються після створення самої форми, у процесі ініціалізації її візуальної частини. Виходить, що під час створення форми полю вибору надали деяке значення в момент, коли його список вибору порожній. При цьому, оскільки список вибору порожній, замість встановлюваного значення в полі вибору буде збережено значення «Невизначено».

У разі зміни типу значення (властивість "ТипЗначення") для списку вибору, який має елементи, буде виконано перетворення їхніх значень до нового типу. Можлива така ситуація: після зміни типу значення для списку вибору деяке значення, яке раніше вдавалося успішно встановити в полі вибору, після зміни типу значення встановити не вдається. Причина такої ситуації в тому, що в процесі встановлення типу значення для списку вибору значення, яке раніше успішно встановлювалося, було конвертовано в інше значення (відповідно до нового типу значення). Відповідно, встановлюване значення у списку вибору більше знайдено не буде.

Використання поля вибору: приклад 1

Нехай є форма, у якій розміщені поле вибору (ПолеВибору1), поле введення (ПолеВведення1) і створено реквізит (Реквізит1: число, довжина = 10, точність = 0). Як дані для редагування в ПолеВведення1 і ПолеВибору1 задано реквізит Реквізит1. У тілі модуля форми написано такий код:

ЕлементиФорми.ПолеВибору1.СписокВибору.Додати(1, "Один");
ЕлементиФорми.ПолеВибору1.СписокВибору.Додати(2, "Два");
ЕлементиФорми.ПолеВибору1.СписокВибору.Додати(3, "Три");

Відкривши таку форму в Підприємстві, можна побачити, як встановлюватимуться значення в полі вибору:

1. У початковому стані поле вибору — порожнє, поле введення містить значення 0.

2. Вибираємо в полі вибору у випадаючому списку рядок із написом "Один": у поле введення поміщається значення 1. Оскільки поле введення й поле вибору пов'язані з одним і тим самим реквізитом форми, у разі зміни значення в полі введення воно встановлюється в полі вибору й навпаки. У цьому випадку в полі вибору вибрали рядок "Один", значення для якого дорівнює 1. Воно й відобразилося в полі введення.

3. Вибираємо в полі вибору у випадаючому списку рядок із написом "Два": у поле введення поміщається значення 2.

Перейдемо в поле введення й спробуємо редагувати значення в ньому:

1. Введемо в поле введення значення 3 і перейдемо з поля введення. У поле вибору запишеться значення 3 і встановиться значення з відповідного рядка списку вибору поля вибору ("Три").

2. Повернемося в поле введення й введемо в ньому значення 4. Перейдемо з поля введення до наступного елемента керування. У полі введення буде збережено введене значення "4", а поле вибору стане порожнім. У цьому випадку введене в поле введення значення 4 буде збережено в даних, пов'язаних із полем введення, після чого виставлено з них у поле вибору. Оскільки поле вибору не має у списку вибору значення 4, воно в полі вибору встановлено не буде.

Використання поля вибору: приклад 2

Нехай є форма, у якій розміщені поле вибору (ПолеВибору1), поле введення (ПолеВведення1) і створено реквізит (Реквізит1: ДовідникПосилання.Номенклатура). Як дані для редагування в ПолеВведення1 і ПолеВибору1 задано реквізит Реквізит1. У тілі модуля форми написано такий код:

ЕлементиФорми.ПолеВибору1.СписокВибору.Додати(Довідники.Номенклатура.Елемент1, "Один");
ЕлементиФорми.ПолеВибору1.СписокВибору.Додати(Довідники.Номенклатура.Елемент2, "Два");

Відкривши таку форму в 1С:Підприємстві, можна побачити, як встановлюватимуться значення в полі вибору:

1. У початковому стані поле вибору й поле введення — порожні:

2. Вибираємо в полі вибору у випадаючому списку рядок із написом "Один": у поле введення поміщається значення. Оскільки поле введення й поле вибору пов'язані з одним і тим самим реквізитом форми, у разі зміни значення в полі введення воно встановлюється в полі вибору й навпаки. У цьому випадку в полі вибору вибрали рядок "Один", значення для якого дорівнює посиланню на елемент довідника Довідники.Номенклатура.Елемент1. Воно й відобразилося в полі введення.

3. Вибираємо в полі вибору у випадаючому списку рядок із написом "Два": у поле введення поміщається посилання на елемент довідника Довідники.Номенклатура.Елемент2:

Перейдемо в поле введення й спробуємо редагувати значення в ньому:

1. Виберемо в полі введення значення Довідники.Номенклатура.Елемент1. У поле вибору запишеться значення Довідники.Номенклатура.Елемент1 і встановиться значення з відповідного рядка списку вибору поля вибору ("Один").

2. Виберемо в полі введення значення Довідники.Номенклатура.Елемент2. У поле вибору запишеться значення Довідники.Номенклатура.Елемент2 і встановиться значення з відповідного рядка списку вибору поля вибору ("Два").

3. Виберемо в полі введення значення Довідники.Номенклатура.Елемент3. У поле вибору значення Довідники.Номенклатура.Елемент3 записано не буде, оскільки його не було додано до списку вибору. Значенням у полі введення буде "Невизначено":

Використання поля вибору: приклад 3

Нехай є зовнішня обробка, у якій створено реквізит Реквізит1 типу ДовідникПосилання.Номенклатура. У зовнішній обробці є дві форми: у першій встановлюється значення реквізиту й після натискання кнопки відкривається друга форма.

У лівій колонці — зовнішній вигляд першої форми зовнішньої обробки. Після натискання кнопки "Відкрити форму" з поля введення береться значення й зберігається в реквізиті зовнішньої обробки, після чого відкривається друга форма:

// Вставити вміст обробника.
Реквізит1 = ЕлементиФорми.ПолеВведення1.Значення;
ф = ОтриматиФорму("Форма");
ф.Відкрити();

У правій колонці — зовнішній вигляд другої форми зовнішньої обробки. У ній розміщені поле вибору й поле введення; вони обидва пов'язані з реквізитом зовнішньої обробки Реквізит1 за даними. Наведемо текст модуля форми:

Процедура КнопкаВиконатиНатискання(Елемент)
	// Вставити вміст обробника.
КінецьПроцедури
ЕлементиФорми.ПолеВибору1.СписокВибору.Додати(Довідники.Номенклатура.Елемент1, "Один");
ЕлементиФорми.ПолеВибору1.СписокВибору.Додати(Довідники.Номенклатура.Елемент2, "Два");

Ми бачимо, що в модулі форми ініціалізується список вибору для поля вибору: поле вибору може приймати значення Довідники.Номенклатура.Елемент1, Довідники.Номенклатура.Елемент2, Невизначено. При цьому для двох перших значень явно зазначено їхні подання — "Один" і "Два".

Подивимося, який вигляд матиме друга форма залежно від того, яке значення попередньо збережено в реквізиті зовнішньої обробки Реквізит1.

Значення реквізиту — порожнє посилання:

Обработка Внешняя обработка!  Действия Ў    Начальное значение: -  Открыть форму  Выполнить Закрыть Обработка ВнешняяОбработка! Действия - I  I Выполнить Закрыть

У цьому випадку в полі введення значенням буде порожнє посилання на елемент довідника, а в полі вибору — Невизначено. Оскільки у списку вибору для поля вибору порожнє посилання на елемент довідника не входить до значень, його встановити не можна — під час встановлення значення у вигляді порожнього посилання поле вибору набуде значення Невизначено.

Значення реквізиту — одне зі значень, наявних у списку вибору для поля вибору:

Обработка Внешняя обработка! Действия Ў I  Начальное значение: Элемент! Открыть форму Выполнить Закрыть Обработка ВнешняяОбработка! Действия - I   Элемент! 1-1x1 Выполнить Закрыть

У цьому випадку і в полі введення, і в полі вибору значенням буде посилання на Елемент1 довідника. При цьому для подання значення поле вибору скористається поданням встановленого значення зі списку вибору — рядком "Один".

Значення реквізиту у списку вибору для поля вибору відсутнє:

Обработка Внешняя обработка! Действия Ў I  Начальное значение: ЭлементЗ Открыть форму Выполнить Закрыть Обработка ВнешняяОбработка! Действия Ў I  ЭлементЗ Выполнить Закрыть

У цьому випадку у формі, що відкривається, у полі вибору й полі введення буде здійснено спробу встановити як значення посилання на Елемент3 довідника. У полі введення таке значення буде нормально встановлено, а от у полі вибору після його встановлення збережеться значення Невизначено, оскільки посилання на Елемент3 довідника не входить до значень зі списку вибору.

Зауважимо, що в цьому прикладі у разі перенесення ініціалізації списку вибору для поля вибору в будь-який з обробників подій форми, що відкривається, у кожному з розглянутих випадків поле вибору набуватиме значення Невизначено, оскільки на момент встановлення значення в нього список вибору буде ще порожнім.

Записатися телефоном