|
В дин.списке получить для документа последний БП | ☑ | ||
---|---|---|---|---|
0
kIR
20.10.17
✎
11:03
|
Доброго дня!
Друзья, казус: форма списка документов формируется динамическим списком. Появилась задача вместе с данными по документу выводить последний бизнес-процесс по этому документу и вариант его завершения. То ли пятница, то ли я дурак, но никак не могу победить. Пытлся и левым соединением, и объединением - все не то. Либо не выводит БП, либо задваивает ссылки и ругается Подскажите,как правильно реализовать? Спасибо |
|||
1
DrShad
20.10.17
✎
11:55
|
чуть попозже, если еще будет актуально
|
|||
2
kIR
20.10.17
✎
12:13
|
(1) буду благодарен
|
|||
3
vicof
20.10.17
✎
12:27
|
Используй агрегатные функции, Люк
|
|||
4
DrShad
20.10.17
✎
12:39
|
верно ли, что эта задача похожа на вывод штрих-кодов в список номенклатуры, когда кодов может быть несколько?
|
|||
5
kIR
20.10.17
✎
14:09
|
(4) разве что отчасти
|
|||
6
FIXXXL
20.10.17
✎
14:19
|
(0) во вложенном запросе отбери последний по дате БП и прицепи к основной таблице
для скорости работы дин.списка можешь завести РС Док-БП, в котором будешь держать актуальное состояние по связке |
|||
7
kIR
20.10.17
✎
14:20
|
(6) Было так, но, ясен-красен, не работает
ВЫБРАТЬ ДокументЗаявкаНаПостановкуВПроизводство.Ссылка, ДокументЗаявкаНаПостановкуВПроизводство.ВерсияДанных, ДокументЗаявкаНаПостановкуВПроизводство.ПометкаУдаления, ДокументЗаявкаНаПостановкуВПроизводство.Номер, ДокументЗаявкаНаПостановкуВПроизводство.Дата, ДокументЗаявкаНаПостановкуВПроизводство.Проведен, ДокументЗаявкаНаПостановкуВПроизводство.ЗаводИзготовитель, ДокументЗаявкаНаПостановкуВПроизводство.Автор, ДокументЗаявкаНаПостановкуВПроизводство.Комментарий, ДокументЗаявкаНаПостановкуВПроизводство.МоментВремени, ВложенныйЗапрос.ВариантЗавершения, ВложенныйЗапрос.СсылкаБизнесПроцесс КАК БизнесПроцесс ИЗ Документ.ЗаявкаНаПостановкуВПроизводство КАК ДокументЗаявкаНаПостановкуВПроизводство ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ первые 1 CRM_БизнесПроцесс.Ссылка КАК СсылкаБизнесПроцесс, CRM_БизнесПроцесс.ВариантЗавершения КАК ВариантЗавершения, CRM_БизнесПроцесс.Предмет КАК Предмет, Максимум(CRM_БизнесПроцесс.дата) как дата ИЗ БизнесПроцесс.CRM_БизнесПроцесс КАК CRM_БизнесПроцесс ГДЕ CRM_БизнесПроцесс.ПометкаУдаления = ЛОЖЬ И ТИПЗНАЧЕНИЯ(CRM_БизнесПроцесс.Предмет) = ТИП(Документ.ЗаявкаНаПостановкуВПроизводство) И CRM_БизнесПроцесс.Стартован = ИСТИНА И CRM_БизнесПроцесс.КартаМаршрута.ВидПроцесса = ЗНАЧЕНИЕ(Справочник.ВидыПроцессов.СогласованиеЗаявкиНаПроизводство) СГРУППИРОВАТЬ ПО CRM_БизнесПроцесс.Ссылка, CRM_БизнесПроцесс.ВариантЗавершения, CRM_БизнесПроцесс.Предмет) КАК ВложенныйЗапрос ПО ДокументЗаявкаНаПостановкуВПроизводство.Ссылка = ВложенныйЗапрос.Предмет |
|||
8
catena
20.10.17
✎
14:25
|
Первые 1 - выбирает один для всей таблицы, а не для каждой строчки. Группировка максимум дата не имеет смысла одновременно со ссылкой - отберет максимальную дату для каждой ссылки, а не ссылку с максимальной датой.
|
|||
9
FIXXXL
20.10.17
✎
14:28
|
(7) группируешь по Док и МАКС(ДатаБП), вяжешь эту "вилку" на БП, получаешь Док и БП
всё это во вложенном |
|||
10
kIR
20.10.17
✎
14:45
|
(9) в одном встроенном? не пойму как....пакетов то в динамическом нет
|
|||
11
FIXXXL
20.10.17
✎
14:46
|
(10) вложенный во вложенном, типа "срез последних на каждую дату"
НО - это будет тормозить подумай за РС |
|||
12
kIR
20.10.17
✎
14:49
|
(11) не настолько критично,чтобы отдельный РС еще пилить...
|
|||
13
FIXXXL
20.10.17
✎
14:51
|
(12) типа того
ВЫБРАТЬ ркЭтапПроекта.Ссылка, ВложенныйЗапрос.БП, ВложенныйЗапрос.Дата ИЗ Документ.ркЭтапПроекта КАК ркЭтапПроекта ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ CRM_БизнесПроцесс.Этап КАК Этап, CRM_БизнесПроцесс.Ссылка КАК БП, CRM_БизнесПроцесс.Дата КАК Дата ИЗ (ВЫБРАТЬ CRM_БизнесПроцесс.Этап КАК Этап, МАКСИМУМ(CRM_БизнесПроцесс.Дата) КАК Дата ИЗ БизнесПроцесс.CRM_БизнесПроцесс КАК CRM_БизнесПроцесс СГРУППИРОВАТЬ ПО CRM_БизнесПроцесс.Этап) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ БизнесПроцесс.CRM_БизнесПроцесс КАК CRM_БизнесПроцесс ПО ВложенныйЗапрос.Этап = CRM_БизнесПроцесс.Этап И ВложенныйЗапрос.Дата = CRM_БизнесПроцесс.Дата) КАК ВложенныйЗапрос ПО ркЭтапПроекта.Ссылка = ВложенныйЗапрос.Этап |
|||
14
Мыш
20.10.17
✎
14:56
|
В запрос динамического списка добавить строку: ЗНАЧЕНИЕ(БизнесПроцесс.МойПроцесс.ПустаяСсылка) КАК МойПроцесс
Добавить обработчик элемента формы "Список" &НаСервереБезКонтекста Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Тратата.Ссылка КАК Ссылка, БизПроцессы.Ссылка КАК БизнесПроцесс <тут источники соединения группировки и прочая> ГДЕ Тратата.Ссылка В (&МассивСсылок)"; Запрос.УстановитьПараметр("МассивСсылок", Строки.ПолучитьКлючи()); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СтрокаДинСписка = Строки[Выборка.Ссылка]; СтрокаДинСписка.Данные["БизнесПроцесс"] = Выборка.БизнесПроцесс; КонецЦикла; КонецПроцедуры |
|||
15
FIXXXL
20.10.17
✎
15:04
|
(14) можно и так, "вернуться к истокам" :)
|
|||
16
Мыш
20.10.17
✎
15:10
|
(15) Это рекомендации 1С. Описано в документации.
|
|||
17
kIR
20.10.17
✎
15:56
|
(13) Спасибо, вроде разобрался.
попробовал исправить под себя - работает, отправил на тест) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |