Имя: Пароль:
1C
1С v8
возможно ли наложить агрегатную функцию на выбор?
,
0 Gorr
 
25.09.14
17:14
Не получается конструкция типа максимум(выбор когда... тогда...). Только через временную таблицу?
1 hhhh
 
25.09.14
17:16
получается
2 DGorgoN
 
25.09.14
17:16
(0) А ты пробовал?
3 Fragster
 
гуру
25.09.14
17:16
нормально работает
4 Gorr
 
25.09.14
17:56
Вот так не работает:
выбрать
т.Номенклатура,
максимум(выбор
когда т.Номенклатура В ИЕРАРХИИ (&Готовая) тогда "Готовая"
когда т.Номенклатура в ИЕРАРХИИ (&Привоз) тогда "Привоз"
когда т.Номенклатура в ИЕРАРХИИ (&Индивидуалка) тогда "Индивидуалка"
когда т.Номенклатура в ИЕРАРХИИ (&ЛДСП) тогда "ЛДСП"
когда т.Номенклатура в ИЕРАРХИИ (&КаменныеСтолешницы) тогда "КаменныеСтолешницы"
когда т.Номенклатура в ИЕРАРХИИ (&Фурнитура) тогда "Фурнитура"
конец) как ГруппаНоменклатуры,
Ссылка как ЗаказПокупателя
поместить ГруппыВЗаказахВрем
из Документ.ЗаказПокупателя.Товары т
внутреннее соединение ОсновнаяТаблица как от по т.Ссылка = от.ЗаказПокупателя
сгруппировать по ЗаказПокупателя
5 piter3
 
25.09.14
17:58
(4)ээээ а смысл максимума на строку?
6 Gorr
 
25.09.14
17:58
а вот так работает:
выбрать
т.Номенклатура,
(выбор
когда т.Номенклатура В ИЕРАРХИИ (&Готовая) тогда "Готовая"
когда т.Номенклатура в ИЕРАРХИИ (&Привоз) тогда "Привоз"
когда т.Номенклатура в ИЕРАРХИИ (&Индивидуалка) тогда "Индивидуалка"
когда т.Номенклатура в ИЕРАРХИИ (&ЛДСП) тогда "ЛДСП"
когда т.Номенклатура в ИЕРАРХИИ (&КаменныеСтолешницы) тогда "КаменныеСтолешницы"
когда т.Номенклатура в ИЕРАРХИИ (&Фурнитура) тогда "Фурнитура"
конец) как ГруппаНоменклатуры,
Ссылка как ЗаказПокупателя
поместить ГруппыВЗаказахВрем
из Документ.ЗаказПокупателя.Товары т
внутреннее соединение ОсновнаяТаблица как от по т.Ссылка = от.ЗаказПокупателя
;
выбрать ЗаказПокупателя, минимум(ГруппаНоменклатуры) ГруппаНоменклатуры
поместить ГруппыВЗаказах из ГруппыВЗаказахВрем
Сгруппировать по ЗаказПокупателя
7 Gorr
 
25.09.14
17:59
(5) а смысл в том что по одному заказу могут продать товар только из одной группы/категории и соотв оплату за это получат.
8 Fragster
 
гуру
25.09.14
18:00
все из-за В ИЕРАРХИИ
9 Gorr
 
25.09.14
18:05
а всегда какая-нить хрень возникнет там где нужно(
10 samozvanec
 
25.09.14
18:05
(6) почем у вас индивидуалки?
11 Gorr
 
25.09.14
18:07
делают мебель под заказ
12 samozvanec
 
25.09.14
18:12
(11) оригинально!
13 Gorr
 
26.09.14
10:11
кстати, производительность решения весьма небыстрая. есть ощущение, что через top можно как-то сделать, но пока только ощущение. может кто-нить может увидеть сей путь сразу?
14 Gorr
 
26.09.14
10:20
Поясню. В данном решении все строки табличной часит документа проходят проверку ВЫБОР. Поскольку все товары из табличной части заведомо из одной группы, чтобы не проверять все строки, нужно взять только первую строку и анализировать только ее...
15 hhhh
 
26.09.14
10:36
выбрать
т.Номенклатура,

выбор
когда т.Номенклатура В ИЕРАРХИИ (&Готовая) тогда "Готовая"
когда т.Номенклатура в ИЕРАРХИИ (&Привоз) тогда "Привоз"
когда т.Номенклатура в ИЕРАРХИИ (&Индивидуалка) тогда "Индивидуалка"
когда т.Номенклатура в ИЕРАРХИИ (&ЛДСП) тогда "ЛДСП"
когда т.Номенклатура в ИЕРАРХИИ (&КаменныеСтолешницы) тогда "КаменныеСтолешницы"
когда т.Номенклатура в ИЕРАРХИИ (&Фурнитура) тогда "Фурнитура"
конец как ГруппаНоменклатуры,
Ссылка как ЗаказПокупателя
поместить ГруппыВЗаказахВрем
из Документ.ЗаказПокупателя.Товары т
ГДЕ т.НомерСтроки = 1
16 Gorr
 
26.09.14
10:39
через номер это хорошо, а если бы строки были совсем однородные...
17 Gorr
 
26.09.14
10:41
1с ка не позволяет подзапросы по текущей строке выборки насколько я знаю. поправте если не прав?
18 hhhh
 
26.09.14
10:44
(16) с МАКСИМУМ у вас вообще бред получается, если строки неоднородные.
19 Gorr
 
26.09.14
10:45
+еще мысль
выбрать макс(тч.товар),тч.ссылка из тч сгруппировать по ссылка
20 Gorr
 
26.09.14
10:49
(18) эт я пошутил... вообще в теории реляционных таблиц не должно быть однородности))
конечно же критерий выбора быть обязан. а уж макс мин. а топ это вредная штука для мозга))
21 Fragster
 
гуру
26.09.14
10:50
В иерархии ускоряется в разы с помощью доп. регистра
22 Fragster
 
гуру
26.09.14
10:52
23 Gorr
 
26.09.14
10:53
а может через топ было бы быстрее отобрать строку чем через агр функцию. - определенно мне топ покоя не дает))
(21) вообще и первый вариант работает приемлимо для клиента, но как всегда хочется идеала. - интересно подробнее если можно
24 Gorr
 
26.09.14
10:57
(23) да, я тоже думаю подход через вспомогательные данные очень даже и очень правильный.
25 Gorr
 
26.09.14
11:01
+ да и 1С для того регистры и придумала
26 Жан Пердежон
 
26.09.14
11:04
(24) типа храни топ родителя где где-то еще для каждой номенклатуры
27 Gorr
 
26.09.14
11:06
(26) а типа или нет, пусть каждый решает сам
28 Serginio1
 
26.09.14
12:04
29 Gorr
 
26.09.14
13:06
(28) благодарю - именно то, что имелось в виду.
не смотря на простоту решения через номер строки(15) вариант работает не быстрее чем изначальное решение.
30 hhhh
 
26.09.14
13:28
(29) вообще СГРУППИРОВАТЬ это тормоз. Работай с номерСтроки.
31 ssh2QQ6
 
26.09.14
13:48
можно попробовать пакетный запрос:

Выбрать в таблицу заказ, номенклатура первой строки по условию заказ в заказы основной таблицы.
Потом выбрать различную номенклатуру из этой таблицы - вторая таблица. Потом определить для этой таблицы номенклатуры
когда Номенклатура В ИЕРАРХИИ (&Готовая) тогда "Готовая" и тд, а потом уже соединение этого результата, первой таблицы и основной таблицы
32 Gorr
 
26.09.14
14:50
(29) в моем случае тормоз это "В ИЕРАРХИИ"
КСТАТИ, СГРУППИРОВАТЬ ПОВАЛЬНО использую вместо РАЗЛИЧНЫЕ. Я так понял НЕ РЕКОМЕНДУЕТЕ???
(31) пробовал предварительно собирать таблицу из заказов с номенклатурой первой строки в которой заказ встречался единожды. потому уже на это строку накладывал В ИЕРАРХИИ. вот тут и зависает. остальное не напрягает.
33 Gorr
 
26.09.14
14:52
+(31) хотя идея сокращения проверок путем исключения повторных проверок одной и той же позиции кажется интересной.
34 Serginio1
 
26.09.14
14:52
(29) Для того, что бы работало быстрее, нужно выгрузить в предварительную таблицу проиндексировать, а затем уже применять запрос
v8: Подзапросы с Выбрать Первые
35 Gorr
 
26.09.14
14:55
(34) думаете если проиндексировать номенклатуру во временной таблице В ИЕРАРХИИ по номенклатуре будет быстрее отрабатывать?
36 Gorr
 
26.09.14
14:58
очень сомневаюсь
37 Serginio1
 
26.09.14
14:58
34+ Этот вариант работал в старых версиях. В 82 нужно сравниваемые поля закинуть в подзапрос
v8: v8: Вcтречаем! Версия 8.2.18, вышла в релизе 8.2.18.82 + опубликована версия 8.2.18.96
38 Serginio1
 
26.09.14
14:59
(36) Почитай до конца. У меня такие конструкции работали на отборе многомиллионных прайсов по минимуме цены и максимуме количества