1С 8.3 Установка отбора по списку значений - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Установка отбора по списку значений

Данные > Примеры кода 1С > 1С 8.3 Список значений
Перейти в раздел примеры кода 1С 8.3:
Установка отбора Списка по СпискуЗначений в 1С 8.3 (от ProxyInspector):
// При попытке установить отбор Списка по СпискуЗначений может возникать ошибка
// времени выполнения "Неверный тип значения".
// При установке отбора ВАЖНО соблюдать последовательность выполнения кода
//
////////////////////////////////
// Для корректной установки отбора по списку Значений
// Важно соблюдать последовательность операций
//      ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
//        ЭлементОтбора.Значение = СписокЗначений;
// В противном случае будет будет получена ошибка при выполнении операции
//        ЭлементОтбора.Значение = СписокЗначений;
//
Процедура УстановитьОтборСпискаПоСпискуЗначений(СписокЗначений,ИмяРеквизита)

   ОтборСписка = РегистрСведенийСписок.Отбор;

   ЭлементОтбора = ОтборСписка.Найти("ИмяРеквизита");
   Если НЕ ЭлементОтбора = Неопределено Тогда
       ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
       ЭлементОтбора.Значение = СписокЗначений;
       ЭлементОтбора.Использование = Истина
   КонецЕсли;
КонецПроцедуры
Установка отбора по СЗ при открытии формы выбора справочника из реквизита обработки в 1С 8.3 (от prоg1c_vl):
// В исходной форме обработки в команде открытия другой формы обработки указываем:

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

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

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

   СписокАвтомобилей = Неопределено;

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

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

&НаКлиенте
Процедура АвтомобильНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

   ФормаВыбора = Справочники.РеестрТС.ПолучитьФормуВыбора();
   ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
   ФормаВыбора.Отбор.Ссылка.Использование = Истина;
   ФормаВыбора.Отбор.Ссылка.Значение = РеквизитСписокАвтомобилей;

   ЭтотОбъект.Автомобиль = ФормаВыбора.ОткрытьМодально();

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

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

// В процедуре "АвтомобильНачалоВыбора" программно устанавливается требуемый вариант отбора
// и модально открывается форма выбора справочника с подстановкой выбранного значения в реквизит открытой формы обработки.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 16.02.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому