Имя: Пароль:
1C
1С v8
1С 8 3 УТП управление множественным отбором в списке документа
0 Nysha1210
 
07.12.18
13:55
Как построить Отбор по нескольким условиям обновременно, а потом его сбрасывать?
Просто перечислить все отборы по порядку?

Множественный отбор по Списку значений не работает. Почему?
Если ЭлементыФормы.Флажок1.Значение=истина тогда
СписокОтбора = новый СписокЗначений;
СписокОтбора.Добавить(Перечисления.СтатусЗаказа.ВРаботе,,,);
СписокОтбора.Добавить(Перечисления.СтатусЗаказа.Оплачен,,,);
СписокОтбора.Добавить(Перечисления.СтатусЗаказа.Отправлен,,,);
ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Установить(СписокОтбора);
ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Использование=истина;
иначе
ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Использование=Ложь;
КонецЕсли;

+ Как можно задать здесь отбор по проведенным документам?
1 Гипервизор
 
07.12.18
14:45
СП читать не пробовали про метод Установить()?
"При выполнении данного метода вид сравнения устанавливается в значение Равно."
2 Nysha1210
 
07.12.18
14:55
Ок, значит в методе Установить() можно перечислить значения через ИЛИ?
А как установить отбор по проведенным документам тогда?
Можно подсказку, плиз?
3 Nysha1210
 
07.12.18
14:58
Через ИЛИ не работает ((( - ругается (((
4 Гипервизор
 
07.12.18
15:04
(2) Нет, не значит. Вот как-то так:

ДокументСписок.Отбор.СтатусЗаказа.ВидСравнения = ВидСравнения.ВСписке;
ДокументСписок.Отбор.СтатусЗаказа.Значение = СписокОтбора;
ДокументСписок.Отбор.СтатусЗаказа.Использование = Истина;
5 Nysha1210
 
07.12.18
15:12
РЕШЕНИЕ

    Если ЭлементыФормы.Флажок1.Значение=истина тогда
         СписокОтбора = новый СписокЗначений;
         СписокОтбора.Добавить(Перечисления.СтатусЗаказа.ВРаботе,,,);
         СписокОтбора.Добавить(Перечисления.СтатусЗаказа.Оплачен,,,);
         СписокОтбора.Добавить(Перечисления.СтатусЗаказа.Отправлен,,,);
         ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Использование=истина;    
         ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.ВидСравнения = ВидСравнения.ВСписке;        
         ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Значение = СписокОтбора;
    иначе
        ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Использование=Ложь;
    КонецЕсли;
6 Nysha1210
 
07.12.18
15:12
Спасибо)))
Как теперь добавить условие - только для проведенных документов?
7 Гипервизор
 
07.12.18
15:18
Никак.
8 Nysha1210
 
07.12.18
15:20
В 77 такая возможность была, не может быть что в 8 3 ее нет.
9 Nysha1210
 
07.12.18
15:47
РЕШЕНИЕ, может кому то пригодится.
В модуле Списка документов добавляем процедуру

Процедура ПриОткрытии()
        ЭлементыФормы.Список.НастройкаОтбора.Проведен.Доступность = Истина;
КонецПроцедуры

тогда в отборе появляется возможность отбора по статусу проведения документов

делаем двойной отбор:

Если ЭлементыФормы.Флажок1.Значение=истина тогда
         СписокОтбора = новый СписокЗначений;
         СписокОтбора.Добавить(Перечисления.СтатусЗаказа.ВРаботе,,,);
         СписокОтбора.Добавить(Перечисления.СтатусЗаказа.Оплачен,,,);
         СписокОтбора.Добавить(Перечисления.СтатусЗаказа.Отправлен,,,);
         ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Использование=истина;    
         ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.ВидСравнения = ВидСравнения.ВСписке;        
         ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Значение = СписокОтбора;
         ЭлементыФормы.Список.Значение.Отбор.Posted.Использование=Истина;
         ЭлементыФормы.Список.Значение.Отбор.Posted.ВидСравнения=ВидСравнения.Равно;
         ЭлементыФормы.Список.Значение.Отбор.Posted.Значение = ложь;
    иначе
         ЭлементыФормы.Список.Значение.Отбор.СтатусЗаказа.Использование=Ложь;
         ЭлементыФормы.Список.Значение.Отбор.Posted.Использование=ложь;        
    КонецЕсли;    
ВСе работает. Всем спасибо за помощь.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший