Форма списка с отбором по реквизиту

1. BARDER 37 15.07.21 13:35 Сейчас в теме
Привет всем, есть стандартная форма списка документа перемещения, в котором в ТЧ есть Склад отправитель и склад оплучатель.
В процедуре при открытии добавляю код:
СписокСкладов = ПолучитьСписокСкладовРМК(Настройка);
	Если  ЗначениеЗаполнено(СписокСкладов) Тогда
	    ЭтаФорма.Список.Отбор.СкладОтправитель.ВидСравнения = ВидСравнения.ВСписке; 
	    ЭтаФорма.Список.Отбор.СкладОтправитель.Значение = СписокСкладов; 
	    ЭтаФорма.Список.Отбор.СкладОтправитель.Использование = Истина; 
            ЭтаФорма.Список.Отбор.СкладПолучатель.ВидСравнения = ВидСравнения.ВСписке; 
	    ЭтаФорма.Список.Отбор.СкладПолучатель.Значение = СписокСкладов; 
	    ЭтаФорма.Список.Отбор.СкладПолучатель.Использование = Истина;
	Конецесли;
Показать

Но получаю ошибку:
Поле объекта не обнаружено (СкладОтправитель)
{Расширение1 Документ.ПеремещениеТоваров.Форма.ФормаСпискаУ.Форма(16)}: ЭтаФорма.Список.Отбор.СкладОтправитель.ВидСравнения = ВидСравнения.ВСписке;
По теме из базы знаний
Найденные решения
4. user1058740 15.07.21 14:37 Сейчас в теме
СписокСкладов = ПолучитьСписокСкладовРМК(Настройка);
    Если  ЗначениеЗаполнено(СписокСкладов) Тогда       ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладОтправитель",СписокСкладов,ВидСравнения.ВСписке,,Истина);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладПолучатель",СписокСкладов,ВидСравнения.ВСписке,,Истина);
    Конецесли;
9. BARDER 37 16.07.21 12:16 Сейчас в теме
Сделал так:
	Если  ЗначениеЗаполнено(СписокСкладов) Тогда 
		ЭлементыОтбора = Список.Отбор.Элементы;
    	ЭлементыОтбора.Очистить();
		Группа = ЭлементыОтбора.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    	Группа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
		
		ЭлементОтбора = Группа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	    НовыйПолеКомпоновкиДанных = СписокСкладов;
	    ЭлементОтбора.Использование  = Истина;
	    ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("СкладОтправитель"); 
	    ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;
	    ЭлементОтбора.ПравоеЗначение = НовыйПолеКомпоновкиДанных;
		
		ЭлементОтбора = Группа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	    НовыйПолеКомпоновкиДанных = СписокСкладов;
	    ЭлементОтбора.Использование  = Истина;
	    ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("СкладПолучатель"); 
	    ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;
	    ЭлементОтбора.ПравоеЗначение = НовыйПолеКомпоновкиДанных;
		//ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладОтправитель",СписокСкладов,ВидСравненияКомпоновкиДанных.ВСписке,,Истина,РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто);
		//ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладПолучатель",СписокСкладов,ВидСравненияКомпоновкиДанных.ВСписке,,Истина,РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто);
		
	Конецесли;
Показать

Всем спасибо!
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. davealone 165 15.07.21 14:36 Сейчас в теме
(1) Это же конфигурация на упр формах и там динамический список?
Посмотрите метод ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка и примеры его вызова
2. BARDER 37 15.07.21 13:35 Сейчас в теме
в расширение реквизиты складов добавил...
4. user1058740 15.07.21 14:37 Сейчас в теме
СписокСкладов = ПолучитьСписокСкладовРМК(Настройка);
    Если  ЗначениеЗаполнено(СписокСкладов) Тогда       ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладОтправитель",СписокСкладов,ВидСравнения.ВСписке,,Истина);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладПолучатель",СписокСкладов,ВидСравнения.ВСписке,,Истина);
    Конецесли;
5. BARDER 37 16.07.21 11:30 Сейчас в теме
(4)
СписокСкладов = ПолучитьСписокСкладовРМК(Настройка);
Если ЗначениеЗаполнено(СписокСкладов) Тогда ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладОтправитель",СписокСкладов,ВидСравнения.ВСписке,,Истина);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладПолучатель",СписокСкладов,ВидСравнения.ВСписке,,Истина);
Конецесли;


[IS-QUOTE]{ОбщийМодуль.ОбщегоНазначенияКлиентСервер.Модуль(1512)}: Ошибка при установке значения атрибута контекста (ВидСравнения)
Элемент.ВидСравнения = ВидСравнения;
по причине:
Несоответствие типов
Несоответствие типов
/QUOTE]
Прикрепленные файлы:
6. user1058740 16.07.21 11:34 Сейчас в теме
(5)Замени ВидСравнения.ВСписке на ВидСравненияКомпоновкиДанных.ВСписке
7. BARDER 37 16.07.21 11:36 Сейчас в теме
(6) я так и сделал, только почему то пустой список получается... разбираюсь, отпишусь.
8. BARDER 37 16.07.21 11:54 Сейчас в теме
(6)
он отбор делает по складам по двум полям "И" как мне сделать "ИЛИ"
тоесть что бы смотрел и вывел все документы складОтпровитель из списка или СкладПолучатель из списка
9. BARDER 37 16.07.21 12:16 Сейчас в теме
Сделал так:
	Если  ЗначениеЗаполнено(СписокСкладов) Тогда 
		ЭлементыОтбора = Список.Отбор.Элементы;
    	ЭлементыОтбора.Очистить();
		Группа = ЭлементыОтбора.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    	Группа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
		
		ЭлементОтбора = Группа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	    НовыйПолеКомпоновкиДанных = СписокСкладов;
	    ЭлементОтбора.Использование  = Истина;
	    ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("СкладОтправитель"); 
	    ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;
	    ЭлементОтбора.ПравоеЗначение = НовыйПолеКомпоновкиДанных;
		
		ЭлементОтбора = Группа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	    НовыйПолеКомпоновкиДанных = СписокСкладов;
	    ЭлементОтбора.Использование  = Истина;
	    ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("СкладПолучатель"); 
	    ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;
	    ЭлементОтбора.ПравоеЗначение = НовыйПолеКомпоновкиДанных;
		//ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладОтправитель",СписокСкладов,ВидСравненияКомпоновкиДанных.ВСписке,,Истина,РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто);
		//ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,"СкладПолучатель",СписокСкладов,ВидСравненияКомпоновкиДанных.ВСписке,,Истина,РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто);
		
	Конецесли;
Показать

Всем спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот