|
Отбор в списке выбора справочника из документа | ☑ | ||
---|---|---|---|---|
0
anisa8310
28.12.15
✎
14:31
|
1С:Предприятие 8.2 (8.2.19.80)
Самописка. Коллеги, помогите как отбор выполнить почему то не работает- все просто нужно выводить только некоторые папки номенклатуры, заранее благодарю и с наступающим новым годом! &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //СтандартнаяОбработка=Ложь; Если Параметры.Свойство("ВыполнитьОТбор") Тогда МодифицироватьЗапрос(); Список.Параметры.УстановитьЗначениеПараметра("НулеваяДата", Дата(1,1,1)); Список.Параметры.УстановитьЗначениеПараметра("ТекущаяДата", ТекущаяДата()); ЭлементОтбораДанныхДатаБлокировки = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанныхДатаБлокировки.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПереданС"); ЭлементОтбораДанныхДатаБлокировки.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанныхДатаБлокировки.ПравоеЗначение = Дата(1,1,1); ЭлементОтбораДанныхДатаБлокировки.Использование = Истина; ЭлементОтбораДанныхДатаБлокировки = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанныхДатаБлокировки.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЗаблокированC"); ЭлементОтбораДанныхДатаБлокировки.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанныхДатаБлокировки.ПравоеЗначение = Дата(1,1,1); ЭлементОтбораДанныхДатаБлокировки.Использование = Истина; ЭлементОтбораДанныхКлиент = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанныхКлиент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Клиент"); ЭлементОтбораДанныхКлиент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанныхКлиент.ПравоеЗначение = Параметры.ВыполнитьОтбор; ЭлементОтбораДанныхКлиент.Использование = Истина; //Список значений Список=Новый СписокЗначений; Массив=Новый Массив; Массив.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000000068")); Массив.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000000217")); Массив.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000000214")); Список.ЗагрузитьЗначения(Массив); ЭлементОтбораДанныхПапка = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанныхПапка.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СсылкаНоменклатураРодитель"); ЭлементОтбораДанныхПапка.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; //ЭлементОтбораДанныхПапка. ЭлементОтбораДанныхПапка.ПравоеЗначение = Список; ЭлементОтбораДанныхПапка.Использование = Истина; КонецЕсли; Если Параметры.Свойство("ВыполнитьОТборКлиент") Тогда ЭлементОтбораДанныхКлиент = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанныхКлиент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Клиент"); ЭлементОтбораДанныхКлиент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанныхКлиент.ПравоеЗначение = Параметры.ВыполнитьОТборКлиент; ЭлементОтбораДанныхКлиент.Использование = Истина; КонецЕсли; //Если Параметры.Свойство("ВыполнитьОТборДатаОкончанияСрокаДействия") Тогда МодифицироватьЗапрос(); Список.Параметры.УстановитьЗначениеПараметра("НулеваяДата", Дата(1,1,1)); Список.Параметры.УстановитьЗначениеПараметра("ТекущаяДата", НачалоДня(ТекущаяДата())); //КонецЕсли; КонецПроцедуры //Процедура выполняет изменение запроса динамического списка // Процедура МодифицироватьЗапрос() Список.ТекстЗапроса = Список.ТекстЗапроса + " |ГДЕ | (СправочникАбонементы.ДатаОкончанияСрокаДействия <> &НулеваяДата | И (СправочникАбонементы.ДатаОкончанияСрокаДействия >= &ТекущаяДата) | ИЛИ СправочникАбонементы.ДатаОкончанияСрокаДействия = &НулеваяДата) | И СправочникАбонементы.Ссылка.ПометкаУдаления = Ложь"; КонецПроцедуры Вот все работает нормально но отбор по папки не выполняет. http://www.picshare.ru/view/6987073/ |
2 |
||
1
anisa8310
28.12.15
✎
14:32
|
{Справочник.Абонементы.Форма.УНИ_ФормаВыбора.Форма(68)}: Метод объекта не обнаружен (ЗагрузитьЗначения)
Список.ЗагрузитьЗначения(Массив); |
|||
2
Zmich
28.12.15
✎
14:47
|
(0). У тебя один и тот же идентификатор Список используется для разных целей.
Список.Параметры.УстановитьЗначениеПараметра("НулеваяДата", Дата(1,1,1)); а потом Список=Новый СписокЗначений; По-другому переменную назови. |
3 |
||
3
anisa8310
28.12.15
✎
14:53
|
(2) оке ! попробуем
|
|||
4
anisa8310
28.12.15
✎
14:56
|
//Список значений
НовыйСписок=Новый СписокЗначений; Массив=Новый Массив; Массив.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000000068")); Массив.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000000217")); Массив.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000000214")); НовыйСписок.ЗагрузитьЗначения(Массив); ЭлементОтбораДанныхСсылкаНоменклатураРодитель = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанныхСсылкаНоменклатураРодитель.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СсылкаНоменклатураРодитель"); ЭлементОтбораДанныхСсылкаНоменклатураРодитель.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; //ЭлементОтбораДанныхПапка. ЭлементОтбораДанныхСсылкаНоменклатураРодитель.ПравоеЗначение = НовыйСписок; ЭлементОтбораДанныхСсылкаНоменклатураРодитель.Использование = Истина; |
|||
5
anisa8310
28.12.15
✎
14:56
|
зачем то нету
|
|||
6
anisa8310
28.12.15
✎
15:11
|
Получилось) Рахмэт)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |