Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вывод последнего подчиненного списка в форме списка документа

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует