Установка отбора по списку значений при открытии формы выбора справочника из реквизита обработки

11.12.21

Разработка - Математика и алгоритмы

Описан алгоритм установки отбора по списку значений при открытии формы выбора справочника. Параметром отбора является список значений передаваемый из одной формы обработки в другую форму этой же обработки. Тестировано под платформу 8.3.18

Исходная задача: нужно выбрать автомобиль из списка автомобилей, но не из всего большого перечня имеющихся в справочнике автомобилей элементов, а из двух-трех десятков автомобилей, уже отобранных в список значений.

Для этого, необходимо открыть справочник с предустановленным отобором по списку значений. Исходный список значений имеется на форме обработки, по команде открытия другой формы этой же обработки нужно чтобы при выборе одного из реквизитов открываемой формы открывалась форма выбора справочника с уже определенным списком значений для выбора, а не все содержимое справочника, при этом выбор должен осуществляться не из списка выбора (с использованием свойства "СписокВыбора") а из "полноценного" перечня элементов справочника, чтобы пользователь мог видеть значения нескольких реквизитов элемента справочника и осуществлять удобный и осознанный выбор.

Последовательность реализации такая:

1. В исходной форме обработки в команде открытия другой формы обработки указываем:

ОткрытьФормуМодально("Обработка.ПрокатАвто.Форма.ФормаРедактированияСтатусаАвто", Новый Структура("СписокАвтомобилей", СписокАвтомобилей.ВыгрузитьЗначения()), ЭтаФорма);

Таким образом передаем в открываемую форму массив значений выгруженный из списка значений ("СписокАвтомобилей") расположенного на исходной форме обработки.

2. В открываемой форме обработки (куда передается список значений в виде массива) должны быть: реквизит формы с типом значения "СписокЗначений" и параметр с типом значения "Произвольный", при этом имя параметра должно быть таким как указано в параметрах открытия формы (в нашем примере это "СписокАвтомобилей").

3. В открываемой форме должен быть такой код:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	СписокАвтомобилей = Неопределено;
	
	Параметры.Свойство("СписокАвтомобилей", СписокАвтомобилей);
	РеквизитСписокАвтомобилей.ЗагрузитьЗначения(СписокАвтомобилей);
	
КонецПроцедуры

&НаКлиенте
Процедура АвтомобильНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	ФормаВыбора = Справочники.РеестрТС.ПолучитьФормуВыбора();
	ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
	ФормаВыбора.Отбор.Ссылка.Использование = Истина;
	ФормаВыбора.Отбор.Ссылка.Значение = РеквизитСписокАвтомобилей;
	
	ЭтотОбъект.Автомобиль = ФормаВыбора.ОткрытьМодально();

КонецПроцедуры

 В процедуре "ПриСозданииНаСервере" мы получаем значения из параметра "СписокАвтомобилей" и загружаем их в реквизит "РеквизитСписокАвтомобилей" в момент открытия формы обработки.

В процедуре "АвтомобильНачалоВыбора" программно устанавливается требуемый вариант отбора и модально открывается форма выбора справочника с подстановкой выбранного значения в реквизит открытой формы обработки.

отбор список значений справочник обработка форма выбора открытьмодально выгрузить

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3162    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7550    user1959478    51    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3107    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10902    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4357    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    3527    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9041    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 1913 12.12.21 00:36 Сейчас в теме
ОткрытьФорму("ФормаВыбора", Новый Структура("Отбор", Новый Структура("Ссылка", СписокАвтомобилей)), Элемент);

И всё, пожалуй.
anatoliy123; slige; Ermigen; ElvirkaBerest; chemezov; starponyx; Batman; bilex; IgorS; mrChOP93; prog1c_vl; +11 Ответить
2. prog1c_vl 24 12.12.21 11:24 Сейчас в теме
Да, можно и так, спасибо.
Надо будет дополнить статью.
3. gzharkoj 520 12.12.21 16:56 Сейчас в теме
(2) Как у вас написано на типовых работать не будет, там модальный режим запрещен. Лучше про модальный режим забыть.
888Nurken; bilex; prog1c_vl; +3 Ответить
4. prog1c_vl 24 12.12.21 17:23 Сейчас в теме
(3) Спасибо за уточнение. В контексте работы прикладного решения, которое я использую как фактический пример, применение модальности при открытии окна вполне оправдано, но если есть противопоказания против устаревшего метода "ОткрытьФормуМодально", то можно применить "ОткрытьФорму" с указанием требуемого значения параметра "РежимОткрытияОкна".
Оставьте свое сообщение