|
Запрос динамического списка | ☑ | ||
---|---|---|---|---|
0
squall84
23.03.20
✎
21:18
|
Есть самописный справочник. В каждом элементе справочника табличная часть в которой указаны тарифные ставки с датой. Т.е. с какой даты, какая ставка действует. В форму списка нужно вывести ссылку на справочник и самую последнюю тарифную ставку с датой. Я написал запрос, он вроде как работает, но не попадают те элементы справочника, в которых у меня тарифные ставки в ТЧ не заполнены. Уже по разному крутил, но не получается сделать так, как нужно - либо попадают все и элементы дублируются, либо не попадают элементы с пустой ТЧ.
Собственно, сделать нужную выборку пакетом запросов у меня получается, но в динамическом списке они не работают. А через временные таблицы не получается реализовать нужную выборку. 1с ERP. Сам запрос: "ВЫБРАТЬ СобиЖДТарифныеСтавки.Ссылка КАК Ссылка, СобиЖДТарифныеСтавки.ПометкаУдаления КАК ПометкаУдаления, СобиЖДТарифныеСтавки.Код КАК Код, СобиЖДТарифныеСтавки.Наименование КАК Наименование, СобиЖДТарифныеСтавки.СтанцияНазначения КАК СтанцияНазначения, СобиЖДТарифныеСтавки.СтанцияОтправления КАК СтанцияОтправления, СобиЖДТарифныеСтавки.ВидПодвижногоСостава КАК ВидПодвижногоСостава, СобиЖДТарифныеСтавки.Предопределенный КАК Предопределенный, СобиЖДТарифныеСтавки.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, ВТТабЧасть.Дата КАК Дата, ВТТабЧасть.ТарифнаяСтавка КАК ТарифнаяСтавка, ВТТабЧасть.ВключенПорожнийВозврат КАК ВключенПорожнийВозврат ИЗ (ВЫБРАТЬ СобиЖДТарифныеСтавкиТабличнаяЧасть1.Ссылка КАК Ссылка, МАКСИМУМ(СобиЖДТарифныеСтавкиТабличнаяЧасть1.Дата) КАК Дата ИЗ Справочник.СобиЖДТарифныеСтавки.ТабличнаяЧасть1 КАК СобиЖДТарифныеСтавкиТабличнаяЧасть1 СГРУППИРОВАТЬ ПО СобиЖДТарифныеСтавкиТабличнаяЧасть1.Ссылка) КАК ВТДаты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СобиЖДТарифныеСтавкиТабличнаяЧасть1.ТарифнаяСтавка КАК ТарифнаяСтавка, СобиЖДТарифныеСтавкиТабличнаяЧасть1.ВключенПорожнийВозврат КАК ВключенПорожнийВозврат, СобиЖДТарифныеСтавкиТабличнаяЧасть1.Ссылка КАК Ссылка, СобиЖДТарифныеСтавкиТабличнаяЧасть1.Дата КАК Дата ИЗ Справочник.СобиЖДТарифныеСтавки.ТабличнаяЧасть1 КАК СобиЖДТарифныеСтавкиТабличнаяЧасть1) КАК ВТТабЧасть ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СобиЖДТарифныеСтавки КАК СобиЖДТарифныеСтавки ПО (ВТТабЧасть.Ссылка = СобиЖДТарифныеСтавки.Ссылка) ПО (ВТТабЧасть.Дата = ВТДаты.Дата) И (ВТТабЧасть.Ссылка = ВТДаты.Ссылка)" |
|||
1
mikecool
23.03.20
✎
21:19
|
ничего не понял, но нужно соединение и РАЗЛИЧНЫЕ
|
|||
2
Лефмихалыч
23.03.20
✎
21:20
|
1. заменить табличную часть на регистр сведений
2. у РС есть срез последних, вот с ним и соединяйся |
|||
3
squall84
23.03.20
✎
21:24
|
(2) Я понимаю, что лучше было бы реализовывать регистром. Но подсистему уже написали. Писал не я и менять уже никто не будет. Поэтому вопрос, как сделать именно с такими условиями.
|
|||
4
squall84
23.03.20
✎
21:27
|
(1) Дык проблема в различных. Если в табличной части справочника не указано ни одной строки, то в выборку запроса он не попадет. А мне нужно чтобы попадал.
Я и пытаюсь избавиться от различных. Т.е. в табличной части справочника 3 строки и в выборку попадают все 3 строки. А мне должна попадать только последняя по времени. |
|||
5
mikecool
23.03.20
✎
21:28
|
"Если в табличной части справочника не указано ни одной строки, то в выборку запроса он не попадет." - добавь ссылку в выборку
|
|||
6
H A D G E H O G s
23.03.20
✎
21:29
|
(0) Lentius, Peius, Aliter
Именно так эта фигня будет работать. |
|||
7
Лефмихалыч
23.03.20
✎
21:34
|
(3) "Справочник.СобиЖДТарифныеСтавки.ТабличнаяЧасть1"
это не написали, а высрали. Это НАДО менять. |
|||
8
squall84
23.03.20
✎
22:06
|
(7) Я верю. Но, повторюсь. Никто менять уже это не будет. Это половину подсистемы нужно переписывать. тут вообще был странный запрос - выбирали поля из справочника и левым соединением прикручивали табличную часть, и далее выбирали из табличной части. Хотя можно было просто из табличной части через ссылку получить все поля. Суть не в этом. Попросили изменить именно запрос.
|
|||
9
squall84
23.03.20
✎
22:07
|
(5) ???
|
|||
10
Йохохо
23.03.20
✎
22:10
|
(8) "выбирали поля из справочника и левым соединением прикручивали табличную часть" это решало "Если в табличной части справочника не указано ни одной строки, то в выборку запроса он не попадет. А мне нужно чтобы попадал."
|
|||
11
vde69
23.03.20
✎
22:14
|
(8) пошли их нафиг, скажи, что из говна нельзя сделать конфетку. Надо переделать структуру хранения...
|
|||
12
squall84
23.03.20
✎
22:19
|
(10) Решало. Но если в ТЧ было больше одной записи, то вылетала ошибка о том, что нельзя вывести более одной ссылки. -)
|
|||
13
squall84
23.03.20
✎
22:19
|
Проблема решилась таким запросом.
ВЫБРАТЬ ВТСсылки.Ссылка КАК Ссылка, ВТСсылки.Ссылка.Код, ВТСсылки.Ссылка.Наименование, ВТСсылки.Ссылка.СтанцияНазначения, ВТСсылки.Ссылка.СтанцияОтправления, ВТСсылки.Ссылка.ВидПодвижногоСостава, ВТСсылки.Ссылка.Подрядчик, ВТТЧ.Дата, ВТТЧ.ТарифнаяСтавка, ВТТЧ.ВключенПорожнийВозврат ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ СобиЖДТарифныеСтавки.Ссылка КАК Ссылка ИЗ Справочник.СобиЖДТарифныеСтавки КАК СобиЖДТарифныеСтавки) КАК ВТСсылки ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СобиЖДТарифныеСтавкиТабличнаяЧасть1.Ссылка КАК Ссылка, МАКСИМУМ(СобиЖДТарифныеСтавкиТабличнаяЧасть1.Дата) КАК Дата ИЗ Справочник.СобиЖДТарифныеСтавки.ТабличнаяЧасть1 КАК СобиЖДТарифныеСтавкиТабличнаяЧасть1 СГРУППИРОВАТЬ ПО СобиЖДТарифныеСтавкиТабличнаяЧасть1.Ссылка) КАК ВТДаты ПО (ВТСсылки.Ссылка = ВТДаты.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СобиЖДТарифныеСтавкиТабличнаяЧасть1.Ссылка КАК Ссылка, СобиЖДТарифныеСтавкиТабличнаяЧасть1.Дата КАК Дата, СобиЖДТарифныеСтавкиТабличнаяЧасть1.ТарифнаяСтавка КАК ТарифнаяСтавка, СобиЖДТарифныеСтавкиТабличнаяЧасть1.ВключенПорожнийВозврат КАК ВключенПорожнийВозврат ИЗ Справочник.СобиЖДТарифныеСтавки.ТабличнаяЧасть1 КАК СобиЖДТарифныеСтавкиТабличнаяЧасть1) КАК ВТТЧ ПО (ВТСсылки.Ссылка = ВТТЧ.Ссылка) |
|||
14
vde69
23.03.20
✎
22:31
|
(13) не масштабируемый запрос... как ТЧ вырастут начнутся тормоза...
|
|||
15
squall84
23.03.20
✎
22:43
|
(14) Ну, из того, что есть лучше сделать у меня не получилось. Я предупрежу, что по хорошему нужно переписать, а дальше пусть сами думают.
|
|||
16
palsergeich
23.03.20
✎
22:54
|
(15) Ты это скажи что проблемы могут начаться прям совсем скоро
|
|||
17
vde69
23.03.20
✎
23:00
|
(15) кроме того учти, что у табличных частей есть ограничения по размеру. Не знаю как будет использоватся, но все равно учитывать это стоит...
|
|||
18
squall84
23.03.20
✎
23:06
|
(16) (17) Я понял, спасибо.
|
|||
19
Сияющий в темноте
23.03.20
✎
23:39
|
регистр сведений и срез последних кого-то не устроил,или велосипедостроительство это так прикольно?
|
|||
20
Лефмихалыч
24.03.20
✎
12:16
|
(19) Да просто руки-крюки и растут из жопы, но зато пальцами внутрь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |