|
Сложить строки в запросе | ☑ | ||
---|---|---|---|---|
0
ONE1
12.08.22
✎
17:24
|
https://ibb.co/mBTthSs
люди добрые, помогите. Можно ли как-то сложить строки одного объекта в одну? Нужно для динамического списка, чтобы не ругался "Обнаружено дублирование ключевых значений в колонках" |
|||
1
DayDreamer
12.08.22
✎
17:27
|
что мешает через Объединить?
|
|||
2
PR
12.08.22
✎
17:28
|
(1) Сколько раз?
|
|||
3
PR
12.08.22
✎
17:29
|
+(2) И как фильтровать по одному элементу?
|
|||
4
FN
12.08.22
✎
17:30
|
(0) три левых соединения к основной таблице
|
|||
5
Fragster
гуру
12.08.22
✎
17:36
|
такая ошибка говорит о том, что это динамический список. а в нем характеристики и так поддерживаются, просто вытащить на форму надо.
|
|||
6
ONE1
12.08.22
✎
17:43
|
Выведены на форму поля, но т.к. в запросе 3 раза одна ссылка встречается дин. список выдаёт ошибку
|
|||
7
AlvlSpb
12.08.22
✎
17:44
|
(0) Это динамический список, как понимаю. Как устанавливаешь параметры Распечатано, Выдано, Отдано?
|
|||
8
ONE1
12.08.22
✎
17:46
|
Список.Параметры.УстановитьПараметр, передаю планывидовхарактеристик.дополнительныерек. НайтиПоНаименованию
|
|||
9
PR
12.08.22
✎
17:50
|
А, так просто три свойства что ли, то есть три левых соединения
И тебе не стыдно спрашивать такую легкотню? |
|||
10
AlvlSpb
12.08.22
✎
17:52
|
(9) Да тут дело в том, что по идеи должно работать так как он указал, без костылей с соединениями
|
|||
11
AlvlSpb
12.08.22
✎
17:53
|
(8) Ну считаем что опечатался "УстановитьЗначениеПараметра", а не "УстановитьПараметр"?
|
|||
12
Said_We
12.08.22
✎
17:53
|
Выбрать
т.ссылка ,МАКС(т.Распечатано) ,МАКС(т.ВыданоНаСклад) ,МАКС(т.ОтданоКлиенту) ... сгрупировать по т.Ссылка |
|||
13
AlvlSpb
12.08.22
✎
17:54
|
А сделай-ка запрос к регистру доп сведения без отборов или просто посмотри. Там нет каких-либо задвоений?
|
|||
14
Said_We
12.08.22
✎
17:56
|
(13) Конечно есть. Даже затроение есть. Когда и распечатали и выдали на склад и клиенту.
|
|||
15
Said_We
12.08.22
✎
17:58
|
||||
16
MaQo
12.08.22
✎
18:06
|
Король костылей:
выгружаешь результат запроса в таблицу значений и обрабатываешь каждую строку, создавая новую таблицу, где строки будут созданы сразу со всеми параметрами Тз1 = Запрос.Выполнить().Выгрузить(); СтрПр = Неопределено; Тз2 = Новый ТаблицаЗначений; Для каждого Стр из Тз1 Цикл Если СтрПр <> Стр Тогда СтрТз2 = Тз2.Добавить(); СтрТз2 = Стр; Иначе Если Стр.ВыданоНаСклад <> Неопределено Тогда СтрТз2.ВыданоНаСклад = Стр.ВыданоНаСклад; КонецЕсли; Если Стр.отданоКлиенту<> Неопределено Тогда СтрТз2.отданоКлиенту= Стр.отданоКлиенту; КонецЕсли; КонецЕсли; СтрПр = Стр КонецЦикла; |
|||
17
Garykom
гуру
12.08.22
✎
18:09
|
(0) Архитектурная ошибка детектед.
Почему три булевых доп.сведения вместо одного с тремя разными статусами? |
|||
18
PR
12.08.22
✎
18:09
|
(10) Да тут дело в том, что его запрос говно изначально
Выбирать нужно три раза, в каждом одно свойство И потом группировать по объекту в одну строку вместо трех Ну или (что логичнее) сразу выбирать объекты из родной таблицы или различные из таблицы свойств, а потом к ней уже цеплять слева три соединения |
|||
19
Garykom
гуру
12.08.22
✎
18:10
|
(16) Нахер так?
Три подзапроса и объединить |
|||
20
Garykom
гуру
12.08.22
✎
18:11
|
(18) Это уже вкусовщина
|
|||
21
Garykom
гуру
12.08.22
✎
18:11
|
(20)+ Чтобы получить все доки даже без статусов
|
|||
22
AlvlSpb
12.08.22
✎
18:15
|
Правильно в (12). У него ошибка не потому, что три раза вызывается значение (свойства-то разные), а в том что объект.ссылка - трижды одинаковый. Просто сгруппировать по ссылке в запросе как в (12) и должно работать
|
|||
23
AlvlSpb
12.08.22
✎
18:20
|
ВЫБРАТЬ
ДополнительныеСведения.Объект КАК Объект, МАКСИМУМ(ВЫБОР КОГДА ДополнительныеСведения.Свойство = &РеспечатаноЗадание ТОГДА ДополнительныеСведения.Значение КОНЕЦ) КАК РеспечатаноЗадание, МАКСИМУМ(ВЫБОР КОГДА ДополнительныеСведения.Свойство = &ВыданоНаСклад ТОГДА ДополнительныеСведения.Значение КОНЕЦ) КАК ВыданоНаСклад, МАКСИМУМ(ВЫБОР КОГДА ДополнительныеСведения.Свойство = &ОтданоКлиенту ТОГДА ДополнительныеСведения.Значение КОНЕЦ) КАК ОтданоКлиенту ИЗ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения СГРУППИРОВАТЬ ПО ДополнительныеСведения.Объект |
|||
24
Garykom
гуру
12.08.22
✎
18:20
|
(22) операция группировки очень затратная
|
|||
25
PR
12.08.22
✎
18:24
|
(23) Хочется блевануть, если честно
Сделай такое на таблице с сотней тысяч записей |
|||
26
1Сергей
12.08.22
✎
18:28
|
Как уже сказали, правильно сделать три левых соединение к таблице документа
|
|||
27
Said_We
13.08.22
✎
11:58
|
(24), (25), (26) Читайте внимательно про затратные операции в (15). Удивитесь.
|
|||
28
ONE1
15.08.22
✎
10:16
|
(12) Помогло, всем ❤
|
|||
29
Simod
15.08.22
✎
17:21
|
(0) Делай нормальный запрос к таблице документа, а остальное:
https://wonderland.v8.1c.ru/blog/obrabotka-i-oformlenie-dannykh-dinamicheskogo-spiska/?sphrase_id=316520 |
|||
30
rudnitskij
15.08.22
✎
18:41
|
Непонятно, зачем на каждое свойство одного объекта отдельная строка в регистре сведений?
|
|||
31
Said_We
16.08.22
✎
00:14
|
(30) Из интересов вашего аккаунта:
"Роберт Шекли:"Чтобы правильно задать вопрос, нужно знать бOльшую часть ответа" -------------------------------------------------------- Судя по вопросам, некоторые не знают и 5%". Без обид, но тут как раз к месту. :-) Это же 1С тут есть составные типы. Есть планы видов характеристик. И как всё это в СУБД хранится не так важно, так как запросы в 1С всё равно пишутся по структуре метаданных. |
|||
32
AXZ
16.08.22
✎
14:05
|
(0) Узнай какие поля у тебя дублируются, все остальные группируй, эти - через агрегатные функции
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |