|
Получить таблицу значений в ячейке результата запроса не для табличных частей, возможно? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
22.06.21
✎
13:06
|
Вот классический запрос, который в ячейку строки запроса выдает таблицу значений:
ВЫБРАТЬ ПоступлениеТоваровНаСклад.Ссылка КАК Ссылка, ПоступлениеТоваровНаСклад.Товары.( Номенклатура КАК Номенклатура, Количество КАК Количество, ) КАК Товары ИЗ Документ.ПоступлениеТоваровНаСклад КАК ПоступлениеТоваровНаСклад А можно такую же штуку получить не для табличной части, а для произвольной таблицы значений? Пробую, не выходит: ВЫБРАТЬ 1 КАК П1, "А" КАК П2 ПОМЕСТИТЬ Т ОБЪЕДИНИТЬ ВЫБРАТЬ 2, "Б" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка, (П1, П2) КАК П ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ Т КАК Т ПО (ИСТИНА) |
|||
1
Вафель
22.06.21
✎
13:06
|
Никак
|
|||
2
Йохохо
22.06.21
✎
13:08
|
обход по группировкам и на нужном уровне выгрузить()
|
|||
3
Гений 1С
гуру
22.06.21
✎
13:10
|
(1) сукко
(2) Вот как раз этого и хотелось избежать |
|||
4
Chameleon1980
22.06.21
✎
13:45
|
зачем, если не секрет?
|
|||
5
Chameleon1980
22.06.21
✎
13:46
|
ааа. обычно так к тч обращаются при печати
ты хочешь не долго думая подсунуть свое в печать? |
|||
6
PLUT
22.06.21
✎
13:51
|
(0) СКД умеет
|
|||
7
PLUT
22.06.21
✎
13:54
|
+(6) (0) "учись студент, а то будешь всю жизнь ключи подавать"
https://infostart.ru/1c/articles/1116759/ |
|||
8
Гений 1С
гуру
22.06.21
✎
14:37
|
(6) мне не в СКД
|
|||
9
Гений 1С
гуру
22.06.21
✎
14:40
|
(4) есть HTTP-запрос по остаткам, например
по структуре в JSON надо выдавать так: товар, общий остаток -- склад, остаток -- склад, остаток Можно конечно, группировкой, но в лом. Я в конечном итоге так вышел (обе выборки упорядочены по номенклатуре): Строка = РезультатыЗапросаОстатки.Выбрать(); СтрокаДеталиОстатков = РезультатыЗапросаОстаткиДетально.Выбрать(); СтрокаДеталиОстатков.Следующий(); //Позиционируем на первую строку Пока Строка.Следующий() Цикл Пока Строка.Номенклатура = СтрокаДеталиОстатков.Номенклатура Цикл ... Если НЕ Строка.Следующий() Тогда Прервать; КонецЕсли; КонецЦикла; КонецЦикла; И там еще в этом обмене парочка таких приколов, когда надо к товару подзапросы делать. А группировкой не хочу, потому что там limit и offset, что само по себе на 1С непросто сделать. |
|||
10
Said_We
22.06.21
✎
14:46
|
(0)
Вот это "изобретение" от 1С засовывать в поле целую ТЗ. ПоступлениеТоваровНаСклад.Товары.( Номенклатура КАК Номенклатура, Количество КАК Количество, ) КАК Товары Выбирай по группировкам и засовывай в тебе необходимую структуру далее структуру в JSON. |
|||
11
Гений 1С
гуру
22.06.21
✎
14:53
|
(10) мне нужно не табличную часть, а произвольную таблицу, КЭП
|
|||
12
PLUT
22.06.21
✎
15:00
|
(11) ну так пакетные запросы обычно юзают. если отсортируешь по номенклатуре, то можно результат пакета выгрузить в ТЗ и по индексу нужную строку получать
ну там типа ТЗОстатки[индекс].Склад, ТЗОстатки[индекс].Остаток |
|||
13
PLUT
22.06.21
✎
15:01
|
(12) фигню написал про получение остатков по складам из ТЗ по индексу :)
|
|||
14
TormozIT
гуру
22.06.21
✎
15:04
|
(0) Нельзя
|
|||
15
Said_We
22.06.21
✎
15:09
|
(11) Я так и написал, что ТЗ произвольную не получишь, а только то что 1С придумало в случае выборки из табличной части как в примере (0) или (10).
Выборки с группировками. Подготавливай ТЗ и запихивай в JSON. Можно в виде функции. ВыборкаГруппировка = РезультатыЗапросаОстатки.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Строка.Следующий() Цикл ... Структура.ТЗ = Функция_ВернутьТЗПоГруппировке( ВыборкаГруппировка.Выбрать() ) ... КонецЦикла; |
|||
16
Said_We
22.06.21
✎
15:11
|
Не всё твое поправил :-) Думаю мысль понятна...
ВыборкаГруппировка = РезультатыЗапросаОстатки.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаГруппировка.Следующий() Цикл ... Структура.ТЗ = Функция_ВернутьТЗПоГруппировке( ВыборкаГруппировка.Выбрать() ) ... КонецЦикла; |
|||
17
Ненавижу 1С
гуру
22.06.21
✎
15:25
|
Я бы и в тч такое запретил
|
|||
18
Said_We
22.06.21
✎
15:36
|
(17) Согласен.
|
|||
19
Гений 1С
гуру
22.06.21
✎
15:40
|
(15) нельзя, там критична скорость (в этой задаче)
(17) (18) Почему? |
|||
20
Вафель
22.06.21
✎
15:41
|
Для скорости лучше плоской выборки и отслеживания изменения ключевых полей ничего нет
|
|||
21
Said_We
22.06.21
✎
15:50
|
(19) В (15) нормальная скорость. Плоская выборка без поиска внутри. Никаких лишних проверок.
Структуру ТЗ заранее до первого цикла выборки подготовить. Далее выгружай пустую ТЗ в новую ТЗ. По соответствию имен полей ТЗ заполняй. Функция 5-ть строк и не зависит от структуры ТЗ. |
|||
22
Said_We
22.06.21
✎
15:52
|
(0) Что бы использовать в выборках запроса группировки в тексте запроса должны быть итоги. Где они?
|
|||
23
Гений 1С
гуру
22.06.21
✎
16:47
|
(21) группировка усЛожняет, нафиг
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |