Організація вибору із довільної форми
Для цього використовується можливість відкриття форми у режимі вибору та можливість обробки події вибору.
Як приклад наведемо реалізацію вибору запису регістру відомостей. Стандартні розширення форм не підтримують механіку вибору, але її легко реалізувати.
Спочатку створимо нову форму списку регістру відомостей та назвемо її "ФормаВибору". У формі реалізуємо подію Вибір табличного поля, що відображає список.
// Форма списку регістру відомостей Процедура РеєстрДовідокСписокВибір(Елемент, ОбранаРядок, Колонка, СтандартнаОбробка) ОповістиОвиборі(ВибранийРядок); СтандартнаОбробка = Брехня; КінецьПроцедури
У цій події ми скасовуємо стандартну дію, передбачену розширенням табличного поля, і замість нього викликаємо метод ОповістиВиборі(), передаючи йому як параметр поточний рядок. Значенням поточного рядка буде значення типу РеєстрДовідівКлючЗаписи. .
Тепер реалізуємо функціональність вибору у тій формі, в якій це потрібно. Наприклад, у формі обробки, що має поля введення "Валюта" та "Період". // Форма, з якої виконується вибір Процедура КнопкаВиконатиНатискання(Кнопка)
// Створимо ключ, що ідентифікує рядок у списку регістру ДаніКлюча = Новий Структура("Період, Валюта", Період, Валюта); Ключ = РегістриВідомостей.КурсиВалют.СтворитиКлючЗаписи(ДаніКлюча);
// Створимо форму регістра і відкриємо її Фрм = РеєстриДовідок.КурсиВалют.ОтриматиФормуСписку("ФормаВибору"); Фрм.РежимВибору = Істина; Фрм.ВласникФорми = ЦяФорма; Фрм.ПараметрПоточнаРядок = Ключ; Фрм.Відкрити();
Процедура Обробка Вибору (Значення Вибору, Джерело)
// Обробимо значення вибору Валюту = ЗначенняВибору.Валюту; Період =ЗначенняВибору.Період;
Спочатку ми сформуємо ключ запису регістра відомостей, який буде використовуватися для встановлення у списку поточного рядка відповідно до поточних значень полів введення. Сама установка буде виконуватися через стандартний параметр форми ПараметрПоточнийРядок.
Зауважимо, що якщо для встановлення поточного рядка розширення форми не надає стандартного параметра, то можна створити свій реквізит у форми вибору, заповнити його аналогічно заповненню стандартного параметра в цьому прикладі, і при відкритті форми забезпечити позиціонування у списку відповідно до значення цього реквізиту.
Далі ми створюємо форму, встановлюємо їй режим вибору, власника форми та виконуємо відкриття форми.
Тепер нам потрібно лише реалізувати обробник вибору у формі та виконати в ньому необхідніші дії з вибраним значенням.
Зауважимо, що як власник форми може встановлюватися не тільки сама форма, в якій здійснюється вибір, але і ТабличнеПоле, ПолеВводу і ПолеВибору. Відповідно і обробник вибору необхідно буде реалізовувати в цих елементів управління.