1С 8.3 Установка отбора по списку значений
Данные > Примеры кода 1С > 1С 8.3 Список значений
Перейти в раздел примеры кода 1С 8.3:
Установка отбора Списка по СпискуЗначений в 1С 8.3 (от ProxyInspector):
// При попытке установить отбор Списка по СпискуЗначений может возникать ошибка
// времени выполнения "Неверный тип значения".
// При установке отбора ВАЖНО соблюдать последовательность выполнения кода
//
////////////////////////////////
// Для корректной установки отбора по списку Значений
// Важно соблюдать последовательность операций
// ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
// ЭлементОтбора.Значение = СписокЗначений;
// В противном случае будет будет получена ошибка при выполнении операции
// ЭлементОтбора.Значение = СписокЗначений;
//
Процедура УстановитьОтборСпискаПоСпискуЗначений(СписокЗначений,ИмяРеквизита)
ОтборСписка = РегистрСведенийСписок.Отбор;
ЭлементОтбора = ОтборСписка.Найти("ИмяРеквизита");
Если НЕ ЭлементОтбора = Неопределено Тогда
ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
ЭлементОтбора.Значение = СписокЗначений;
ЭлементОтбора.Использование = Истина
КонецЕсли;
КонецПроцедуры
// времени выполнения "Неверный тип значения".
// При установке отбора ВАЖНО соблюдать последовательность выполнения кода
//
////////////////////////////////
// Для корректной установки отбора по списку Значений
// Важно соблюдать последовательность операций
// ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
// ЭлементОтбора.Значение = СписокЗначений;
// В противном случае будет будет получена ошибка при выполнении операции
// ЭлементОтбора.Значение = СписокЗначений;
//
Процедура УстановитьОтборСпискаПоСпискуЗначений(СписокЗначений,ИмяРеквизита)
ОтборСписка = РегистрСведенийСписок.Отбор;
ЭлементОтбора = ОтборСписка.Найти("ИмяРеквизита");
Если НЕ ЭлементОтбора = Неопределено Тогда
ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
ЭлементОтбора.Значение = СписокЗначений;
ЭлементОтбора.Использование = Истина
КонецЕсли;
КонецПроцедуры
Установка отбора по СЗ при открытии формы выбора справочника из реквизита обработки в 1С 8.3 (от prоg1c_vl):
// В исходной форме обработки в команде открытия другой формы обработки указываем:
ОткрытьФормуМодально("Обработка.ПрокатАвто.Форма.ФормаРедактированияСтатусаАвто",
Новый Структура("СписокАвтомобилей", СписокАвтомобилей.ВыгрузитьЗначения()), ЭтаФорма);
// Таким образом передаем в открываемую форму массив значений выгруженный из
// списка значений ("СписокАвтомобилей") расположенного на исходной форме обработки.
// В открываемой форме обработки (куда передается список значений в виде массива) должны быть:
// реквизит формы с типом значения "СписокЗначений" и параметр с типом значения "Произвольный",
// при этом имя параметра должно быть таким как указано в параметрах открытия формы (в нашем примере это "СписокАвтомобилей").
//В открываемой форме должен быть такой код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СписокАвтомобилей = Неопределено;
Параметры.Свойство("СписокАвтомобилей", СписокАвтомобилей);
РеквизитСписокАвтомобилей.ЗагрузитьЗначения(СписокАвтомобилей);
КонецПроцедуры
&НаКлиенте
Процедура АвтомобильНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.РеестрТС.ПолучитьФормуВыбора();
ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.Отбор.Ссылка.Использование = Истина;
ФормаВыбора.Отбор.Ссылка.Значение = РеквизитСписокАвтомобилей;
ЭтотОбъект.Автомобиль = ФормаВыбора.ОткрытьМодально();
КонецПроцедуры
//В процедуре "ПриСозданииНаСервере" мы получаем значения из параметра "СписокАвтомобилей"
// и загружаем их в реквизит "РеквизитСписокАвтомобилей" в момент открытия формы обработки.
// В процедуре "АвтомобильНачалоВыбора" программно устанавливается требуемый вариант отбора
// и модально открывается форма выбора справочника с подстановкой выбранного значения в реквизит открытой формы обработки.
ОткрытьФормуМодально("Обработка.ПрокатАвто.Форма.ФормаРедактированияСтатусаАвто",
Новый Структура("СписокАвтомобилей", СписокАвтомобилей.ВыгрузитьЗначения()), ЭтаФорма);
// Таким образом передаем в открываемую форму массив значений выгруженный из
// списка значений ("СписокАвтомобилей") расположенного на исходной форме обработки.
// В открываемой форме обработки (куда передается список значений в виде массива) должны быть:
// реквизит формы с типом значения "СписокЗначений" и параметр с типом значения "Произвольный",
// при этом имя параметра должно быть таким как указано в параметрах открытия формы (в нашем примере это "СписокАвтомобилей").
//В открываемой форме должен быть такой код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СписокАвтомобилей = Неопределено;
Параметры.Свойство("СписокАвтомобилей", СписокАвтомобилей);
РеквизитСписокАвтомобилей.ЗагрузитьЗначения(СписокАвтомобилей);
КонецПроцедуры
&НаКлиенте
Процедура АвтомобильНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.РеестрТС.ПолучитьФормуВыбора();
ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.Отбор.Ссылка.Использование = Истина;
ФормаВыбора.Отбор.Ссылка.Значение = РеквизитСписокАвтомобилей;
ЭтотОбъект.Автомобиль = ФормаВыбора.ОткрытьМодально();
КонецПроцедуры
//В процедуре "ПриСозданииНаСервере" мы получаем значения из параметра "СписокАвтомобилей"
// и загружаем их в реквизит "РеквизитСписокАвтомобилей" в момент открытия формы обработки.
// В процедуре "АвтомобильНачалоВыбора" программно устанавливается требуемый вариант отбора
// и модально открывается форма выбора справочника с подстановкой выбранного значения в реквизит открытой формы обработки.
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник