Іноді, при виборі реквізиту типу посилання у формах документів, виникає потреба сформувати власний список вибору. Алгоритм його отримання може бути достатньо складним, щоб реалізувати це через властивості реквізиту документа чи елемента форми. У такому випадку задачу можна реалізувати програмно. Досить часто це виконується через відмову від стандартної обробки вибору, та створення власної форми вибору для елементів довідників і документів. Цей варіант особливо добре підходить для створення динамічних списків вибору і складних алгоритмів відбору.
Проте також є можливість встановити список вибору, для стандартної обробки вибору через властивість елементу форми «ПараметрыВыбора». У такому випадку буде використовуватись стандартна обробка вибору, але з програмно сформованим списком доступних значень.
Приклад реалізації: Розглянемо цей варіант на прикладі документу «Замовлення клієнта». Припустимо, що при виборі номенклатури в табличній частині документа, нам необхідно формувати список вибору лише з тих позицій, по яким є залишки на складі.
Для цього переходимо в форму документу, та створюємо процедуру події «НачалоВыбора» для елемента форми «Номенклатура»:

Створюємо процедури на клієнті і функцію без контексту на сервері, в яких прописуємо наступний код:

В коді серверної функції, з допомогою запиту до регістру «ОстаткиНоменклатуры», отримуємо список номенклатур, по яким є залишки на складі. Записуємо отримані значення у масив та повертаємо його в клієнтську процедуру.
Далі в клієнтській процедурі створюємо масив об’єктів «ПараметрВыбора» та додаємо до нього новий об’єкт з вказанням відбору по посиланню і масиву необхідних значень:
![]()
За потреби, таких відборів можна додати декілька. Останнім кроком встановлюємо для властивості елемента форми «ПараметрыВыбора» новий фіксований масив наших параметрів вибору:
![]()
Після перевірки роботи доопрацювання в режимі використання бачимо, що при виборі номенклатури відкривається список лише тих позицій, по яким є залишки на складі:
