kserg2012 @ Сегодня, 12:22
,
Ось приклад, у вашому випадку запитом отримуєте список документів і по ньому робите відбір.
Процедура ОбработатьУстановитьОтборПоНаличиюРН(Элемент)
Для Каждого ЭлементКнопка Из ЭлементыФормы.ДействияФормы.Кнопки.ОтборПоНаличиюОргинала.Кнопки Цикл
Если Элемент.Имя = ЭлементКнопка.Имя Тогда
ЭлементКнопка.Пометка = Истина;
Иначе
ЭлементКнопка.Пометка = Ложь;
КонецЕсли;
КонецЦикла;
НашОтбор = ЭтаФорма.Отбор.Ссылка;
Если Элемент.Имя = "ВсеДокументы" Тогда
НашОтбор.Использование = Ложь;
Иначе
Запрос = Новый Запрос;
Запрос.Текст = ПолучитьТекстЗапроса(Элемент.Имя);
СписокДокументов = Новый СписокЗначений;
СписокДокументов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
НашОтбор.ВидСравнения = ВидСравнения.ВСписке;
НашОтбор.Значение = СписокДокументов;
НашОтбор.Использование = Истина;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьТекстЗапроса(Вид)
Если Вид = "РНЕсть" Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| Док.Сделка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Док
|ГДЕ
| НЕ Док.Сделка.ПометкаУдаления";
Иначе
ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Док.Ссылка
|ИЗ
| Документ.ЗаказПокупателя КАК Док
|ГДЕ
| Не Док.ПометкаУдаления
| И НЕ Док.Ссылка В
| (ВЫБРАТЬ
| Док.Сделка КАК Ссылка
| ИЗ
| Документ.РеализацияТоваровУслуг КАК Док)";
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции