Имя: Пароль:
1C
1С v8
Вывод последнего подчиненного списка в форме списка документа
0 BruS
 
11.02.19
10:28
Всем доброго.
Озадачился такой проблемой - вывести последний подчиненный документ в колонке списка (динамическом) счетов-фактур, а не через структуру подчиненности. Этим документом, как правило, является расходная накладная.
Конфигурация на УФ, критерий отбора связанных документов имеется. Была попытка вывести через критерий отбора, но в запросе предполагается передавать параметр &ЗначениеКритерияотбора, соответственно нужно прикручивать обработчик на форме списка для передачи параметра в список, а исходя из практики список начинает подтупливать при такой реализации.
В общем как-то неспешно зашел в тупик.
Может кто нить сталкивался или мысль подкинет. Суть в чем: так слепить запрос, чтобы одним запросом динамического списка (без передачи параметров) получить конфетку.
Спасибо.
1 FIXXXL
 
11.02.19
10:42
(0) посмотри лучше в сторону ПриПолученииДанныхНаСервере
2 BruS
 
11.02.19
12:37
Классная подсказка, спасибо. получилось, что хотел.
Правда появилась новая проблема - подтормаживание списка.
Вот код, может в нем что оптимизировать можно?

&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
    
    УстановитьПривилегированныйРежим(Истина);
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
                   |    СвязанныеДокументы.Ссылка КАК Ссылка
                   |ИЗ
                   |    КритерийОтбора.СвязанныеДокументы(&ЗначениеКритерияОтбора) КАК СвязанныеДокументы
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    СвязанныеДокументы.Ссылка.Дата УБЫВ";
                  
    Для Каждого СтрокаСписка Из Строки Цикл
        Запрос.УстановитьПараметр("ЗначениеКритерияОтбора", СтрокаСписка.Ключ);
        
        ВыборкаЗапроса    = Запрос.Выполнить().Выбрать();
        Если ВыборкаЗапроса.Количество() = 0 Тогда
            Продолжить;
        КонецЕсли;
        
        ВыборкаЗапроса.Следующий();
        СтрокаСписка.Значение.Данные["Отгружено"] = ОбслуживаниеДокументовСервер.МоеПредставлениеДокумента(ВыборкаЗапроса.Ссылка);
        
    КонецЦикла;
    
КонецПроцедуры