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

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    1886    stopa85    12    

34

Алгоритм симплекс-метода для решения задачи раскроя

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

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

19.10.2023    4690    user1959478    50    

34

Регулярные выражения на 1С

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

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

1 стартмани

09.06.2023    7688    4    SpaceOfMyHead    17    

56

Мини-обзор разных решений задач

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

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

03.04.2023    3117    RustIG    6    

25

Модель распределения суммы по базе

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

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

1 стартмани

21.03.2022    7953    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

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

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4566    fishca    13    

37

Интересная задача на Yandex cup 2021

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

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8957    John_d    73    

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

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