Отдел продаж:

1С отбор в форме списка

В этой коротенькой статьей будет представлен простой пример, как создать отбор в форме списка.

Для начала добавим реквизит на форму реквизит ПолеОтбора. Типом данных будет выступать ссылка на объект метаданных, по которому необходимо сделать отбор. В нашем примере это будет справочник Состояние товаров на производства.

В форме списка уже могут быть применены отборы, поэтому для начала сделаем проверку на существующие отборы по данному полю. Если отбор есть, то мы изменим его на тот, который нам нужен. Если же отбора нет, то создадим новый.

&НаСервере
Процедура УстановитьОтборСостояние()

        ВыбранноеЗначение = ПолеОтбора;
	
        НеобходимоЗадатьНовыйОтборСостояния = Истина;
	Для каждого ЭлементОтбора Из Список.Отбор.Элементы Цикл	
		Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СостояниеЗаказа") Тогда		
			ЭлементОтбора.ПравоеЗначение = ВыбранноеЗначение;
			НеобходимоЗадатьНовыйОтборСостояния = Ложь;
			ЭлементОтбора.Использование = Истина;
		КонецЕсли; 	
	КонецЦикла; 
	
	Если НеобходимоЗадатьНовыйОтборСостояния Тогда	
		ЭлементОтбораСостояния = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбораСостояния.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("СостояниеЗаказа");
		ЭлементОтбораСостояния.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
		ЭлементОтбораСостояния.ПравоеЗначение = ВыбранноеЗначение;
		ЭлементОтбораСостояния.Использование  = Истина;			
	КонецЕсли;

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

Теперь данную процедуру необходимо вызвать при изменении значения реквизита ПолеОтбора.

Ну и в нагрузку приведен пример, когда необходимо сделать отбор в форме списка – переключатель трех состояний (в работе, в обработке, завершен). Тогда поле отбора будет иметь тип данных число. В свойствах поля находим свойство Список выбора и прописываем возможные значения.

отбор в форме списка, список выбора

Тогда в начале описанной выше процедуры нужно добавить следующий код:

ПредставлениеЗначения = "";
Если ОтборСостояниеПереключатель = 0 Тогда
    ПредставлениеЗначения = "В работе";
ИначеЕсли ОтборСостояниеПереключатель = 1 Тогда 
    ПредставлениеЗначения = "В обработке";
ИначеЕсли ОтборСостояниеПереключатель = 2 Тогда
    ПредставлениеЗначения = "Завершен";
КонецЕсли;  
ВыбранноеЗначение = Справочники.СостоянияЗаказовНаПроизводство.НайтиПоНаименованию(ПредставлениеЗначения); 

Если вам необходима доработка конфигурации 1С или создание новой конфигурации прямо “под вас”, вы можете обратиться в отдел продаж по телефону в шапке сайта. Кроме того, наша компания является партнером фирмы 1С, поэтому вы можете приобрести у нас лицензии. Наши специалисты установят и настроят вашу 1С, а также ответят на интересующие вас вопросы. С перечнем услуг вы можете ознакомиться по телефону или на сайте.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *