Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нетиповой отбор в форме списка документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
kserg2012
Платформа 8.3.18
Управление торговлей для Украины", редакция 2.3.30.1 (обычные формы)

Есть форма списка документа ЗаказПокупателя.
На форме была добавлена новая колонка "Процент оплаты по заказу", которая заполняется по отдельному запросу в Процедура СписокПриПолученииДанных

Возникла необходимость сделать полноценный отбор по данной колонке, и как то не получается придумать что-то "дельное"...

Подскажите какие возможны варианты реализации такого отбора?
(с учётом того, что пользователь может задавать и другие условия через типовой механизм отборов формы)

Спасибо
alex1c
kserg2012 @ Сегодня, 12:22 необходимо зарегистрироваться для просмотра ссылки ,

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

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